PowerShell ISE上からPS1ファイルが実行できない

前回、ADのユーザをコマンドで一覧表示させるというコラムを書いた。dsqueryでコマンドで情報を引き出すわけだが、これだと、Excelで開いた上で、区切り等で列化したりして、面倒。しかも、沢山項目を表示させたりした場合は、わけがわからない。

そこで色々と調べていた。AD (Active Directory)で、ADのユーザをもっとわかりやすく出力できないか?というところだ。

PowerShell ISEという、エディタ兼実行できる便利なツールだ。保存はps1という拡張子になるわけだが、デフォルトでは実行できなかった。

psise

PS C:WINDOWSsystem32> Get-ExecutionPolicy
Restricted

と表示された。「Restricted」とは、すべてのスクリプトの実行が禁止という、デフォルトの設定だ。これは、ウイルス対策等のセキュリティ機能だという。これを何にするのか?

  • RemoteSigned …ローカルに保存されているスクリプトは実行可能。インターネットからダウンロードしたスクリプトは、署名されているもののみが実行可能
  • Unrestricted …すべてのスクリプトの実行が可能。但し、インターネットからダウンロードしたスクリプトは、一応確認画面が表示されて、実行していいか聞かれる

一般的に、「RemoteSigned」に設定し直す。Get-xxxが情報取得に対し、Set-xxxは、設定する!ということだ。

PS C:WINDOWSsystem32> Set-ExecutionPolicy RemoteSigned

で設定される。これをGetで情報を引き出してみる。

PS C:WINDOWSsystem32> Get-ExecutionPolicy
RemoteSigned

これで無事にPowerShell ISE上からPS1ファイルを作成したとしても、情報が引き出せるようになる。
次回は、ユーザー情報をもっと便利に取得できないか、調査していきたい。

おすすめの記事