2017-04-14 81 views
1

我试图代码的东西,会质疑我的TS为特定的应用,并选择使用过程和他们的计算机名,用户的SAM帐户。我已经有了这样的东西,但我很难整合SAM帐户和计算机名称的查询。PowerShell的:查询TS与获取进程,SAMAccount和计算机名?

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。如果它解决了您的问题以解决问题,请记住接受答案。 :-) –

相关问题