PowerShell あれこれ

ExecutionPolicy の設定

Windows PowerShell の機能
以前、 Power Shell の既定の実行設定がデジタル署名入りじゃないと実行できないようになってるので
Set-ExecutionPolicy の 設定が必要だって話をしたと思います

Restricted - 実行できるスクリプトはありません。Windows PowerShell は対話型モードでのみ使用できます。

AllSigned - 信頼できる発行元が署名したスクリプトのみを実行できます。

RemoteSigned - ダウンロードしたスクリプトは信頼できる発行元が署名した場合にのみ実行できます。

Unrestricted - 制限なし。すべての Windows PowerShell スクリプトを実行できます。

これ、実は 面倒な場合、インストール時にレジストリで設定することが可能です。

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell]
"ExecutionPolicy"="RemoteSigned"

これで、再インストールのたびに設定しなくてよくなったらしい・ω・

$PsScriptRoot が使えない謎

ps1ファイルを実行中のパスを取得する $PsScriptRoot という便利な変数があるらしいという情報が入ったので早速使ってみようと思ったのですが…

ps1
あれ?ないよ?

$PsScriptRoot only works with Modules | Microsoft Connect
Add auto-variables $PSScriptRoot and $PSScriptPath for running scripts | Microsoft Connect

結論: v2.0 はバグでちゃんと機能しないので、$MyInvocation を使え

・ω・ なんだよー!

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です