如何獲取您無權訪問的遠端 Windows 伺服器的上次啟動時間?
如果您沒有被授予訪問該伺服器的權限,是否可以獲得遠端機器(執行 Windows)的 LastBootUpTime;儘管伺服器與客戶端位於同一網路和同一域中?
即使您沒有被授予對機器的訪問權限(例如下面的 powershell),也可以獲得該框的權限列表,所以我希望懷疑可能有某種方法可以獲取類似數據並不是完全愚蠢的在正常執行時間…特別是如果電腦在啟動後更新了一些 AD 屬性,例如 LastLogonTimestamp 或類似的?
([adsi]'WinNT://myServerName/Administrators, group').psbase.Invoke("members") ` | %{$_.GetType.Invoke().InvokeMember("Name",'GetProperty', $null, $_, $null)}
我還編寫了程式碼(PowerShell 和 C#)來檢索伺服器的上次啟動時間,其中目前使用者確實對遠端電腦具有權限。
$arrayOfServers | Get-CimInstance Win32_OperatingSystem | select csname, lastbootuptime
有關更多範例,請參閱我對 SO 相關問題的解決方案: https ://stackoverflow.com/questions/22965686/how-to-get-last-boot-time-of-a-remote-system-in-c-sharp- or-vb-with-a-non-admin-u/52478378#52478378
不,但您可以為非管理員使用者啟用 WMI 以限制所授予權限的範圍,但這意味著管理員需要啟用該使用者。
允許使用者訪問特定 WMI 命名空間
您可以通過在命名空間的 WMI 控制項中設置“遠端啟用”權限來允許或禁止使用者訪問特定的 WMI 命名空間。如果使用者嘗試連接到他們不允許訪問的命名空間,他們將收到錯誤 0x80041003。預設情況下,此權限僅對管理員啟用。管理員可以為非管理員使用者啟用對特定 WMI 命名空間的遠端訪問。
以下過程為非管理員使用者設置遠端啟用權限。
設置遠端啟用權限
使用 WMI 控制項連接到遠端電腦。
有關 WMI 控制項的詳細資訊,請參閱使用 WMI 控制項設置命名空間安全性。
在安全選項卡中,選擇命名空間並點擊安全。
找到相應的帳戶並在“權限”列表中選中“遠端啟用”。
更多關於這個話題在這裡
設置完成後,就可以啟動 WMI 查詢了;
在命令提示符下;
wmic /node:"<computer>" OS get LastBootUpTime
在powershell中;
Get-WmiObject Win32_OperatingSystem -ComputerName <computer> | fl LastBootUpTime