1
Im對於PS來說相當新,我試圖執行一個簡單的任務,通過使用get-content獲得計算機列表,比通過foreach循環對每個設備執行wmi查詢該列表並獲得操作系統類型,比用IF語句檢查執行不同的任務取決於操作系統,永遠贏得Vista 8 8 10需要與XP分離。 我寫了下面的PS腳本:簡單forEach與If如果陳述帶來錯誤結果
$computers=Get-Content C:\ComputerList\Computers.txt
$OSType=Get-WmiObject -Class Win32_operatingsystem -namespace "root\CIMV2" -ComputerName $computers
ForEach ($compdevice in $computers) {
if ($OSType.buildnumber -eq "2600*") {
Write-Host $compdevice"'s OS type is XP" }
Else {
Write-Host $compdevice"'s Os type is Newer than xp"
}
}
在這種情況下,我得到的所有計算機相同的結果(IM運行祕密againt 2 Win XP的1勝7和1域中envierment贏得8
。我已經嘗試了不同的變化也:
$computers=Get-Content C:\ComputerList\Computers.txt
$OSType=Get-WmiObject -Class Win32_operatingsystem -namespace "root\CIMV2" -ComputerName $computers
ForEach ($compdevice in $computers) {
if ($OSType.buildnumber -eq "2600*") {
Write-Host $compdevice"'s OS type is XP" }
Else {
Write-Host $compdevice"'s Os type is Newer than xp"
}
}
在這兩種情況下
我得到同樣的結果(一切順利if語句的一個選項)
我在想,我做錯了什麼? 注 - 我試圖按標題,編號和版本進行過濾。甚至在IF聲明中使用通配符,它不能很好地工作