2011-08-05 10 views
1

Powershellスクリプトを作成して、たくさんのことを行い、終了するとスケジュールされたタスクとして実行されます。そのため、スクリプトを実行して古いインスタンスが存在する場合は、古いインスタンスを強制終了しても、古いインスタンスがまだ生存しているかどうかを確認できます。powershellスクリプトのハングアップインスタンスを監視する

私はこのようなものを使用だろうと考えました。

$process = Get_Process | $name 
$process.kill 

をしかし、どのように簡単な方法での$ name変数を取得しますか?

もっと良い提案がありますか? よろしくお願いします。 ギスリ

+2

スクリプトがハングしないようにする方法がないのは確かですか?私は殺すプロセスに頼るよりも、信頼性の高いスクリプトを作成することに集中します。 – Rynant

+0

@Ryant - もちろんこれを正しく実行しようとしていますが、アクセス権のないサーバー上で実行されるため、これをアプリケーションのセーフティネットとして必要とします。これは、私がたくさんのプロセスを積み重ねたり、サーバーリソースを使い果たしたりしないようにするためです。 – Gisli

答えて

2

あなたはタスク構成を予定しウィンドウでこれを行うことができます。設定は使用しているOSによって異なります。

EDIT:一定時間後(つまり、次のタスクが開始される)に強制終了されるタスクを構成できます。

+0

ありがとう。これはオプションかもしれない、私は私のメンターと確認する必要があります。私は彼がperlで書いたスクリプトを書き直しており、そこにはプロセスを殺す機能がありました。それは、複数のプラットフォームで実行する必要があったためかもしれません。 – Gisli

1

なぜ名前を取得する必要がありますか? Get-Processは忠実度の高いProcessオブジェクトを返し、直接操作することができます。

特定の名前のプロセスを取得するには、たとえば$n = Get-Process notepadを使用してから$n.kill()を実行してください。再度名前を確認する必要がある場合は、$n.Nameを実行してください。あなたが使用することができますどのようなプロパティとメソッドを参照するには、$n | get-member

を試してみて、あなたはマニュアルを読んで確認してください:http://technet.microsoft.com/en-us/library/dd347630.aspx

+0

これは@ Gisliの問題に対処していません。複数のpowershellプロセスが実行されている可能性があります。スクリプトはどのスクリプトを強制終了させるべきでしょうか? 1つのpowershell.exeプロセスはスクリプトそのもの、1つはアクティブなコンソールセッション、もう1つは別のタスクなどである可能性があります。 – Rynant

+0

@Rynant - もちろんです。私は取得プロセスに関する彼の具体的な質問に取り組んでいます。彼が見つけることができる解決策に向かって動くのを助けます。 stackoverflowの目的は、OPがちょうどそれを行うことができるように全体を与えることではありません。 – manojlds

+0

@manojldsチップをありがとう – Gisli