我需要 运行 一个脚本,它将 return AD 中首字母大写的任何 sAMAccountname 给我

I need to run a script that will return to me any sAMAccountname in AD that is in uppercase initial letter

我发现下面的命令 return AD 中的所有 sAMAccountname 都具有全部大写字母。我正在寻找一个命令,它将 return 给我 AD 中首字母大写的任何 sAMAccountname。

Get-ADUser -Filter * | ? {$_.sAMAccountname -ceq $_.sAMAccountname.ToUpper()}

目的是识别所有在 SamAccountName 属性 中具有大写首字母的 AD 用户帐户;例如,Abcd(初始 A 字母大写)以便稍后我们可以将它们转换为全小写。

您需要将测试限制在帐户名称的第一个字符:

Get-ADUser -Filter * |
  Where-Object { $_.sAMAccountname[0] -ceq [char]::ToUpper($_.sAMAccountname[0]) }

Ansgar Wiechers 建议的 可读性更高的替代方案 是使用带有通配符模式的 -clike 运算符:

Get-ADUser -Filter * | Where-Object { $_.SamAccountName -clike '[A-Z]*' }

警告:这 将匹配限制为 ASCII 范围字母 AZ,并且不会检测外来大写字符,例如 Ö.