2014-11-25 116 views
-2

我有3臺服務器如何在PowerShell腳本中檢查不同服務器上的多個服務?

服務器,服務器B,服務器C

我要檢查3個服務,

服務= SERVA,SERVB,SERVC

服務器a包含serva和servb

服務器b包含servb和SERVç

服務器C包含SERVC只

我已經看到了用於檢查在不同服務器上的不同服務的腳本,但我不能想辦法對其進行修改,以適合我的需要。任何人都可以幫助我如何檢查多個服務器(有些是相同的)在不同的服務器?

回答

5

下面是做到這一點的一種方法:

$services = @(@{Computername="ServerA"; ServiceName="ServiceA"}, 
    @{Computername="ServerA"; ServiceName="ServiceB"}, 
    @{Computername="ServerB"; ServiceName="ServiceB"}, 
    @{Computername="ServerB"; ServiceName="ServiceC"}, 
    @{Computername="ServerC"; ServiceName="ServiceC"} 
) 

$services | %{Get-Service -Computername $_.Computername -ServiceName $_.ServiceName} 

# Because I used a hashtable with full parameter names for $services, I can do this trick 
$services | %{Get-Service @_ } 

現在,我做了很多先進的東西在那裏。我們可以通過將您的數據放入CSV文件來製作此smpler。只需使用ComputerName和ServiceName作爲列來適應此示例。每行只需一個服務器和一個服務。

$services = Import-CSV servicelist.txt 
$services | %{Get-Service -Computername $_.Computername -ServiceName $_.ServiceName} 

默認的輸出可能不會顯示計算機的名稱,以便這將是一個好主意,它管的Select-Object MachineName, Name, Status

+0

起初,哈希表陣列看起來笨重和尷尬,但經過一點思考,我不得不承認這是一個非常優雅的回答這個問題。很好地完成kevmar。 – TheMadTechnician 2014-11-25 02:58:54

+0

感謝您發佈解答kevmar,並感謝Matt編輯我的問題。 Kevmar我今天會試試這個,我會盡快給你發貼謝謝你的回覆。 – 2014-11-25 03:15:12

相關問題