0
平均的なCPU使用率で上位のいくつかのプロセスを数秒間にわたって識別したいと考えています。それぞれの結果は、PID、プロセス名、およびユーザーIDをリストする必要があります。 スクリプトは、別のドメインにある複数のサーバーで同時に実行する必要があります。これらのサーバーの資格情報は、実行されているコンピューターとは異なります。カウントが値と等しい場合の結果の表示
Get-Process
は、–credentials
パラメータを受け入れないため動作しません。これらのサーバーではスクリプトが制限されているため、 Invoke-Command
は機能しません。
User Name CPU ID Description
--------- --- -- -----------
User73 25 68680 App89.exe
User73 25 68888 App57.exe
LOCAL SERVICE 2.5 63868 WmiPrvSE.exe
User48 0 66308 App38.exe
User48 0 62608 App54.exe
User73 25 68888 App57.exe
User73 25 68680 App89.exe
LOCAL SERVICE 2.5 63868 WmiPrvSE.exe
User48 0 59336 dwm.exe
User48 0 52528 App57.exe
User73 25 68888 App57.exe
User73 25 68680 App89.exe
User39 19.5 48792 App43.exe
User39 2.5 65996 App48.exe
LOCAL SERVICE 2.5 63868 WmiPrvSE.exe
が、私は3回を15以上のCPUを持っていると記載されているだけの結果を一覧表示する必要があるだけで、それぞれ一度と
$Result = $TopProcess | Where {$_.CPU -gt $Threshold} | Measure | Where {$_.Count -eq $NoRS}
を一覧表示する: 私は
$TopProcess
になってしまったものです
は何も返しません。
@マーティン。例に基づいて私は最初の2行を参照することを期待したい: 'User73 25 68680をApp89.exe User73 25 68888 App57.exe' 私は' Group'と私の 'IF($結果を!)を使用してみました'それはnullも返すことを示しています。 –
ああ、あなたはまた、IDのためにグループ化する必要があります。 –
私は各パイプをチェックする新しい変数に分割し、 'Group'は期待されるカウントを与えます。グループ化された結果を読み込み可能なテーブルに再フォーマットする必要があります。 –