该脚本读取计算机名称的.TXT文件。然后检查Windows Update是否设置为自动或手动;计算机名称和更新类型将被导出为CSV格式。起初,它只是出口最后一台电脑,而且它是类型。我做了一些研究,看到创建一个对象来保存名称和类型,然后将该对象添加到数组中会起作用。但是,将数组导出到CSV会导致与数组相关的有趣数据,而不是计算机名称和类型。最重要的是,我在控制台预输出时打印出数组,并且它看起来是最后一台计算机及其列出的类型的9倍,计算机数量是我阅读的.TXT文件中的数量。我知道export-CSV现在有一个附加参数可以解决这个问题,但是我们在办公室里有更多的PS 1.0和2.0,并且需要它来处理这些版本。将foreach循环的结果导出到CSV
clear-host
$item = new-object PSObject
$list = @()
$c=Get-Credential
$a = gc "c:\Scripts\pcList.txt"
ForEach ($b in $a)
{
$pcName = Get-WmiObject win32_service -filter 'name="wuauserv"' -computer $b -credential $c -ErrorAction SilentlyContinue |
select-object name,
@{N="System Name";E={$_.Systemname}}
$name = $pcName.'System Name'
$item | Add-Member NoteProperty Name $name -Force
$pcType = Get-WmiObject win32_service -filter 'name="wuauserv"' -computer $b - credential $c -ErrorAction SilentlyContinue |
select-object name, @{N="Startup Type";E={$_.StartMode}}
$type = $pcType.'Startup Type'
$item | Add-Member NoteProperty StartupType $type -Force
$list += $item
}
Write-Host $list
export-csv -Path "c:\Scripts\pcListCSV" -inputobject $list -notype
完美的工作!我真的很感激这个帮助,在这一天里我一直在抨击这个问题,只是想不出这个问题。谢谢! – TeegsD