VMware クラスター環境から情報を取得するための ps1 スクリプトがあります。
ps1 スクリプトのある場所では、ENTERボタンのキーストロークが必要です。
それで、それを行う方法は?
-ありがとう
VMware クラスター環境から情報を取得するための ps1 スクリプトがあります。
ps1 スクリプトのある場所では、ENTERボタンのキーストロークが必要です。
それで、それを行う方法は?
-ありがとう
私の理解が正しければ、PowerShell でENTERキーストロークをインタラクティブなアプリケーションに送信したいですか?
$wshell = New-Object -ComObject wscript.shell;
$wshell.AppActivate('title of the application window')
Sleep 1
$wshell.SendKeys('~')
その対話型アプリケーションが PowerShell スクリプトの場合は、PowerShell ウィンドウのタイトル バーにあるものをAppActivateの引数として使用します (既定では、powershell.exe へのパス)。あいまいさを避けるために、コマンドを使用して、スクリプトに独自のウィンドウのタイトルを変更させることができますtitle 'new window title'
。
いくつかのメモ:
{ENTER}
、同じではありません。これはキーパッドのENTERキーです。完全なリストは、http: //msdn.microsoft.com/en-us/library/office/aa202943%28v=office.10%29.aspxで入手できます。Sleep 1
、ウィンドウがアクティブになるまでに少し時間がかかるため、1 秒待機するためです。SendKeysをすぐに呼び出すと、キーが PowerShell ウィンドウに送信されるか、どこにも送信されません。wscript.shellのSendKeysメソッドは少し風変わりな場合があるため、問題が発生した場合は、上記の 4 行目を次のように置き換えます。
Add-Type -AssemblyName System.Windows.Forms
[System.Windows.Forms.SendKeys]::SendWait('~');
また、$wshell = New-Object -ComObject wscript.shell;
バックグラウンドで実行されていたスクリプトを助けました。追加するだけで問題なく動作しました$wshell
。バックグラウンドとして実行されないように修正しました![Microsoft.VisualBasic.Interaction]::AppActivate("App Name")