PowerShellにはさまざまなレイヤーがあります悪意のあるスクリプトやコマンドが実行されるのを防ぐセキュリティ。たとえば、既定では、PowerShell実行ポリシーを変更しない限り、インターネットからダウンロードしたスクリプトを実行できません。別のセキュリティ対策は、スクリプトをダブルクリックして実行することを防ぎます。 PS1スクリプトをPowerShellに関連付けることはできません。スクリプトを実行する唯一の方法は、スクリプトを右クリックして実行オプションを選択することです。ダブルクリックすると、メモ帳で開きます。これはセキュリティ対策としては優れていますが、スケジュールされたタスクの実行時にPowerShellスクリプトを実行したい場合は迷惑です。回避策は簡単です。バッチスクリプトを使用して、PowerShellスクリプトを自動実行できます。
バッチスクリプト
以下は、Windows 10でPowerShellスクリプトを自動実行するために必要なバッチスクリプトです。各PowerShellスクリプトには、独自のバッチスクリプトが必要です。
構文
@ECHO OFF PowerShell.exe -Command "Path to script" PAUSE
「スクリプトへのパス」を、実行するPowerShellスクリプトへの実際のパスに置き換えます。次の例を考えてください。
例
@ECHO OFF PowerShell.exe -Command "C:Reminder-ScriptsMilkBuy-Milk.ps1" PAUSE
メモ帳を開き、スクリプトを貼り付けます。ファイルを.bat拡張子で保存します。
このバッチファイルが行うことは、それが開くことですPowerShellを使用して、指定したスクリプトを実行します。それでもデスクトップ上のPowerShellスクリプトをダブルクリックして、PowerShellで自動的に実行することはできません。現在のファイルはコマンドプロンプトウィンドウを開き、「続行するには任意のキーを押してください」というメッセージが表示されます。キーを押すと、PowerShellスクリプトが実行されます。介入することなくスクリプトを実行したい場合は、上記のスクリプトを編集して「一時停止」行を削除します。次のようになります。
@ECHO OFF PowerShell.exe -Command "Path to script"
タスクスケジューラとPowerShellスクリプト
自動的に実行することを想定していますスケジュールされたタスクへのアクションとしてのPowerShellスクリプト。これを実現するには、まず、上記のように対応するバッチスクリプトを作成して、PowerShellスクリプトを実行する必要があります。次に、スケジュールされたタスクを作成するときに、トリガーに応じて実行するアクションの下でバッチスクリプトを選択します。これにより、事実上、PowerShellスクリプトが実行されます。

ここでは例としてタスクスケジューラを使用しましたが、他の自動化アプリを使用している場合、バッチスクリプトを呼び出す必要があります。唯一の例外は、使用している自動化アプリがPowerShellを開いて、PowerShellスクリプトを指すことができる場合です。
コメント