PowerShell 讓您可從遠端存取監控的裝置以及運用安裝在其上的 PowerShell 模組和 .NET 資料庫。
WhatsUp Gold 使用 32 位元(亦即「x86」)PowerShell 引擎,只支援 32 位元的 PowerShell 嵌入式管理單元,而 64 位元的嵌入式管理單元無法正常運作。如果是能同時用於 32 位元和 64 位元作業系統的嵌入式管理單元,依預設是設定用於 64 位元系統,因此若要在 WhatsUp Gold 中發揮正常功能,必須針對 32 位元的 PowerShell 軟體引擎進行手動設定。
遠端連線要求:
在使用 PowerShell 來將 WhatsUp Gold 機器連線到目的地(輪詢的)裝置前,請先確認以下的設定皆已完備。
啟用 PowerShell 遠端
:在目的地(輪詢的)裝置上啟用 PowerShell 遠端。如需詳細資訊,請參閱所提供的 MSDN 說明文件連結。此主動監控工具的組態欄位包括:
PowerShell 主動監控工具指令碼提供兩個實體化的工作階段物件。
您可以使用 PowerShell 主動監控工具指令碼來擷取內容屬性的值。
語法
Property-Value = Context.GetProperty("
Property-Name")
Context.SetProperty("
Property-Name","
Property-Value")
範例
$DeviceIpAddress = $Context.GetProperty("Address")
$Context.SetProperty("Timeout", "180")
您所設定的結果字串將會被加入監控工具的狀態變更說明中。您所設定的狀態旗標(0、1)上線/離線會決定顯示在狀態變更時間軸中的指標。
# 在成功取得裝置 IP 後,設定為結果及成功旗標 ...
$Context.SetResult(0, "Device IP address is: " + $DeviceIpAddress)
在執行 PowerShell 時,可從建立的連線物件存取以下的屬性。
屬性名稱 |
說明 |
裝置 ID |
WhatsUp Gold 裝置識別字串。 |
位址 |
IP 位址。 |
逾時 |
此工作階段的逾時值。(以秒計) |
可為 PowerShell 設定以下的認證屬性。當在使用主動監控工具建立初始 PowerShell 連線之後,如需要再連線到其他服務、平台或應用程式時,這項功能就非常實用。
屬性名稱 |
說明 |
CredWindows:DomainAndUserid |
Windows 認證的網域和使用者。 |
CredWindows:Password |
設定 Windows 密碼。 |
CredSnmpV1:ReadCommunity |
SNMPv1 讀取群體字串。 |
CredSnmpV1:WriteCommunity |
SNMPv1 寫入群體字串。 |
CredSnmpV2:ReadCommunity |
SNMPv2 讀取群體字串。 |
CredSnmpV2:WriteCommunity |
SNMPv2 寫入群體字串。 |
CredSnmpV3:AuthPassword |
SNMPv3 密碼。 |
CredSnmpV3:AuthProtocol(integer-value) |
SNMPv3 身分驗證通訊協定。 |
CredSnmpV3:EncryptProtocol(integer-value) |
可為下列其中一個整數值:
|
CredSnmpV3:EncryptPassword |
SNMP V3 加密密碼。 |
CredSnmpV3:Username |
SNMPv3 使用者。 |
CredSnmpV3:Context |
SNMPv3 內容。 |
CredADO:Password |
ADO 密碼。 |
CredADO:Username |
ADO 使用者名稱。 |
CredSSH:Username |
SSH 使用者名稱。 |
CredSSH:Password |
SSH 密碼。 |
CredSSH:EnablePassword |
啟用密碼旗標。 |
CredSSH:Port |
若非預設則為 SSH 連接埠。 |
CredSSH:Timeout |
SSH 工作階段逾時。 |
CredVMware:Username |
VMware 使用者名稱。 |
CredVMware:Password |
VMware 密碼。 |
CredTelnet:Timeout |
Telnet 連線的逾時值。 |
CredTelnet:Port |
Telnet 連接埠(若非預設的話)。 |
CredTelnet:Username |
Telnet 使用者名稱。 |
CredTelnet:Password |
Telnet 密碼。 |
CredJMX:Username |
Java Management Extensions 使用者名稱。 |
CredJMX:Password |
Java Management Extensions 密碼。 |
CredSMIS:Timeout |
儲存管理逾時。 |
CredSMIS:Port |
儲存管理連接埠。 |
CredSMIS:Protocol
|
儲存管理通訊協定。 |
CredSMIS:Username
|
儲存管理使用者名稱。 |
CredSMIS:Password
|
儲存管理密碼。 |
CredAWS:AccessKeyID
|
Amazon Web Services 帳號 ID。 |
CredAWS:SecureAccessKey
|
Amazon Web Services 存取金鑰。 |
CredAzure:TenantID
|
Azure 訂用帳戶 ID。 |
CredAzure:ClientID
|
Azure 用戶端帳戶 ID。 |
CredAzure:SecureKey |
Azure 帳戶金鑰。 |
建立一個只有當 DNS 用戶端使用儲存的認證來執行時才顯示上線狀態的 PowerShell 主動監控工具。
# 要輪詢的裝置
$DeviceIpAddress = $Context.GetProperty("Address")
# 直接設定電腦名稱,或者...
# $CompName = mydb02.corpnet.example.com (for example)
# ...使用 WMI 來取得...
$WmiRes = Invoke-Command -ComputerName $DeviceIpAddress -ScriptBlock { Get-WmiObject Win32_Computersystem }
$CompName = $WMIRes.PSComputerName
# 在遠端裝置上執行命令
$PsResult = Invoke-Command -ComputerName $DeviceName -ScriptBlock { Get-Service | where { $_.Name -match "Dnscache" } }
# 檢查「執行中」的條件
if ($PsResult.Status -match 'Running') {
$RespondingMessage = "Process '" + $processName + "' running on " + $DeviceIpAddress + " is responding."
$Context.SetResult(0, $RespondingMessage )
} else {
$NotRunningMessage = "Process '" + $processName + "' running on " + $DeviceIpAddress + " is not responding."
$Context.SetResult(1, $NotRunningMessage )
}