获取路径然后将其转换为字符串?

时间:2014-10-29 13:46:44

标签: powershell

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

我正在运行该行以获取已登录电脑的所有用户。

然后我检查每个文件夹中的文件。我认为它会像这样简单:

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

但似乎我必须将$ getusers转换为字符串?有人可以帮助解释需要做什么吗?我认为它很简单,我没有得到。

2 个答案:

答案 0 :(得分:1)

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

这最终起作用了。我弄清楚了。

答案 1 :(得分: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   

问题是$getusers是一个System.Object[],它具有FullName 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 

这将使脚本的其余部分按预期运行。