スケジュールされたタスクのExchange PowerShellが永久に実行される


8

スケジュールされたタスクとして実行したいExchange 2010 PowerShellスクリプトがいくつかあります。

「別のユーザーとして実行」を使用してPowerShellを起動すると、スクリプトを実行でき、スクリプトは正しく実行されます。

同じユーザーを使用してタスクをスケジュールすると、タスクは永久に実行状態のままになります。

タスクが行き詰まっている場所を知るにはどうすればよいですか?

参考までに、Exchangeを有効にする方法は次のとおりです。

. 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1'
Connect-ExchangeServer -auto

そして、これが私がタスクスケジューラからスクリプトを実行しようとした方法です。

  • powershell -command "&{。 'c:\ windows \ script.ps1'}"
  • powershell-ファイル 'c:\ windows \ script.ps1'
  • powershell -file "c:\ windows \ script.ps1"

すべて同じ結果になります。Grr ...


パーティーに遅くコメントしたが、私は同じ行動をしました。PowerShellを使用して登録されたスケジュールされたタスクRegister-ScheduledJobは、PowerShellコンソールとISEを閉じると終了しませんでした。
user4317867

回答:


3

実行ポリシーを変更するか-ExecutionPolicy Bypass、コマンドラインパラメータとしてを指定する必要があります。

powershell -Command "<path to .ps1 script>" -ExecutionPolicy Bypass

1
コマンドラインパラメータにExecutionPolicyオプションを追加しました。変化なし; タスクはまだ永久に実行されます。
ロングネック

2

これがどのように行われているかはわかりませんが、タスクスケジューラ経由でPowerShellスクリプトを実行しているときは、「プログラムの開始」アクションを使用してpowershellを選択し、そこから引数を追加します。それはあなたがここでやっていることかもしれませんが、それは一種の不明確です。これがスクリーンショットです。 ここに画像の説明を入力してください

TheCompWizごとの実行ポリシーも問題になる可能性があります。


それはpowershell.exeの有効なコマンドライン構文でもありませんが、そのために私は試してみました。タスクはすぐに失敗しました。
ロングネック

私の毎日のpowershellタスクはすべてそのように実行され、正常に機能するので興味深いです。
ZnewmaN

C:\ WINDOWS \ system32 \ WindowsPowerShell \ v1.0 \ powershell.exe -command "& 'c:\ windows \ script.ps1'"
ZnewmaN

ああ、違いがあります。スクリーンショットが表示されない-command
ロングネック

ええ、私は実際には個人的に-commandを使用していませんが、おそらく適切な使用法です。
ZnewmaN

0

私も同じ問題を抱えていました。私の場合、解決策は「開始」ディレクトリを指定することでした(私のスクリプトは、ファイルへのフルパスを指定しなかったために見つからないファイルの内容を読み取ります)。


0

私も同じ問題を抱えており、taskkillコマンドを使用するための「user279399」によるコメントは非常に役に立ちました。修正が必要です。これが引数の構文の最後にある私の解決策です

taskkill /f /fi "USERNAME eq domain\exchadmin" /im powershell.exe

このコマンドは、そのユーザーアカウントで実行されているPowerShellセッションのみを強制終了します。スケジュールされたタスクを実行するには、別のExchange管理アカウントを用意することをお勧めします。


-3

スクリプトの最後に追加してみてください[taskkill / f / im "powershell.exe"]これにより、すべての "powershell.exe"プロセスが終了します。現在のpower-shellプロセスを終了する方法がわかりません([cmd.exe / c]と同等)。しかし、それはトリックを行います。


そして、別のpowershellスクリプトが実行されていて、おそらく重要なことをしているとしたらどうでしょうか。質問せずにこれらのプロセスを強制終了しますか?本番環境では?ルーティンとして?マジ?!
Esa Jokinen、2015
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.