簡體   English   中英

Powershell遠程無標准輸出

[英]Powershell remote no standard output

我在C#中使用PowerShell對象執行遠程命令。 我想要獲取值的示例命令是Get-ExecutionPolicy ,但是沒有返回標准輸出。

最終目標是獲取遠程實例上的剩余磁盤空間。

這是我用來遠程執行腳本的代碼。 它工作正常,可以按預期安靜地執行所有測試,輸出錯誤和異常,但是...沒有標准輸出。 有人可以幫忙嗎?

PowerShell ps = PowerShell.Create();
logger.LogAndDisplay(Logger.MessageType.Note, "Connecting to '" + instance0 + "'");
logger.LogAndDisplay(Logger.MessageType.Note, "Executing script on remote: '" + path0 + "'.");
ps.AddScript("$password = convertto-securestring -asplaintext -force -string " + pass);
ps.AddScript("$credential = new-object -typename system.management.automation.pscredential -argumentlist " + user + ", $password");
ps.AddScript("$session = new-pssession " + instance0 + " -credential $credential");
ps.AddScript("Invoke-Command -Session $session -FilePath " + path0);
ps.AddScript("Remove-PSSession $session");
Execute(ps);

private bool Execute(PowerShell ps0)
{
    bool success = true;

    PSOutput.Clear();
    PSOutput = ps0.Invoke();

    if (ps0.HadErrors)
    {
        success = false;
        PSDataCollection<ErrorRecord> PSErrors = ps0.Streams.Error;
        foreach (ErrorRecord e in PSErrors)
        {
            logger.LogAndDisplay(Logger.MessageType.Note, e.ToString());
        }
    }

    if (PSOutput.Count() > 0)
    {
        logger.LogAndDisplay(Logger.MessageType.Subheader, "Command output:");
    }

    foreach (PSObject outputItem in PSOutput)
    {
        if (outputItem != null)
        {
            logger.LogAndDisplay(Logger.MessageType.Note, outputItem.BaseObject.GetType().FullName);
            logger.LogAndDisplay(Logger.MessageType.Note, outputItem.BaseObject.ToString() + "\n");
        }
    }

    logger.LogAndDisplay(Logger.MessageType.Note, "Command complete. Disconnecting.");
    ps0.Dispose();
    return success;
}

問題是這一行:

ps.AddScript("Remove-PSSession $session");

Remove-PSSession cmdlet將關閉當前會話中的Windows PowerShell會話(PSSessions)。 它停止在PSSession中運行的所有命令,結束PSSession,並釋放PSSession使用的資源。 如果PSSession連接到遠程計算機,則Remove-PSSession也會關閉本地計算機和遠程計算機之間的連接。

(強調我的)

顯然,這包括流。

我在搜索過程中偶然發現了有關PowerShell輸出的有趣帖子,該帖子也可能回答一些將來的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM