2014-12-09 3 views
1

이 스크립트의 각 줄 왼쪽에 서버 이름을 어떻게 추가합니까? 고맙습니다!powershell 스크립트의 결과 서식 지정

Status Name    DisplayName       
------ ----    -----------       
Stopped sacsvr    Special Administration Console Helper 
Stopped sacsvr    Special Administration Console Helper 
Stopped sacsvr    Special Administration Console Helper 

답변

1

당신은 임의의 수를 다시 주문 또는 Select-Object로 출력에 추가 :

$servers = Get-Content -path .\Machines.txt 
[pscustomobject]$result = @() 
$subresult = 
ForEach ($server in $servers) 
{ 
Set-Service -computername $servers -Name sacsvr -StartupType Disabled -PassThru 
} 
$result = $subresult 
$result | Out-File local_group_members.csv 

은 예제 결과입니다. hash tables을 사용하여 원하는 ServerName과 같은 계산 된 특성을 포함 할 수 있습니다.

그래서 각 서버에 대해, 당신은 서비스를 설정하고 해당 서버 이름으로 출력 태그를 추가 할 수 있습니다 :

Select-Object -Property (properties) 

-Property 매개 변수는 선택할 수 있습니다 : 위의

ForEach ($server in $servers) 
{ 
    Set-Service -computername $server -Name sacsvr -StartupType Disabled -PassThru | 
    Select @{Name = 'ServerName'; Expression = {$server}}, Name, DisplayName, Status 
} 

는 속기입니다 파이프로 연결된 객체의 유형에 대한 임의의 속성 그룹화. 다른 매개 변수 인 -InputObject을 사용하면 객체를 값으로 파이프 할 수 있습니다.

2

또는 현재 출력중인 개체에 속성을 추가하기 만하면됩니다. 파이프하여 설정 서비스는 추가 회원을 위해이 같은 :

Set-Service -computername $servers -Name sacsvr -StartupType Disabled -PassThru | Add-Member -MemberType NoteProperty -Name 'Server' -Value $Server -PassThru 

은 이제 $subresult에 전달 각 개체는에 실행 된 서버의 이름입니다 새 속성 Server 있습니다. 원하는 순서로 출력 할 때 Select를 통해 파이프로 전달할 수 있습니다.

+0

답변 해 주셔서 감사합니다. 매우 도움이됩니다. 또 다른 질문은, 서버가 작동하는지 (예 : Test-Connection과 같은) 점검하고 결과를이 스크립트의 Export-CVS에도 넣을 수있는 방법은 무엇입니까? –

+0

좀 더 복잡하고 자신에게 맞는 질문에 더 적합합니다. 서버가 가동 중인지 확인한 다음 Set-Service를 실행하고 서버가 작동 중임을 알리는 구성원을 추가하거나 작동 중지 된 set-service가 실패 할 경우 서버가 다운되었음을 출력해야합니다 . – TheMadTechnician