PowerShell

PowerShell 提供对受监控设备的远程访问功能,并能利用设备安装的 PowerShell 模块和 .NET 库。

前提条件

WhatsUp Gold 使用 32 位(即 x86)PowerShell 引擎。只支持 32 位的 PowerShell 管理单元,纯 64 位管理单元不能正常工作。在 32 位和 64 位操作系统中均可使用的管理单元默认配置为 64 位系统,并且必须手动配置为 32 位 PowerShell 引擎才能正常使用 WhatsUp Gold。

远程连接要求

必须确保以下要素才能支持 WhatsUp Gold 计算机使用 PowerShell 连接到目标(被轮询的)设备。

监控器配置

此主动监控器的配置字段包括:

可用监控器对象和属性

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:用户名

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:超时

telnet 连接的超时值。

CredTelnet:端口

Telnet 端口(如不是默认)。

CredTelnet:用户名

Telnet 用户名。

CredTelnet:密码

Telnet 密码。

CredJMX:用户名

Java 管理扩展用户名。

CredJMX:密码

Java 管理扩展密码。

CredSMIS:超时

“存储管理”超时。

CredSMIS:端口

“存储管理”端口。

CredSMIS:协议

 

“存储管理”协议。

CredSMIS:用户名

 

“存储管理”用户名。

CredSMIS:密码

 

“存储管理”密码。

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(举例)

# ...用 WMI 获取...

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

$CompName = $WMIRes.PSComputerName

# 在远程设备上运行命令

$PsResult = Invoke-Command -ComputerName $DeviceName -ScriptBlock { Get-Service | 其中 { $_.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 )

}

另请参阅

主动监控工具

活动脚本(主动)

APC UPS(主动)

云资源监控器

降级阵列

DNS

电子邮件

Exchange 2003

Exchange

风扇

文件内容

文件属性

文件夹

FTP

HTTP 内容

JMX(主动)

网络统计

NT 服务

Ping 到达间隔抖动

Ping

电源

打印机

进程

SMI-S

SNMP 扩展

SNMP(主动)

SQL 查询(主动)

SQL Server

SSH(主动)

SSL 证书

TCP/IP

Telnet

温度

VoIP

WAP 射频

WMI 格式化

WMI

设置轮询属性

将操作应用到监控器

使用操作策略

隐式操作策略