我创建了一个PowerShell脚本来检索以下内容;
Servername
” ServerListName
” Version
” Computername
” 我想对计算机列表运行此命令,并将值导出到csv文件或附加源csv文件。
我可以将信息显示在屏幕上,但是很难为每个返回的结果导出和添加标题。
Clear-Host
$computers = Get-Content C:\Tanium.csv
foreach ($computer in $computers)
{
$RegKey ="Software\WOW6432Node\Tanium\Tanium Client"
Cd hklm:\$RegKey
Get-WMIObject Win32_ComputerSystem | Select-Object -ExpandProperty name
Get-ItemPropertyValue -Path. -Name ServerName
Get-ItemPropertyValue -Path. -Name ServerNameList
Get-ItemPropertyValue -Path. -Name Version
}
如果可能,我想导出或追加现有的显示数据的csv文件;
ComputerName: 123455
Version: 7.098
ServerName: 1233456454
ServerNameList: 1233456454
答案 0 :(得分:0)
假定在所有目标计算机上都设置了PowerShell远程处理:
$computers = Get-Content C:\Tanium.csv
Invoke-Command -Computer $computers {
$regKey = "HKLM:\Software\WOW6432Node\Tanium\Tanium Client"
$regKeyValues = Get-ItemProperty -LiteralPath $regKey
[pscustomobject] @{
ComputerName = (Get-CimInstance Cim_ComputerSystem).Name
Version = $regKeyValues.Version
ServerName = $regKeyValues.ServerName
ServerNameList = $regKeyValues. ServerNameList
}
} | Export-Csv -Append -NoTypeInformation -Encoding Utf8 -LiteralPath out.csv
注意:
鉴于CIM取代了PSv3 +中的WMI,因此我已经从WMI切换到CIM cmdlet。
自定义对象的输出顺序不一定反映计算机名称($computers
)的输入顺序。