当我因某种原因运行以下脚本时,$ Service为空?
我知道服务存在,但PowerGUI脚本编辑器的变量部分中没有任何内容。这会弄乱脚本中的IF-ELSE语句,如果服务启动,它会向最终用户显示“STARTED”。
这是服务名称中的空间吗?如果我只是自己执行了服务变量,那么它会显示服务的全部内容,因此它不能找不到服务..
这是NULL变量为null的图片:
SCRIPT:
clear
#$ErrorActionPreference = "silentlycontinue"
Import-Module PSRemoteRegistry
$Logfile = "C:\temp\netbackup_version.log"
Function LogWrite
{
param([string]$logstring)
Add-Content $Logfile -Value $logstring
}
$computer = Get-Content -Path c:\temp\netbackup_servers1.txt
foreach ($computer1 in $computer){
$Reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $computer1)
$RegKey= $Reg.OpenSubKey("SOFTWARE\\Veritas\\NetBackup\\CurrentVersion")
$NetbackupVersion1 = $RegKey.GetValue("PackageVersion")
if (test-connection $computer1 -quiet)
{
$Service = Get-WmiObject Win32_Service -Filter "Name = 'NetBackup Client Service'" -ComputerName $computer1
if($Service.state -eq 'Running')
{
LogWrite "$computer1 STARTED $NetbackupVersion1"
}
else
{
LogWrite "$computer1 STOPPED $NetbackupVersion1"
}
}
else
{
LogWrite "$computer1 is down" -foregroundcolor RED
}
}
答案 0 :(得分:0)
不要指望旧版本的服务具有与新更新版本相同的服务名称!具有旧Netbackup客户端的旧服务器具有与新服务器不同的名称 - 这就是脚本未显示名称的原因!感谢格拉默对此进行双重检查!