【发布时间】:2018-03-21 13:26:05
【问题描述】:
我正在尝试编写一个 PowerShell 脚本来提取 Active Directory 中每个用户主目录的文件数。我想出了以下脚本,但实际上并没有获取文件数,每个用户的文件数为 0。我在表达中错过了什么?我试过 % 代替 ?我尝试添加! $_ 前面的结果不正确。
Get-ADUser -Filter * -properties * -SearchBase "OU=Information Technology,`
OU=User Accounts,DC=net,DC=local" | ft name, homedirectory, homedrive,`
@{Name='Files'; Expression={(Get-ChildItem -Recurse -Force -ErrorAction Ignore`
| ?{$_.HomeDirectory}).count}} -A
【问题讨论】:
-
Active Directory 只包含主目录的路径,文件在文件系统上。您需要在 $_.HomeDirectory 文件夹中使用 Get-Child 项,并计算这些项。
-
OP 正在尝试这样做。尝试使用 Select-Object 而不是 Format-Table。拇指规则是向左过滤并向右格式化。一旦您从 Select-Object 获得正确的信息,您就可以随心所欲地格式化表格。
-
很好的捕获@randoms,除了那些在他们的个人资料中没有主目录的人之外,它为我提供了我运行脚本时碰巧所在的文件和文件夹。否则它会起作用。
标签: powershell active-directory expression home-directory