該腳本讀取計算機名稱的.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