私は参考としてこれを使用しています:http://msdn.microsoft.com/en-us/library/dd182449(v=VS.85).aspxC#のアプリケーションコードから呼び出されたときPowershellがなぜnullになるのですか?
したがって、実装は非常に似ています。私は、下記の1-ライナーコマンドによって意図したコンピュータからのプロセス情報を取得するには、次のPowerShellコマンドを実行している:
$computer = "Remote.Computer.Here"; Get-Process -computer $computer | Sort-Object WorkingSet -desc | Select-Object -first 10 | Format-Table -property name, ID, @{Expression= {$_.WorkingSet/1mb};Label="MemoryLoad";} -auto
上記のコマンドは、PS・ウィンドウで完全に実行されます。しかし、C#のアプリケーションコードから呼び出されると、私は返品を受け取りません。特にので、私は以下を介してアクセスするとき:。
PowerShell shell = PowerShell.Create();
shell.AddScript(CmdletMap[PSVocab.OsProcLoad]);
Collection<PSObject> obj = shell.Invoke();
DataTable dt = new DataTable();
dt.Columns.Add("ProcessName");
dt.Columns.Add("ID");
dt.Columns.Add("MemoryLoad");
DataRow row;
foreach (PSObject resultObject in obj)
{
row = dt.NewRow();
row["ProcessName"] = resultObject.Members["name"].Value;
row["ID"] = resultObject.Members["id"].Value;
row["MemoryCol"] = resultObject.Members["MemoryLoad"].Value;
dt.Rows.Add(row);
}
[] resultObject.Membersのクイックウォッチを行う価値は単にnullを返します。
助けが必要ですか?
ありがとうございました。
http://meta.stackexchange.com/questions/2950/ 〜からのお礼 - タグラインと挨拶の投稿からの投稿 – Kiquenet