PowerShell

PowerShell 讓您可從遠端存取監控的裝置以及運用安裝在其上的 PowerShell 模組和 .NET 資料庫。

先決條件

WhatsUp Gold 使用 32 位元(亦即「x86」)PowerShell 引擎,只支援 32 位元的 PowerShell 嵌入式管理單元,而 64 位元的嵌入式管理單元無法正常運作。如果是能同時用於 32 位元和 64 位元作業系統的嵌入式管理單元,依預設是設定用於 64 位元系統,因此若要在 WhatsUp Gold 中發揮正常功能,必須針對 32 位元的 PowerShell 軟體引擎進行手動設定。

遠端連線要求

在使用 PowerShell 來將 WhatsUp Gold 機器連線到目的地(輪詢的)裝置前,請先確認以下的設定皆已完備。

監控工具組態

此主動監控工具的組態欄位包括:

可用的監控物件與屬性

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 時,可從建立的連線物件存取以下的屬性。

屬性名稱

說明

DeviceID

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 身分驗證通訊協定。
值:1 = 無、2 = MD5、3 = SHA

CredSnmpV3:EncryptProtocol(integer-value)

可為下列其中一個整數值:

  • 1 = 無
  • 2 = DES56
  • 3 = AES128
  • 4 = AES192
  • 5 = AES256
  • 6 = THREEDES

CredSnmpV3:EncryptPassword

SNMPv3 加密密碼。

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 )

}

See Also

主動監控工具

動態指令碼(主動)

APC UPS(主動)

BGP 對等體狀態

雲端資源監控工具

DNS

電子郵件

Exchange 2003

Exchange

風扇

檔案內容

檔案屬性

資料夾

FTP

HTTP 內容

JMX(主動)

網路統計資料

NT 服務

Ping 到達間隔抖動

Ping

電源

印表機

處理程序

SMI-S

SNMP 延伸

SNMP(主動)

SQL 查詢(主動)

SQL Server

SSH(主動)

SSL 憑證

存放控制器健全狀況監控工具

TCPIP

Telnet

溫度

VoIP

WAP 射頻

WMI 格式

WMI

設定輪詢屬性

將動作套用至監控工具

使用動作政策

隱含動作政策