10
我有一個腳本(我們稱之爲myPSScript.ps1),它接受兩個參數並執行預定義的步驟。腳本位於人員登錄並執行腳本的Windows Server框中。支持兩個用戶在給定的時間登錄。Powershell - 查找調用腳本的用戶
我想找出誰調用了腳本。
(Get-WmiObject -Class Win32_Process | Where-Object {$_.ProcessName -eq 'explorer.exe'}).GetOwner() | Format-Table Domain, User
這適用於當前用戶登錄並嘗試運行腳本。但是如果我在計劃任務中有一個批處理文件並運行相同的腳本呢?
在這種情況下,同樣的命令返回一個null異常,因爲沒有人登錄到機器中。
有沒有辦法找出哪個/哪個進程調用了powershell腳本。我隱約記得Start-Transcript記錄哪些用戶的命令運行等,所以這應該是可能的?
謝謝! Sanjeev
完美。這也適用於使用來自不同機器和不同用戶的Invoke-Command觸發腳本 - 這正是我正在尋找的。現在我可以審計誰做什麼,什麼時候:) – Sanjeev
還有一個問題。假設一個人使用域用戶登錄到Windows服務器。在這種情況下,腳本給了我們域用戶,但是當它被多個人使用時,這並沒有幫助。終端服務管理器顯示客戶端名稱,該名稱是該用戶從中連接的客戶端的名稱。有沒有辦法獲得這些信息? – Sanjeev
使用PSTerminalServices模塊是獲取該信息的選項之一。 – Sanjeev