我正在使用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
输出变量的内容....任何提示或建议?这似乎是一个简单的脚本。
答案 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()
}