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

我正在運行該行以獲取所有登錄到電腦的用戶。獲取路徑,然後將其轉換爲字符串?

然後我檢查每個文檔文件夾的文件。我認爲它會這樣簡單:

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

但似乎我必須將$ getusers轉換爲字符串?有人可以幫助並解釋需要做什麼嗎?我認爲它簡單,我只是沒有得到。

+1

發佈您在嘗試此操作時得到的輸出... – GodEater 2014-10-29 13:54:50

回答

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

這結束了工作。我能弄明白。

+2

Putting | Where-Object {!($ _。psiscontainer)} |在'Select-Object'之後的foreach {$ _ FullName}'是誤導和冗餘的。 '$ _。psiscontainer'將爲空,因爲您除了'FullName'之外移除了前面的'select'的所有屬性。另外,由於您已經選擇了'FullName',因此您不需要使用'ForEach'再次輸出。 – Matt 2014-10-29 14:33:59

1

如果有人在那裏找到這個搜索幫助,我想添加我認爲的實際問題。考慮以下行:

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

這將返回fullname s的對象。

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

問題是$getusersSystem.Object[]擁有全名NoteProperty而不是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 

這將使腳本函數的其餘部分如預期的數組。

相關問題