スケジュールされたタスクとして実行したいExchange 2010 PowerShellスクリプトがいくつかあります。
「別のユーザーとして実行」を使用してPowerShellを起動すると、スクリプトを実行でき、スクリプトは正しく実行されます。
同じユーザーを使用してタスクをスケジュールすると、タスクは永久に実行状態のままになります。
タスクが行き詰まっている場所を知るにはどうすればよいですか?
参考までに、Exchangeを有効にする方法は次のとおりです。
. 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'
Connect-ExchangeServer -auto
そして、これが私がタスクスケジューラからスクリプトを実行しようとした方法です。
すべて同じ結果になります。 Grr ...
実行ポリシーを変更するか、-ExecutionPolicy Bypass
コマンドラインパラメータとして。
powershell -Command "<path to .ps1 script>" -ExecutionPolicy Bypass
これがどのように行われているかはわかりませんが、タスクスケジューラ経由でPowerShellスクリプトを実行しているときは、「プログラムの開始」アクションを使用してpowershellを選択し、そこから引数を追加します。それはあなたがここでしていることかもしれませんが、それはちょっと不明確です。これがスクリーンショットです:
CompWizごとの実行ポリシーも問題になる可能性があります。
私も同じ問題を抱えていました。私の場合、解決策は "start in"ディレクトリを指定することでした(私のスクリプトは、ファイルへの完全パスを指定しなかったために見つからないファイルの内容を読み取ります)。
私も同じ問題を抱えており、taskkillコマンドを使用するための「user279399」によるコメントは非常に役に立ちました。これが引数構文の最後の私の解決策です
taskkill /f /fi "USERNAME eq domain\exchadmin" /im powershell.exe
このコマンドは、そのユーザーアカウントで実行されているPowerShellセッションのみを強制終了します。スケジュールされたタスクを実行するには、別のExchange管理アカウントを用意することをお勧めします。