Powershell 我需要运行一个脚本,将返回给我的任何sAMAccountname在广告中是大写字母的首字母
我发现下面的命令返回了广告中所有大写字母的sAMAccountname。我正在寻找一个命令,将返回给我的任何sAMAccountname在广告中是大写字母的首字母Powershell 我需要运行一个脚本,将返回给我的任何sAMAccountname在广告中是大写字母的首字母,powershell,uppercase,Powershell,Uppercase,我发现下面的命令返回了广告中所有大写字母的sAMAccountname。我正在寻找一个命令,将返回给我的任何sAMAccountname在广告中是大写字母的首字母 Get-ADUser -Filter * | ? {$_.sAMAccountname -ceq $_.sAMAccountname.ToUpper()} 其目的是识别在其SamAccountName属性中具有大写首字母的所有广告用户帐户;e、 例如,Abcd(首字母A字母为大写),以便以后我们可以将它们全部转换为小写。您需要将测试
Get-ADUser -Filter * | ? {$_.sAMAccountname -ceq $_.sAMAccountname.ToUpper()}
其目的是识别在其
SamAccountName
属性中具有大写首字母的所有广告用户帐户;e、 例如,Abcd
(首字母A
字母为大写),以便以后我们可以将它们全部转换为小写。您需要将测试限制为帐户名的第一个字符。:
Get-ADUser -Filter * |
Where-Object { $_.sAMAccountname[0] -ceq [char]::ToUpper($_.sAMAccountname[0]) }
建议使用带有通配符模式的
-clike
运算符,这是一种更具可读性的替代方法:
Get-ADUser -Filter * | Where-Object { $_.SamAccountName -clike '[A-Z]*' }
警告:这限制了从
A
到Z
的ASCII范围字母的匹配,并且不会检测到外来大写字符,如Ö
谢谢,@AnsgarWiechers-我已经在答案中添加了您的建议,还有一点需要注意的是,这种方法将您限制为仅匹配ASCII字母。@mklement0:第一个命令仅针对服务帐户显示。您发送的以下命令实际上满足了我的要求。谢谢mklement0和Ansgar Wiechers。非常感谢你的帮助。Get ADUser-Filter*| Where Object{$\u.SamAccountName-clike'[A-Z]*'}@sunilpodar:很高兴听到Ansgar的命令对您有用,但是(对于ASCII范围字母)第一个命令应该也可以用。你能举一个不起作用的例子吗?这里有一个简单的测试来说明它可以使用字符串的.SamAccountName
属性-据我所知,这对于由Get ADUser
输出的用户对象是正确的:[pscustomobject]@{SamAccountName='Alex'}[pscustomobject]@{SamAccountName='Alex'}?{$\.sAMAccountname[0]-ceq[char]:ToUpper($\.sAMAccountname[0])}
为什么需要将其转换为小写?