2017-04-14 5 views
1

특정 응용 프로그램에 대해 내 TS를 쿼리하고 해당 프로세스와 컴퓨터 이름을 사용하는 사용자의 SAM 계정을 선택하는 코드를 작성하려고합니다. 나는 이미 이와 비슷한 것을 가지고 있지만 SAM 계정과 컴퓨터 이름의 쿼리를 통합하는 데 어려움을 겪고 있습니다.Powershell : Get-Process, SAMAccount 및 ComputerName으로 TS 쿼리 하시겠습니까?

Get-WmiObject Win32_Process -ComputerName "MYSERVER" | 
Where {$_.name -eq "winword.exe"} | 
Invoke-WmiMethod -Name GetOwner 

답변

0

Invoke-WmiMethod으로 직접 파이프 할 때 프로세스의 wmiobject가 손실됩니다. 당신은 객체를 생성 할 Foreach-Object을 사용하거나이 같은 Select-Object와 사용자 정의 열을 사용할 수 있습니다

Get-WmiObject Win32_Process -ComputerName "localhost" | 
Where-Object {$_.name -eq "notepad.exe"} | 
Select-Object CSName, ProcessName, @{n="Owner";e={$_.GetOwner().User}} 

CSName ProcessName Owner 
------ ----------- ----- 
FRODE-PC notepad.exe frode 

사용자 정의 열 스크립트를 작성, 나는 그들이 더 읽을 수와 같은 재사용 할 수 있도록 이전을 정의 작성하는 것을 선호 이 :

$OwnerColumn = @{ 
    Name="Owner" 
    Expression={ $_.GetOwner().User } 
} 

.... 
Where-Object ... | 
Select-Object CSName, ProcessName, $OwnerColumn 
+0

니스, 감사합니다! 나는 당신이 OwnerColumn을 외부에 선언한다는 사실을 좋아합니다. 그래서 그것은 객체와 같습니다! 나는 그것을 명심해야한다;)! 다시 한 번 감사드립니다! – mastergat

+0

사실 그것은 해시 테이블 객체입니다. 여기에 더 많은 계산 열을 읽어보십시오 : https://technet.microsoft.com/en-us/library/ee692794.aspx. 질문을 끝내기 위해 문제가 해결 된 경우 대답을 수락하는 것을 잊지 마십시오. :-) –