power cli でコマンドを実行すると、実行した操作が表示されます。
例えば
Start-VM –VM “VM1”
v センターで VM を起動するだけです。
これらのコマンドをコードで呼び出し、出力を保存してユーザーに表示できるようなコードを Python で記述したいと考えています。
Python コードを power cli コマンドにリンクする方法はありますか? または、power cli コードを Python 内でバインドできると言えますか?
power cli でコマンドを実行すると、実行した操作が表示されます。
例えば
Start-VM –VM “VM1”
v センターで VM を起動するだけです。
これらのコマンドをコードで呼び出し、出力を保存してユーザーに表示できるようなコードを Python で記述したいと考えています。
Python コードを power cli コマンドにリンクする方法はありますか? または、power cli コードを Python 内でバインドできると言えますか?
スクリプトのドット ソース((私が知る限り) Python のインポートに似ています) とsubprocess.callの2 つが必要です。
import subprocess
subprocess.call(["C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\powershell.exe", ". \"./SamplePowershell\";", "&hello"])
ここで何が起こるかというと、powershell を起動し、スクリプトをインポートするように指示し、セミコロンを使用してそのステートメントを終了するということです。次に、さらにコマンド、つまり hello を実行できます。
また、関数にパラメーターを追加したいので、上記の記事のものを使用しましょう (わずかに変更されています)。
Function addOne($intIN)
{
Write-Host ($intIN + 1)
}
次に、powershell がその入力を処理できる限り、必要なパラメーターを指定して関数を呼び出します。したがって、上記の python を次のように変更します。
import subprocess
subprocess.call(["C:\\WINDOWS\\system32\\WindowsPowerShell\\v1.0\\powershell.exe", ". \"./SamplePowershell\";", "&addOne(10)"])
これにより、出力が得られます。
PowerShell sample says hello.
11
上記を編集して PowerCLI ライブラリを含める必要がありますが、動作するはずです。