2 つのパラメーターを取り、定義済みの手順を実行するスクリプト (myPSScript.ps1 と呼びましょう) があります。スクリプトは、ユーザーがログインしてスクリプトを実行する Windows Server ボックスにあります。同時に 2 人のユーザーのログインをサポートします。
誰がスクリプトを呼び出したのかを知りたい。
(Get-WmiObject -Class Win32_Process | Where-Object {$_.ProcessName -eq 'explorer.exe'}).GetOwner() | Format-Table Domain, User
これは、ユーザーが現在ログインしていて、スクリプトを実行しようとしているときに機能します。しかし、スケジュールされたタスクにバッチ ファイルがあり、同じスクリプトを実行するとどうなるでしょうか。
その場合、マシンに誰もログインしていないため、同じコマンドは null 例外を返します。
誰が/どのプロセスがpowershellスクリプトを呼び出したかを調べる方法はありますか? コマンドが実行されたユーザーなどの Start-Transcript レコードを漠然と覚えているので、これは可能でしょうか?
ありがとう!サンジーブ