2016-09-01 2 views
1

나는 powershell 스크립트를 개발하여 AD의 특정 OU를 쿼리 한 다음 이름, 상태, 시작 모드, 시작 이름, 설명 등 각 서비스에서 서비스를 가져 오려고했습니다. 나는 정말로 가깝지만 기대했던 결과를 얻지 못했습니다. 누군가 도울 수 있습니까?powershell을 통해 원격 서버에서 서비스 받기

문제는 특정 서버에 대해 명령을 실행하면 원하는 결과를 얻는 것입니다. OU의 모든 서버에 대해 실행하면 고유 한 시작 이름 (로컬 계정 만)을 찾지 못합니다. OU (로컬 계정 만 반환 서비스) 쿼리에 대한

$ServerName = “server01” 

Get-WmiObject win32_service -ComputerName $servername | Select @{N="ServerName";E={$ServerName}}, Name, Status, StartMode, StartName, description | Export-Csv "server_Services.csv" -NoTypeInformation 

스크립트 : 내가 먼저 서버 이름 단일 컴퓨터에 대한

스크립트 (점점 결과 우리가 원하는)와 하나의 CSV를 원하는

$ServerOU = 'OU=Servers,DC=some,DC=domain' 

$ServerList = Get-QADComputer -SearchRoot $ServerOU -SearchScope Subtree 

$ServerList | ForEach { 
     $ServerNameTemp = $_.Name 
     Get-WMIObject Win32_Service | 
     Select @{N="ServerName";E={$ServerNameTemp}}, StartName, Name, StartMode, Status, description 
     } | Export-Csv -NoTypeInformation $ExportFile 

답변

0

이것은 내가 생각하는 트릭을 수행해야하지만 다음은 OU의 각 서버에 대해 파일을 만들고 싶습니다. 그러면 동일한 파일을 덮어 쓰게됩니다. 나는이 하나 가져 - ADComputer에 퀘스트 파워 쉘에 대한 구체적인 필요를 얻기-QADComputer을 변경하지 :이 파일에 다음 변수 제에 TI 모두를 보낼 것

$ServerOU = 'OU=Servers,DC=some,DC=domain' 

$ServerList = Get-ADComputer -SearchBase $ServerOU -Filter * 

ForEach ($Server in $Serverlist) 
{ 
      Invoke-Command -ComputerName $Server.Name -ScriptBlock { 
       Get-WMIObject Win32_Service | 
       Select @{N="ServerName";E={[System.Net.Dns]::GetHostName()}}, StartName, Name, StartMode, Status, description} 
} | Export-Csv -NoTypeInformation $ExportFile 

이 방법. 당신이 이전에 어떤 승리 서버를 사용하는 경우

$ServerOU = 'OU=Servers,DC=some,DC=domain' 
$Services = @() 
$ServerList = Get-ADComputer -SearchBase $ServerOU -Filter * 

ForEach ($Server in $Serverlist) 
{ 
      $Services += Invoke-Command -ComputerName $Server.Name -ScriptBlock { 
       Get-WMIObject Win32_Service | 
       Select-Object @{N="ServerName";E={[System.Net.Dns]::GetHostName()}}, StartName, Name, StartMode, Status, description } 
} 

$Services | Export-Csv -NoTypeInformation $Exportfile 
+0

훨씬 나아졌지만 일부 서버에 연결하는 데 문제가 있습니다. 오류 메시지 받기 : 다음 오류 메시지와 함께 원격 서버에 연결하지 못했습니다. 클라이언트에서 요청에 지정된 대상에 연결할 수 없습니다. 대상에있는 서비스가 실행 중이고 요청을 수락하는지 확인하십시오. WS-Management servi ce가 대상 (일반적으로 IIS 또는 WinRM)에서 실행되고 있는지 로그 및 설명서를 참조하십시오. 대상이 WinRM 서비스 인 경우 대상에서 다음 명령을 실행하여 WinRM 서비스를 분석 및 구성합니다. "winrm qu ickconfig". – user5235857

+0

나는 QADComputer도 사용해야했는데, ADComputer가 작동하지 않았다. – user5235857

+0

Ahh, 그들이 서버 2003이라면 원격 powershell conntection을 아직 지원하지 않을 수도있다. 또는 원격 powershell 같은 무언가가 비활성화됩니다. 결국 그것은 중요하지 않습니다, Quest PowerShell은 Regular PS와 똑같은 것을 되돌립니다. 나는 그것이 단지 내가 quest powershell을 설치하고 싶지 않았기 때문에 그것을 바꿨다 : P – Kage

0

PS 원격 자동으로 승리 2012에서 사용할 수 있습니다, 당신은 PowerShell 원격을 사용하려면, WinRM이 서비스를 활성화해야합니다. 이러한 서버에 대해 "Invoke-Command"또는 "* -Session"cmdlet을 사용하려는 경우 매우 중요합니다.

관련 문제