2014-10-29 5 views
0
$getusers = Get-ChildItem \\pc-name\c$\users\ | Select-Object Fullname 

나는 PC에 로그인 한 모든 사용자를 얻으려면이 줄을 실행 중입니다.경로를 얻은 다음 문자열로 변환 하시겠습니까?

그런 다음 모든 문서 폴더에서 파일을 검사하고 있습니다. 나는 그것이 다음과 같이 간단 할 것이라고 가정했다.

foreach ($user in $getusers) { 
Get-ChildItem "$user\documents" 
} 

그러나 나는 $ getusers를 문자열로 변환해야한다고 생각한다. 누군가 도움을주고 무엇을해야하는지 설명 할 수 있습니까? 나는 그것이 단순하지 않다라고 생각한다.

+1

이 작업을 시도하면 출력물을 게시하십시오. – GodEater

답변

1
$dirs = Get-ChildItem \\pc-name\c$\users\ | Select-Object FullName | Where-Object {!($_.psiscontainer)} | foreach {$_.FullName} 

결국이 작업이 종료되었습니다. 나는 그것을 알아낼 수 있었다.

+2

'| Where-Object {! ($ _. psiscontainer)} | foreach {$ _. FullName}'이 'Select-Object'를 오도하는 데 어려움을 겪습니다. '$ _. psiscontainer'는'FullName '을 제외하고 이전의'select'로 모든 속성을 제거했기 때문에 null이됩니다. 또한'FullName'을 이미 선택 했으므로'ForEach'로 다시 출력 할 필요가 없습니다. – Matt

1

다른 사람이 도움을 요청하면이 문제를 발견하여 실제 문제가 있다고 생각하는 내용을 추가하고 싶습니다.

$getusers = Get-ChildItem \\pc-name\c$\users\ | Select-Object Fullname 

fullname의의 객체를 반환 : 다음 줄을 고려하십시오.

FullName                  
--------                             
\\localhost\c$\users\jpilot              
\\localhost\c$\users\matt            
\\localhost\c$\users\misapps             
\\localhost\c$\users\mm 

문제는 $getusers가하면 FullName NoteProperty이있는 System.Object[] 아닌 System.String[] 루프가 기다리고있을 것 같은 것입니다. 무엇 다음

$getusers = Get-ChildItem \\pc-name\c$\users\ | Select-Object -ExpandProperty Fullname 

에서 수행해야하는 것은 이제 $getusers 예상대로 스크립트 함수의 나머지 부분을 만들 것

\\localhost\c$\users\jpilot              
\\localhost\c$\users\matt            
\\localhost\c$\users\misapps             
\\localhost\c$\users\mm 

문자열

의 배열을 포함합니다.

관련 문제