web-dev-qa-db-ja.com

タスクスケジューラを介してPowerShellスクリプトを実行しているときにコマンドウィンドウを非表示にするにはどうすればよいですか?

条件ごとにメッセージを表示するGUIフォームのPowerShellスクリプトがあります。このスクリプトは、15分ごとにタスクスケジューラを介して実行されます。実行するたびに、コンコールウィンドウが表示され、次にメッセージ付きのGUIフォームが表示され、コンソールが閉じられます。この行動は私を苛立たせます。コンソールを非表示にして、GUIフォームのみを表示したいのですが。引数「-WindowsStyleHidden」でrunnigを試しましたが、役に立ちませんでした。

このコンソールウィンドウを非表示にする方法は?

2

私が理解しているように、PSRun.exeファイルのようなものなしではそれは不可能です。私の状況では、ユーザー画面のメッセージボックスのみが必要だったので、ローカルホストに対してwindowsmsg.exeコマンドを使用しました。

1

たとえば「yourCallerPsScript」という名前の別のPowerShellスクリプトを作成し、次のように最初のスクリプトを呼び出すことができます。

$commpath = '"yourscriptpath\yourFirstPsScript.ps1"'
$strCommand = "powershell -WindowStyle hidden -file $($commpath)"

Invoke-Expression $strCommand

そして、タスクスケジューラで、新しいスクリプトを実行します。

Powershell -file "yourscriptpath\yourCallerPsScript.ps1"
1
Andrei Lungu