范例:PowerShell 主动监控工具脚本
PowerShell 主动监控工具脚本提供两个实体化的对象,使得执行操作能够成功:
- :IScriptContext 界面的实作。这个对象让您取得运行时间变量,也提供将结果返回客户端的机制。以下列出几个实用的方法:
- object GetProperty(string propertyName):可根据名称检索环境变量值。
- object SetProperty (string propertyName):可根据名称规定环境变量值。
- void SetResult(int resultCode):让脚本能设定代表执行成败的值,通常 0 = 成功,1 = 失败。
- :ILog 界面的实作。此对象提供 C# 应用程序可使用的相同方法。以下列出几个实用的方法:
- void Error(字符串信息):建立特定错误的记录项目,并包含信息。
- void Information(字符串信息):建立特定信息的记录项目,并包含信息。
- void WriteLine(字符串信息):建立一般性的记录项目,并包含信息。
环境变量
您可在 PowerShell 主动监控工具脚本中使用以下环境变量:
- DeviceID
- Address
- Timeout
- CredWindows:DomainAndUserid
- CredWindows:Password
- CredSnmpV1:ReadCommunity
- CredSnmpV1:WriteCommunity
- CredSnmpV2:ReadCommunity
- CredSnmpV2:WriteCommunity
- CredSnmpV3:AuthPassword
- CredSnmpV3:AuthProtocol (值:1 = 无、2 = MD5、3 = SHA)
- CredSnmpV3:EncryptProtocol (值:1 = 无、2 = DES56、3 = AES128、4 = AES192、5 = AES256、6 = THREEDES)
- CredSnmpV3:EncryptPassword
- CredSnmpV3:Username
- CredSnmpV3:Context
- CredADO:Password
- CredADO:Username
- CredSSH:Username
- CredSSH:Password
- CredSSH:EnablePassword
- CredSSH:Port
- CredSSH:Timeout
- CredVMware:Username
- CredVMware:Password
脚本超时
您可以配置脚本的超时值 (以秒为单位)。若脚本在超时值到期之前还是没有执行完成,操作就会直接中止。
最小值:1
最大值:60
默认值:60
脚本范例
#
# This example looks for a process named 'outlook' and reports if its
# responding
#
# Use the built-in cmdlet named 'Get-Process', also aliased as 'ps'
$processes = ps
$processName = "outlook"
$proc = $processes | where { $_.ProcessName -match $processName }
# Active monitors must call Context.SetResult() to report results
if ($proc -eq $Null)
{
$NotRunningMessage = "Process '" + $processName + "' is not running."
$Context.SetResult(1, $NotRunningMessage )
}
else
{
if ($proc.Responding)
{
$RespondingMessage = "Process '" + $processName + "' is responding."
$Context.SetResult(0, $RespondingMessage )
}
else
{
$NotRespondingMessage = "Process '" + $processName + "' is not responding."
$Context.SetResult(1, $NotRunningMessage )
}
}