所以我試圖對ADUC中的OU中的服務器列表運行PowerShell查詢。下面的代碼:Get-WMIObject無效的查詢查詢列表a服務器
$Serverlist = Get-ADComputer -Filter * -SearchBase ("OU=Member Servers, OU=KDHR, OU=RC South, DC=afghan, DC=swa, DC=ds, DC=army, DC=mil") | Select-Object -ExpandProperty Name
foreach ($Server in $Serverlist) {
$Server
$LastBootUpTime = Get-WmiObject Win32_OperatingSystem $Server | Select -ExpandProperty LastBootUpTime
Write-Host "$LastBootUpTime"
} 這是我得到的輸出:
ServerName
Get-WmiObject : Invalid query "select ServerName from Win32_OperatingSystem"
At C:\Users\Me\Desktop\LastReboot.ps1:6 char:19
+ $LastBootUpTime = Get-WmiObject Win32_OperatingSystem $Server | Select -Exp Last ...
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : InvalidArgument: (:) [Get-WmiObject], ManagementException
+ FullyQualifiedErrorId : GetWMIManagementException,Microsoft.PowerShell.Commands.GetWmiObjectCommand
它看起來就像是試圖 「NAME = SameServerName」 傳遞到我的Get-WmiObject可以cmdlet的,而不僅僅是「SameServerName」。我提前輸出服務器名稱只是爲了看看$ Server是否持有,它似乎是正確的,但是當它進入cmdlet時,似乎在其中添加了「Name =」。任何想法爲什麼?
編輯:我剛剛意識到我在GetWmiObject cmdlet的冷落參數「-ComputerName」。所以,現在該行看起來是這樣的:
$LastBootUpTime = Get-WmiObject Win32_OperatingSystem -ComputerName $Server | Select -ExpandProperty LastBootUpTime
它的工作現在,這是奇怪,因爲之前,我得到了一個「RPC不可用」的錯誤。
嗯,這確實改變了什麼是越來越投入該cmdlet,但它仍然會給出確切的同樣的錯誤。 – Joseph