PowerShell

PowerShell を使用すると、監視対象デバイスへのリモートアクセスが可能になり、そのデバイスにインストールされている PowerShell モジュールおよび .NET ライブラリを利用できます。

前提条件

WhatsUp Gold は 32 ビット (すなわち「x86」) の PowerShell エンジンを使用します。32 ビットの PowerShell スナップインのみがサポートされており、64 ビットのみのスナップインは正常に機能しません。32 ビットと 64 ビットの両方のオペレーティングシステムで動作するスナップインは、デフォルトでは 64 ビットシステム用に設定されているため、32 ビットの PowerShell エンジンが WhatsUp Gold で正常に機能するには、手動で設定する必要があります。

リモート接続の要件

PowerShell を使用して、WhatsUp Gold マシンを接続先 (ポーリング先) のデバイスに接続できるようにするには、以下を準備してください。

モニタの設定

このアクティブモニタには、以下の設定フィールドがあります。

使用可能なモニタのオブジェクトと属性

PowerShell アクティブモニタスクリプトでは、2 つのインスタンス化セッションオブジェクトを利用できます。

コンテキストオブジェクトのプロパティの取得または設定

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 デバイスの識別文字列。

Address

[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

Storage Management のタイムアウト。

CredSMIS:Port

Storage Management のポート。

CredSMIS:Protocol

 

Storage Management のプロトコル。

CredSMIS:Username

 

Storage Management のユーザー名。

CredSMIS:Password

 

Storage Management のパスワード。

CredAWS:AccessKeyID

 

Amazon Web Services のアカウント ID。

CredAWS:SecureAccessKey

 

Amazon Web Services のアクセスキー。

CredAzure:TenantID

 

Azure のサブスクリプション ID。

CredAzure:ClientID

 

Azure クライアントのアカウント ID。

CredAzure:SecureKey

Azure のアカウントキー。

CredRestAPI:Username

デバイスに対して認証を行うためのユーザー名。

CredRestAPI:Password

ユーザー名に関連付けられたパスワード。

CredUbiquiti:Username

Ubiquiti Unifi コントローラでの認証に使用するユーザー名。

CredUbiquiti:Password

ユーザー名に関連付けられたパスワード。

CredUbiquiti:Port

Ubiquiti Unifi コントローラが API 要求に応答するために使用するポート番号。

例:サービスが稼働中かどうかをチェックする

保存されている認証情報を使用して DNS クライアントが実行されている場合にのみ、稼働のステータスを示す PowerShell アクティブモニタを作成します。

# Device to Poll

$DeviceIpAddress = $Context.GetProperty("Address")

# Set the computer name directly, or...

# $CompName = mydb02.corpnet.example.com (for example)

# ...get it using WMI...

$WmiRes = Invoke-Command -ComputerName $DeviceIpAddress -ScriptBlock { Get-WmiObject Win32_Computersystem }

$CompName = $WMIRes.PSComputerName

# Run command on remote device

$PsResult = Invoke-Command -ComputerName $DeviceName -ScriptBlock { Get-Service | where { $_.Name -match "Dnscache" } }

# Check for condition of 'running'

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

E メール

Exchange 2003

Exchange

ファン

ファイルコンテンツ

ファイルプロパティ

フォルダー

FTP

HTTP コンテンツ

JMX (アクティブ)

Meraki デバイスのステータスのアクティブモニタ

ネットワーク統計

サービス

Ping 到着間ジッタ

Ping

電源

プリンタ

プロセス

SMI-S

SNMP 拡張

SNMP (アクティブ)

SQL クエリ (アクティブ)

SQL Server

SSH (アクティブ)

SSL 証明書

ストレージコントローラ正常性モニタ

TCPIP

Telnet

温度

VoIP

WAP 無線

WMI フォーマット済み

WMI

ポーリングのプロパティの設定

モニタへのアクションの適用

アクションポリシーの使用

暗黙的アクションポリシー