【发布时间】:2013-10-01 12:57:04
【问题描述】:
我需要帮助才能让以下 PowerShell 脚本也只输出一个 .CSV 文件,而不是当前的两个。有人可以帮忙吗?我想要获取在远程服务器上设置的 SNMP 设置。我所追求的信息保存在注册表中。 $DellAdmKey 是一个包含子密钥的密钥,它指的是“communityNames”。在每个子键中,我得到引用“TrapDestinations”的“值数据”。 $DellAdmKey2 是一个名为“ValidCommunities”的键,但没有子键,它只有引用“AcceptedCommunityNames”和“Rights”的 DWORD 值。所以第一行的foreach不能用,因为“ValidCommunities”不包含子键
$servers = "ServerName"
$BaseKey = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey(‘LocalMachine’, $server)
$SubKey= $BaseKey.OpenSubKey("SYSTEM\\CurrentControlSet\\Services\\SNMP\Parameters",$true)
$DellAdmKey = $BaseKey.OpenSubKey("SYSTEM\\CurrentControlSet\\Services\\SNMP\\Parameters\\TrapConfiguration\\",$true)
$DellAdmKey2 = $BaseKey.OpenSubKey("SYSTEM\\CurrentControlSet\\Services\\SNMP\\Parameters\\ValidCommunities\\",$true)
$DellAdmKey.GetSubKeyNames() | foreach {
$action = $_
$subkey = $DellAdmKey.openSubKey($_)
$subkey.GetValueNames() | foreach {$_ | Select
@{name="ServerName";Expression={$server}},
@{Name="CommunityNames";Expression={$action}},
@{name="TrapDestinations";Expression={$subkey.getvalue($_)}}
} | Export-Csv c:\temp\1.csv -NoTypeInformation
}
$action = $_
$subkey = $DellAdmKey2.openSubKey($_)
$subkey.GetValueNames() | foreach {
$_ | Select @{name="ServerName";Expression={$server}},
@{name="AcceptedCommunityNames";Expression={$_}},
@{name="Rights";Expression={$subkey.getvalue($_)}}
} | Export-Csv c:\temp\2.csv -NoTypeInformation
【问题讨论】:
-
@madth3 - 因为将单词放在反引号中使其不可读 - 另请参阅讨论 meta.stackexchange.com/questions/201617/…
标签: powershell csv output