0
當我由於某種原因運行下面的腳本時,$ Service爲空?爲什麼我的服務變量爲空?
我知道該服務存在,但在PowerGUI腳本編輯器的變量部分中沒有任何內容出現。這與腳本中的IF-ELSE語句混淆,如果服務啓動,它會向最終用戶顯示「STARTED」。
它是服務名稱中的空間嗎?如果我只是執行自身的服務變量,然後它會顯示該服務的全部內容,所以它不喜歡它無法找到該服務..
下面是空的變量的圖片被空:
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
}
}
您確定可以手動運行「Get-WmiObject Win32_Service -Filter」Name ='NetBackup Client Service'「-ComputerName $ computer1'(帶有其中一個計算機名稱)嗎?找不到匹配項時,該變量爲$ null。我建議只是爲了驗證遠程處理是否正常。另外,您確定「NetBackup客戶端服務」是「名稱」而不是「DisplayName」嗎? – 2013-02-25 15:53:59
賓果! Darn Netbackup .......你給了我一個想法,檢查顯示名稱與舊版本的客戶端,它被稱爲別的!我以爲他們全都是同一個名字......我想現在必須重新調整我的服務命名......謝謝你的提示! – lara400 2013-02-25 16:01:09