2016-11-22 18 views
0

我在Powershell中工作到.csv文件更新多個工作站的描述。.csv文件內容看起來是這樣的:通過powershell更新多個工作站的描述

Workstation,Description 
workstation1,description1 
workstation2,description2 

我希望我的腳本來看看第一列以獲取工作站名稱,然後使用Win32_OperatingSystem類,並在第二的信息更新計算機的描述柱。這裏是我的代碼:

$myarray = Import-CSV -Path "workstations.csv" -Delimiter ',' 
$wmi = Get-WmiObject -ClassName Win32_OperatingSystem -cn $myarray.Workstation 
$wmi.Description = $myarray.Description 
$wmi.Put() 

我遇到的問題是,當Powershell的獲取到$wmi.Description = $myarray.Description線就告訴我「樓市‘說明’不能在該對象上被發現。」

不知道該從哪裏出發。我知道描述正在保存到變量,因爲我可以用write-host輸出變量的內容....任何提示或建議?這看起來像一個簡單的腳本。

回答

1

錯誤的原因是因爲下面這行是從指定的計算機中檢索一個對象數組。

$wmi = Get-WmiObject -ClassName Win32_OperatingSystem -cn $myarray.Workstation 

你可以嘗試在$ myarray中使用的foreach和代碼應該可以正常

全碼:

$myarray = Import-CSV -Path "workstations.csv" -Delimiter ',' 
foreach ($x in $myarray) 
{ 

$wmi = Get-WmiObject -ClassName Win32_OperatingSystem -cn $x.workstation 
$wmi.Description = $x.description 
$wmi.Put() 
} 
+0

你能否詳細說明多一點你所說的什麼「在」'$ myarray.workstation'?如果我編輯上述包含foreach,我仍然會得到相同的錯誤。 – Ozar

+0

@Ozar我已經更新了答案,你可以檢查完整的代碼? –

+0

你,先生,搖滾。非常感謝。 – Ozar