#author("2019-08-10T11:26:41+09:00","default:ryuichi","ryuichi")
#author("2019-08-10T11:30:16+09:00","default:ryuichi","ryuichi")
* タスクスケジュール実行時にウィンドウを隠す [#vbac48d2]
** 方法1 オプション -windowstyle hiddenを指定する [#l32dab46]
プログラム/スクリプト
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
引数の追加
-WindowStyle Hidden -Command "C:\test.ps1"
- 上のように引数の最初に-WindowStyle Hiddenを指定する
- ただし、この方法でも一瞬だけウィンドウが表示される(そのあと、対象の処理が実行される)
- https://stackoverflow.com/questions/46808635/how-to-run-powershell-script-using-task-scheduler-in-silent-hidden-mode
** 方法2 ラッパーを経由してPowerShellを実行する [#i5344cf0]
*** ラッパー wrapper.js [#rd62f077]
#sh(javascript){{
var wshShell = new ActiveXObject("WScript.Shell");
var ps1 = WScript.Arguments.Item(0);
var ret = wshShell.Run('%SystemRoot%\\system32\\WindowsPowerShell\\v1.0\\powershell.exe -ExecutionPolicy Bypass -File "' + ps1 + '"', 0, false);
WScript.Quit(ret);
}}
*** 操作 [#k9203fb8]
プログラム/スクリプト
C:\wrapper.js
引数の追加
"C:\test.ps1"
- wrapper.jsを作成し、その中からPowerShellスクリプト(ここではtest.ps1)を実行する
** 方法3 「ユーザーがログオンしているかどうかにかかわらず実行する」をオンにする [#c0b0e075]
- 全般タブにある「ユーザーがログオンしているかどうかにかかわらず実行する」をオンにする
- 状況によるが、この状況でも構わなければ、これが一番簡単にウィンドウを消せる方法
** 参考 [#na81ea81]
http://stackoverflow.com/questions/1802127/how-to-run-a-powershell-script-without-displaying-a-window