LoginSignup
4
3

More than 5 years have passed since last update.

常に最新のPowerShellを配布して実行させるたった1つのシンプルな解

Last updated at Posted at 2018-03-12

状況

社内LANの共有フォルダにps1ファイルを配置する。
利用者には常にこの最新のスクリプトを利用させたい。

しかしファイルの署名はできない。

前提条件

  • ps1ファイルはバッチから実行する。
  • 実行権限は RemoteSigned
  • makecert.exe は使えない。=署名はできない。

とりあえず解

runPS.bat
@echo off
copy /Y "\\192.168.0.100\scripts\myscript.ps1" "tmpscript.ps1"
powershell -ExecutionPolicy RemoteSigned -File ".\tmpscript.ps1"
del /q "tmpscript.ps1"

解説

コピーしてきて実行して削除する。
以上。

いろいろ悩みましたがこれが一番シンプルで確実でした。
保存先をテンポラリフォルダにするなど工夫の余地はありますが、業務で使用するのはこのレベルで充分です。

ちなみに、-ExecutionPolicyUnrestricted にしても一応実行できますが、確認ダイアログが表示されるのはピンからキリまでのユーザーに配布する上でナンセンスであるとして行っていません。

参考記事

powershellを楽に実行してもらうための非常に参考になる記事

Powershellを楽に実行してもらうには
https://qiita.com/tomoko523/items/df8e384d32a377381ef9

本来こうあるべきという物の例

PowerShell のスクリプトに署名を付与する方法
http://fnya.cocolog-nifty.com/blog/2017/01/powershell-6c78.html

4
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
3