通过PowerShell更新多个工作站描述

时间:2016-11-22 18:25:03

标签: powershell csv

我正在使用Powershell来.csv文件更新多个工作站描述。 .csv文件的内容如下所示:

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 个答案:

答案 0 :(得分: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()
}