내가하려는 것은 일부 프로세스를 살펴보고 이러한 프로세스의 사용자 목록을 얻는 것입니다. 그리고 다음 코드가 저에게 잘 돌아갔습니다. 형식 테이블 출력 공백입니까?
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
은 어떻게 든 내가 분할 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"(보통 "notepad.exe"또는 "notepad ++. exe") 프로세스를 검색 할 수 있습니다. 그런 다음 경로의 하드 코딩 된 부분을 제거합니까? 그 논리는 어디에 있습니까? : P 프로세스 이름을 (당신이 그것을 검색 한 이후에) 알고 있다면, 왜 그것을 분리하려고합니까? 또한 어떤 경우에는'\ somefolder \ '를 답으로 얻을 수 있습니다. –