I have a powershell script from PRTG that will ssh into a juniper device and allow me to exicute a command. I am trying to run "Request System Storage Cleanup" which works but the problem is the session asks for conformation of the clean up. Adding a carriage return and then yes in the same line does not work nor did adding another command. I cannot use "Request system storage cleanup no-confirm" due to the firmware is not new enough. Any suggestion on how to confirm the command?

`param(  
    $Computername = "",
    $Username = "",
    $Password = "",
    $Port = 22,
    $KeyfilePath = "",
    $Command = ("request system storage cleanup"),
    $AutoUpdateFingerprint = $False
)

# Check if our module loaded properly
if (Get-Module -ListAvailable -Name Posh-SSH) { <# do nothing #> }
else { 
    # install the module automatically
    iex (New-Object Net.WebClient).DownloadString("https://gist.github.com/darkoperator/6152630/raw/c67de4f7cd780ba367cccbc2593f38d18ce6df89/instposhsshdev")
 }

function This-FingerPrintUpdate(){
    if($AutoUpdateFingerprint)
    { Remove-SSHTrustedHost $Computername }
}

# Includes
Import-Module Posh-SSH

function This-GetSSHCommandOutput(){
    # Create new session and execute the command given
    if($keyfilePath.Length -eq 0){

        # Generate credentials object for authentication
    $SecPasswd   = ConvertTo-SecureString $Password -AsPlainText -Force
    $Credentials = New-Object System.Management.Automation.PSCredential ($Username, $secpasswd) 
    $Session = New-SSHSession -Computername $Computername -Credential $Credentials -Port $Port -Acceptkey

    }
    else
    { $Session = New-SSHSession -Computername $Computername -Acceptkey $true -KeyFile $keyfilePath -Port $Port }

    # Store the output of the command 
    $Output = (Invoke-SSHCommand -SSHSession $Session -Command $Command -PipelineVariable "yes").Output

    # Remove the session after we're done
    Remove-SSHSession -Name $Session | Out-Null 

    # return the actual output
    Write-Host $Output.Trim();

}

# Automatically update the fingerprint for the given host. 
This-FingerPrintUpdate;

# echo the output 
This-GetSSHCommandOutput;`

Let me share what our tech lead uses. They automate things like that with AutoIT.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.