如果我需要来自本地PC的信息,我的脚本会(有点)做它应该做的事情。我有它到达txt文件的计算机列表。该脚本将读取列表并显示计算机列表的“正在处理:...”,但导出仅显示本地系统。即使我从txt文件中删除了本地PC,导出到csv仍然只显示本地系统。它确实创建了正确的列并相应地填充。我只需要从远程系统中提取数据。由于脚本将由多人使用,因此变量允许txt文件和输出文件在他们的系统上。
Function Export-InstalledSoftware {
Process {
if (Test-Connection -ComputerName $_ -count 1 -quiet)
{
echo "Processing: $env:COMPUTERNAME"
Get-ItemProperty -path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*,HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\* `
| Select-object @{n='ComputerName';e={$env:COMPUTERNAME}},@{n='DisplayName';e={$_.displayName}},@{n='Publisher';e={$_.Publisher}},@{n='DisplayVersion';e={$_.DisplayVersion}} `
| Sort displayName `
| Export-CSV C:\Users\$(get-content env:username)\Desktop\"SoftwareQuery_"$(get-date -f yyyy-MM-dd)".csv" -NoTypeInformation -Encoding ASCII
}
}
}
Get-Content "C:\Users\$(get-content env:username)\Desktop\systems.txt" -readcount 1 | Export-InstalledSoftware