PowerShell 查找用户主目录中的文件数

PowerShell find number of files in users homedirectory

我正在尝试编写一个 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

作为 ,您需要提供 $_.HomeDirectory 作为 Get-ChildItem 的参数。

要避免 运行 Get-ChildItemHomeDirectory 属性为空或不存在时,您可以在表达式中放置 if 语句(拆分为多个此处的可读性声明):

$ITUsers = Get-ADUser -Filter * -properties homedirectory,homedrive -SearchBase "OU=Information Technology,OU=User Accounts,DC=net,DC=local" 
$ITUsers |Format-Table name, homedirectory, homedrive,@{Name='Files'; Expression={
  if(Test-Path $_.homedirectory){
    @(Get-ChildItem $_.homedirectory -Recurse -Force -ErrorAction Ignore).Count
  } 
  else {
    0
  }
} -AutoSize