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 账户秘钥。

CredRestAPI:Username

需要此用户名向设备进行身份验证。

CredRestAPI:Password

与用户名关联的密码。

CredUbiquiti:Username

用于向 Ubiquiti Unifi 控制器进行身份验证的用户名。

CredUbiquiti:Password

与用户名关联的密码。

CredUbiquiti:Port

Ubiquiti Unifi 控制器用于响应 API 请求的端口号。

示例:检查服务是否处于运行状态

创建仅在 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 )

}

See Also

主动监控工具

活动脚本(主动)

APC UPS(主动)

BGP 对等状态

云资源监控器

DNS

电子邮件

Exchange 2003

Exchange

风扇

文件内容

文件属性

文件夹

FTP

HTTP 内容

JMX(主动)

Meraki 设备状态主动监控器

网络统计

服务

Ping 到达间隔抖动

Ping

电源

打印机

进程

SMI-S

SNMP 扩展

SNMP(主动)

SQL 查询(主动)

SQL Server

SSH(主动)

SSL 证书

存储控制器健康监控工具

TCP/IP

Telnet

温度

VoIP

WAP 射频

WMI 格式化

WMI

设置轮询属性

将操作应用到监控器

使用操作策略

隐式操作策略