【发布时间】:2018-05-22 07:39:17
【问题描述】:
我目前正在编写一个脚本来从远程服务器列表中检索注册表项并导出为 CSV。
我得到了这个,它可以工作(我稍后会清理错误处理),但输出不是我想要产生的,因为它不能很好地导出到 CSV。
$DataList = New-Object System.Collections.ArrayList
foreach ($Target in $ImportData) {
Write-Host "Scanning" $Target.ComputerName ":" -NoNewline
$RegData = Get-RegValue -ComputerName $($Target.ComputerName) -Hive $RegHive -Key $KeyName
if (!$RegData) {
Write-Host "No data found for" $Target.ComputerName
[void]$DataList.Add([PSCustomObject]@{
ComputerName = $Target.ComputerName
Hive ="No Data"
Key = ""
Value = ""
Data = ""
Type = ""
})
} else {
$DataList.Add($RegData)
Write-Host "Done"
}
}
$DataList
输出如下:
ComputerName Hive 键值数据 ------------ ---- --- ----- --- SERVER1 LocalMachine SOFTWARE\CUSTOM\Serv... AssetNumber 987 SERVER1 LocalMachine SOFTWARE\CUSTOM\Serv... BuildDate 04/ SERVER1 LocalMachine SOFTWARE\CUSTOM\Serv... iLODefaultPwd NA SERVER1 LocalMachine SOFTWARE\CUSTOM\Serv... OwnerContactDetails S G SERVER1 LocalMachine SOFTWARE\CUSTOM\Serv... OwnerName MS SERVER1 LocalMachine SOFTWARE\CUSTOM\Serv... OwnerPhone 643 SERVER1 LocalMachine SOFTWARE\CUSTOM\Serv... PatchAutoManual Aut SERVER1 LocalMachine SOFTWARE\CUSTOM\Serv... ServerRole Man SERVER1 LocalMachine SOFTWARE\CUSTOM\Serv... ServerType Vir SERVER1 LocalMachine SOFTWARE\CUSTOM\Serv... WarrantyExpires NA 价值 : 钥匙 : 数据 : 蜂巢:未找到 类型 : 计算机名称:SERVER2 SERVER3 LocalMachine SOFTWARE\CUSTOM\Serv... buildDate 15/ SERVER3 LocalMachine SOFTWARE\CUSTOM\Serv... OperatingSystem Win SERVER3 LocalMachine SOFTWARE\CUSTOM\Serv... OwnerContactDetails M/S SERVER3 LocalMachine SOFTWARE\CUSTOM\Serv... OwnerName GM SERVER3 LocalMachine SOFTWARE\CUSTOM\Serv... OwnerPhone 131 SERVER3 LocalMachine SOFTWARE\CUSTOM\Serv... PatchAutoManual - SERVER3 LocalMachine SOFTWARE\CUSTOM\Serv... ServerRole SNB SERVER3 LocalMachine SOFTWARE\CUSTOM\Serv... ServerType Phy SERVER3 LocalMachine SOFTWARE\CUSTOM\Serv... WarrantyExpires -我怀疑这两种对象类型是不同的,但我编写的脚本不多,并且对于如何让我的自定义条目与自动检索的条目相适应有一个完整的心理障碍。
【问题讨论】:
-
Get-RegValue是做什么的?它不是标准的 cmdlet。 -
@arco444 大概来自RemoteRegistry 模块。
标签: powershell