c#webformsアプリケーション内で、Hyper-Vサーバー上のVMの現在割り当てられているメモリ合計を返そうとしています。私はpowershellコマンドを書いており、Hyper-Vサーバーにリモート接続してスクリプトブロックを実行する実績のある方法を持っています。スクリプトを文字列として追加し、ps.addscript(scriptString)を使用してパイプラインに挿入します。私はこれを行う方法上の任意のアイデアを出力PowershellコマンドからC#変数への結果
コマンドが正常に動作し、エラーがアプリケーションに存在しないが、私はC#の変数に結果の値を返す方法がわからない(好ましくはint型)
?ランスペースを使用していないが、私はする必要があるかどうかわからない。私はパイプラインを呼び出して、出力値をC#変数に追加したいだけです。スクリプトで
(私はこの記事の目的のために「1.1.1.1」でIPアドレスを交換した)
string breakLine = System.Environment.NewLine;
string getHyp1Use = "$hypUN = \"DOMAIN\\" + boxUN.Text + "\"" + breakLine +
" $hypPWD =ConvertTo-SecureString \"" + boxPWD.Text + "\" -AsPlainText -Force" + breakLine +
" $hypCREDS = New-Object System.Management.Automation.PSCredential($hypUN, $hypPWD)" + breakLine +
" set-item wsman:\\localhost\\Client\\TrustedHosts -value 1.1.1.1 -force" + breakLine +
" $builderSession = New-PSSession -ComputerName 1.1.1.1 -Credential $hypCREDS" + breakLine +
" Invoke-Command -Session $builderSession -ScriptBlock {Get-VM | Where { $_.State –eq ‘Running’ } | measure MemoryAssigned -Sum | select -ExpandProperty Sum}" + breakLine +
" Invoke-Command -ScriptBlock {Remove-PsSession -Session $builderSession}";
string hyp1Use = null;
PowerShell ps = PowerShell.Create();
ps.AddScript(getHyp1Use);
var results = ps.Invoke();