私はpowershellスクリプトを実行しています.ISEから実行すると1つの値が出力されますが、同じタスクをタスクスケジューラで実行すると、手動で実行すると表示されません。実行されていたコードは以下の通りです:手動でスクリプトを実行するとスケジュールされたタスクで実行したときの奇妙な結果
import-module WebAdministration
$app_pool_name = <<app_pool_name_goes_here>>
$memused = ""
$cpuused = ""
$datetime = get-date -format s
$memused = Get-WmiObject Win32_process | where CommandLine -Match "$app_pool_name"
$id = dir IIS:\AppPools\$app_pool_name\WorkerProcesses\ | Select-Object -expand processId
$cpuUsed = Get-WmiObject Win32_PerfFormattedData_PerfProc_Process | where IDProcess -Match $id
Add-Content -path C:\Winsys\PSOutput\$app_pool_name-CPU-RAM_test.txt -value "$datetime,$($memUsed.workingsetsize),$($cpuUsed.PercentProcessorTime)"
返される出力は、次のとおりです。
日、MEM、CPU
2016-08-02T14:09:36,15062687744 、0
2016-08-02T14:09:タスクスケジューラによってスクリプトを実行すると、出力が返さ38,15062425600,0
は次のとおりです。
日、MEM、CPU
2016-08-02T13:58:25,15065047040 624189440,0
2016-08-02T14:05:01,15061901312 624713728,0
違いMemであり、何らかの理由で余分な価値が追加されています。誰がなぜこれが分かっていますか?
ドロップ$コメントの追加あなたはそれを拾うために管理だ両方のプロセスの詳細を見ることができるように別のファイルにmemused。 –
ありがとう、これは正しい道を私に導いた – Saf