PMPの流儀

PMPの流儀

エンジニアのページ。主にPC関係で便利な事を中心に記事を書いています。

MENU

PowerShell 実行時にウインドウを非表示にする方法

PowerShell スクリプト実行時は必ずPowerShellのウインドウが開きます。 スクリプトをタスクスケジューラーで実行させるようなケースではウインドウが表示されるのは避けたいものです。 PowerShell をウインドウ非表示で実行する方法を紹介します。

スクリプト

WSHから、PowerShellスクリプトを呼び出すことでウインドウを非表示にできます。

ファイル名: launch_ps.js

shell = WScript.createObject("WScript.Shell");
ret = shell.Run("powershell.exe -ExecutionPolicy RemoteSigned -File " + WScript.Arguments.Item(0), 0, false);
WScript.Quit(ret);

タスクスケジューラへの登録

以下の条件下でのタスクスケジューラへの登録を説明します。
launch_ps.js 上記のスクリプト
test.ps 起動したいPowerShellスクリプト
この2つを c:\tempに配置

f:id:ruruucky:20200902185553p:plain

項目 説明
プログラム/スクリプト wscript
引数の追加 launch_ps.js test.ps
開始 c:\temp

各々の環境に合わせて置き換えてください。

つぶやき

JScriptに頼らなければならないのはPowerShellの仕様という名のバグです。

リンク

VBAからPowerShell スクリプトをウインドウ非表示でコールする方法は以下をご覧ください。
pmp-style.hatenablog.com