見出し画像

PowerShell 実行するとき青い画面が一瞬出るのを止めたい

タスクスケジューラーでPowerShellのスクリプトファイル(○○.ps1)を実行すると、一瞬だけ青い画面が表示されます。

これは結構邪魔です

これを表示しないようにする方法

まず
VBSファイルを用意します。

'このファイルと「同じファイル名.ps1」をウィンドウを開かずに実行する
Dim psFilePath
psFilePath = Replace(WScript.ScriptFullName, ".vbs", ".ps1")

Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run "powershell.exe -ExecutionPolicy Bypass -NoLogo -File " & Chr(34) & psFilePath & Chr(34), 0

これを拡張子vbsで保存します。

このVBSファイルは実行したとき、同じフォルダ内にある同名ファイル名の.ps1ファイルを実行します。
例えばファイル名が「aaa.vbs」だったら同じフォルダ内の「aaa.ps1」を実行します。
VBSを間に噛ませることで一瞬だけ青い画面が表示される現象を防ぎます。
タスクスケジューラーからPowerShellスクリプトを実行するときに重宝すると思います。


管理者権限で実行したい

 青い画面が消えたら、こんどは管理者権限で実行したい場合もあると思います。そういうときはこちら

一度普通に立ち上げて、内部的に管理者権限で自分自身を立ち上げなおしています。

'VBSファイルを管理者権限で立ち上げたい
do while WScript.Arguments.Count = 0
 '##### 管理者権限で再立ち上げ実行
 Set Shell = CreateObject("Shell.Application")
 Shell.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """ uac", "", "runas"
 WScript.Quit
loop

Dim psFilePath
psFilePath = Replace(WScript.ScriptFullName, ".vbs", ".ps1")

Set objShell = WScript.CreateObject("WScript.Shell")
objShell.Run "powershell.exe -ExecutionPolicy Bypass -File " & Chr(34) & psFilePath & Chr(34), 0



タスクスケジューラの記事はこちら


#PowerShell #プログラミング学習 #タスクスケジューラー #VBSファイル #Windows

この記事が気に入ったらサポートをしてみませんか?