将上下文对象与 PowerShell 操作搭配使用
- Last Updated: May 21, 2026
- 4 minute read
- WhatsUp Gold
- Version 2026
可用监控工具对象和属性
PowerShell 操作脚本有以下实例化的会话对象可用。
- 上下文。IScriptContext 界面的实作。这个对象可以访问运行时间变量,并允许您获取或设置属性,与监控环境进行交互,并将结果返回客户端。以下列出几个实用的方法:
- object GetProperty(string Property-Name):可根据名称检索环境变量值。
- object SetProperty (string Property-Name, string Property-Value):可根据名称制定环境变量值。
- object LogMessage (string 这是一个日志消息。) - 将消息记录到 WhatsUp Gold 日志。
- object GetDeviceProperty (string Device-Property-Name) - 检索特定于被监控设备的属性值。
- object SetDeviceProperty (string Device-Property-Name, string Property-Value) - 设置特定于被监控设备的属性值。
您可以使用 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 authentication protocol.values:1 = 无,2 = MD5,3 = SHA |
|
CredSnmpV3:EncryptProtocol(integer-value) |
整数值可以是以下其中一种:
|
|
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 |
与用户名关联的密码。 |
| CredRedfish:用户名 | 访问硬件设备所需的用户名。 |
| CredRedfish:密码 | 访问硬件设备所需的密码。 |
|
CredRedfish:协议 |
用于与设备进行安全通信的协议。 |
|
CredRedfish:端口 |
用于与设备通信的端口号。 |
| CredRedfish:超时 | 应尝试连接的时间长度。 |
|
CredRedfish:重试次数 |
WhatsUp Gold 应用于与设备通信的尝试次数。 |
|
CredRedfish:IgnoreCertificateErrors |
忽略证书错误。 |
示例:检查服务是否处于运行状态
创建仅在 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 | 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 )
}