2013-12-10 44 views
1

我需要從遠程服務器的註冊表中使用替代憑據獲取SNMP信息。爲了得到陷阱名稱我使用這個Powershell獲取SNMP設置

$server = "ServerName" 
    $Reg = Get-WmiObject -List -Namespace root\default -ComputerName $server -Credential $cred | Where-Object {$_.Name -eq "StdRegProv"} 
    $HKLM = 2147483650 
    $TrapName = ($reg.EnumKey("$HKLM","SYSTEM\CurrentControlSet\Services\SNMP\Parameters\TrapConfiguration")).sNames 
    $TrapName 

我需要什麼,現在得到的是讓每個$ TrapName「數值數據」裏的「值名稱是1」 可能有人幫助。謝謝

+0

在serverfault上查看相關問題:http://serverfault.com/questions/579091/how-do-i-remotely-install-configure-and-maintain-snmp –

回答

1

$ reg有一個EnumValues方法,枚舉給定鍵的值。因此,您將爲集合$ TrapName的每個成員調用EnumValues。然後,每次調用EnumValues時,都要查看sNames集合,以查看是否包含名稱爲1的值。當您找到值爲1的$ TrapName時,請在$ reg,GetDWORDValue/GetStringValue/etc上使用第三種方法。基於名稱爲1的值的類型是什麼。 (EnumValues返回的對象有一個可用於確定值類型的Types成員)。

在Powershell中,您可以使用get-member查看對象具有哪些方法和屬性。例如:$reg | get-member會顯示各種Get * Value方法,以及EnumKeys和EnumValues方法。

+0

謝謝你分享 – user1890242