2013-07-21 21 views
5

Tôi có 3 máy chủ, chạy 3 dịch vụ:Làm thế nào để kiểm tra xem một dịch vụ cụ thể đang chạy trong một máy tính từ xa sử dụng PowerShell

  • MÁY CHỦ-A chạy serv1.exe dịch vụ
  • SERVER-B chạy serv2.exe dịch vụ
  • SERVER-C chạy serv3.exe dịch vụ

Sử dụng PowerShell làm cách nào tôi có thể truy vấn từng dịch vụ để kiểm tra xem chúng có đang chạy hay không ion vào một tập tin văn bản?

Trả lời

9

Nếu tất cả đều có cùng tên hoặc tên hiển thị bạn có thể thực hiện trong một lệnh. Nếu không, bạn cần phải chạy 3 lệnh.

Nếu tất cả đều có tên hoặc hiển thị cùng tên:

Get-Service -ComputerName server-a, server-b, server-c -Name MyService | 
    Select Name, MachineName, Status 

Nếu họ có tên gọi khác nhau hoặc tên hiển thị:

tôi sẽ làm điều này -

@{ 
    'server-a' = 'service-a' 
    'server-b' = 'service-b' 
    'server-c' = 'service-c' 
}.GetEnumerator() | ForEach-Object { 
    Get-Service -ComputerName $_.Name -Name $_.Value 
} | Select Name, MachineName, Status 

Để đầu ra một tệp văn bản sử dụng ... | Set-Content ~\Documents\Service_Status.txt trong đó ... là một trong những điều trên.

Lưu ý - tài khoản của bạn sẽ cần phải có đặc quyền để truy vấn các máy từ xa.

+1

Làm cách nào để chỉ định chứng chỉ thay thế nếu tài khoản của bạn không có quyền? – Dan

1

Có một số cách để đạt được điều này. Tôi đang sử dụng một giá trị băm vì bạn đã đề cập rằng máy chủ để ánh xạ dịch vụ luôn là một.

$svrHash = @{"SERVER-01"="winmgmt";"SERVER-02"="Wecsvc"} 
$svrHash.Keys 
    | ForEach-Object {Get-Process -ComputerName $_ -Name $svrHash[$_] -Ea SilentlyContinue} 
    | Select ProcessName 
    | Out-File C:\Scripts\test.txt 

Bạn cần sử dụng tên dịch vụ chứ không phải tên .exe.

+0

Cảm ơn nó đã hoạt động. Nhưng tôi đã sai khi giải thích yêu cầu của mình. Họ là những công việc và dịch vụ KHÔNG. Nếu tôi mở Task Manager, tôi sẽ có thể thấy 3 nhiệm vụ khác nhau trong 3 máy chủ khác nhau. – Ireshad

+0

Vì vậy, chúng là các quá trình chứ không phải các dịch vụ? Thay thế Get-Service bằng Get-Process và nó sẽ hoạt động. – ravikanth

+0

Có nó đã hoạt động. Nhật ký chứa quá nhiều chi tiết như Handles NPM (K), PM (K), WS (K), VM (M), CPU (s), Id, Tên quy trình. Có thể chỉ có 2 colums là đầu ra (Process Name and Running (Có hoặc Không)) Cảm ơn – Ireshad

Các vấn đề liên quan