![](/img/trans.png)
[英]Executing standard PowerShell cmdlets in remote session to Lync
[英]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.