#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

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS