我想要做的是看一些进程,并获得这些进程的用户列表。以下代码对我来说工作得很好。格式表输出空白?
get-wmiobject win32_process |
where{$_.name -like "*notepad*"}|sort {$_.CommandLine}|
select @{n="User";e={$_.getowner().user}},@{n="ProcessID";e={$_.ProcessID}},{$_.CommandLine} |ft -AutoSize |Out-String -Width 300 >> C:\ListUsers.txt
不知怎的,我想分裂$ _。在路中间的CommandLine字符串,并输出一些分裂arrary(见下面的代码更好的主意,虽然代码是错误的)。但更新的代码只是输出到文本文件中。我认为我必须使用select-object或fommat-object错误,但我不知道如何修复它。
get-wmiobject win32_process |
where{$_.name -like "*notepad*"}|sort {$_.CommandLine}|
%{
$split = $_.CommandLine.split("\")
select @{n="User";e={$_.getowner().user}},@{n="ProcessID";e={$_.ProcessID}},@{n="Ihub";e=$split[3]},@{n="version";e=$split[3]},@{n="version";e=$split[3]} |
ft -AutoSize |Out-String -Width 300 >> C:\ListUsers.txt
}
有谁能提醒?谢谢!!
如下说,我现在已经更新了答案。但你想做什么?您搜索“记事本”(通常可以为您提供“notepad.exe”或“notepad ++。exe”)进程。那么你拿出一个硬编码的路径部分?那里的逻辑在哪里? :P如果您知道进程名称(因为您搜索了它),为什么试图将其分开?此外,在某些情况下,您可能只需将\ somefolder \作为答案。 – 2013-02-26 16:00:43