環境 Windows10
PowerShell5.1
rem Start:batの窓を閉じる,-Windowstyle powershellの窓を閉じる,-NoProfile PowerShellの窓を閉じるのが早くなる
rem -ExecutionPolicy:スクリプト実行のため実行ポリシー変更
Start Powershell -Windowstyle Hidden -NoProfile -ExecutionPolicy Unrestricted -File .\test.ps1
#概要
私が職場でPowerShellスクリプトを配布するときに、一緒に添付している起動用バッチファイルです。
「二つとも同じフォルダ階層に入れた上で、歯車アイコンの方を起動してください」と伝えています。
バッチファイルのコメントに書かれているのが全てですが、以下詳細。
#実行ポリシー変更について
-ExecutionPolicy Unrestricted
RemoteSignedではデジタル証明書がないとインターネット経由で入手したファイルが実行できません。
メール配布で実行できるよう、Unrestrictedにしています。
https://docs.microsoft.com/ja-jp/powershell/module/Microsoft.PowerShell.Core/About/about_execution_policies?view=powershell-5.1
(Microsoft公式・英語)
#起動時に開かれる窓について
とにかく気になるのがこれだと思います。
・コマンドプロンプトの黒窓
・PowerShellの紺窓
このバッチファイルだと、両方とも順次表示されますが、どちらもスクリプトの実行前には閉じます。
個人的に、配布するPowerShellはユーザーフォームを使うことが多いので、ユーザーフォームを隠さないため、窓を残したくない。ドラッグ&ドロップが必要なときは尚更です。
startでPowerShellを起動すると、コマンドプロンプトの黒窓が閉じ、PowerShellの紺窓に移行するようです。
startなしで黒窓が閉じるときもあるのですが、安定せず、しかも文字化けを表示していたずらにユーザーの不安をあおることがあるのでstartを使用しています。
その後、-Windowstyle Hidden で紺窓を隠しています。Minimizedだと、窓が小さくなる動作があり、ちょっとカッコ悪かったのでHiddenにしています。
https://docs.microsoft.com/ja-jp/powershell/module/Microsoft.PowerShell.Core/About/about_PowerShell_exe?view=powershell-5.1
(Microsoft公式・英語)
また、プロファイルがないときは-NoProfileのパラメータを付けるとMicrosoft公式でも言っているのですが、これで紺窓が閉じるのがかなり早くなります。起動自体が早まっているはずですから、つけることをお勧めします。
https://docs.microsoft.com/ja-jp/windows-server/administration/windows-commands/powershell
(Microsoft公式)
#パスの指定
相対パスの方が起動トラブルが起きにくいです。
PowerShellのスクリプトと同じフォルダ階層に入れて起動するよう伝えていることもあって、相対パスで指定しています。
ファイル名の前に「.\」を付けることで同じ階層のファイルにアクセスしています。