可用监控工具对象和属性

PowerShell 主动监控工具脚本提供两个实体化的会话对象。

  • 上下文。IScriptContext 界面的实作。这个对象让您取得运行时间变量,也提供将结果返回客户端的机制。以下列出几个实用的方法:
    • object GetProperty(string propertyName):可根据名称检索环境变量值。
    • object SetProperty (string propertyName, string propertyValue):可根据名称规定环境变量值。
    • void SetResult(int resultCode, ResultsString):让脚本能设定代表成功的值,通常 0 = 成功,1 = 失败。
  • 记录程序:ILog 界面的实作。此对象提供 C# 应用程序可使用的相同方法。以下列出几个实用的方法:
    • void Error(字符串信息):建立特定错误的记录项目,并包含信息。
    • void Information(字符串信息):建立特定信息的记录项目,并包含信息。
    • void WriteLine(字符串信息):建立一般性的记录项目,并包含信息。

获取或设置上下文对象的属性。

您可以通过 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)

整数值可以是以下其中一种:

  • 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

与用户名关联的密码。

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 )

}