$getusers = Get-ChildItem \\pc-name\c$\users\ | Select-Object Fullname
我正在运行该行以获取已登录电脑的所有用户。
然后我检查每个文件夹中的文件。我认为它会像这样简单:
foreach ($user in $getusers) {
Get-ChildItem "$user\documents"
}
但似乎我必须将$ getusers转换为字符串?有人可以帮助解释需要做什么吗?我认为它很简单,我没有得到。
答案 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
这将使脚本的其余部分按预期运行。