這是我寫的 Powershell 腳本:
$varCompList = Get-ADComputer -Filter "Name -like '*Name of Computers*'" -Properties OperatingSystemVersion | select DNSHostName, OperatingSystemVersion
foreach ($System in $varCompList){
$Restult=switch ($System.OperatingSystemVersion){
"10.0 (20348)"{"Server 2022"}
"10.0 (19042)"{"Server 2019 20H2"}
"10.0 (18363)"{"Server 2019 1909"}
"10.0 (17763)"{"Server 2019 1809"}
"10.0 (14393)"{"Server 2016"}
}
}
echo $varCompList
它顯示所有服務器,但OperatingSystemVersion仍顯示為10.0 (14393)。
我錯過了什么?
uj5u.com熱心網友回復:
您當前正在將映射的作業系統名稱分配給一個變數,但您從未將它用于任何事情,也從未更新原始輸入物件。
與其將結果分配給變數,不如將其分配給OperatingSystemVersion每個物件的屬性:
foreach ($System in $varCompList){
$System.OperatingSystemVersion = switch ($System.OperatingSystemVersion){
"10.0 (20348)"{"Server 2022"}
"10.0 (19042)"{"Server 2019 20H2"}
"10.0 (18363)"{"Server 2019 1909"}
"10.0 (17763)"{"Server 2019 1809"}
"10.0 (14393)"{"Server 2016"}
default { $_ }
}
}
該default案例將確保您為任何未安裝任何列出的版本的計算機保留原始版本字串。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/437675.html
