我想编写一个脚本来对我公司的用户进行操作。
用户名可以使用大写字母/小写字母,并且有时也会使用大写字母为域名分配域名,因此用户名可以是: domain \ username,DOMAIN \ USERNAME,DOMAIN \ username或domain \ USERNAME。
我要求这样的用户名:
$user = Read-Host "Please insert username"
如何使$user
不区分大小写以及公司名称?
用户名必须与$company\$user
类似,不区分大小写。
答案 0 :(得分:7)
默认情况下,PowerShell中的字符串比较通常不区分大小写。
字符串本身就是意识,这意味着他们知道A
是一个与a
不同的字形,它会记住使用了哪个,但是正常的比较运算符(-eq
,-match
,-like
,-lt
,-in
等等都不区分大小写。
您必须为区分大小写的比较(-ceq
,-cmatch
,-clike
,-clt
,-cin
等指定区分大小写的版本。 )。您还可以指定明确不区分大小写的运算符(-ieq
,-imatch
,-ilike
,-ilt
,-iin
等。)
如果要将字符强制为特定大小写,可以执行以下操作:
#Set characters to lower case
$user = $user.ToLower();
#Set characters to upper case
$user = $user.ToUpper();
但是没有字符串的属性将它们标记为本质上不区分大小写。
答案 1 :(得分:0)
不需要特殊处理,Windows凭据不区分大小写,因此无论用户输入域或用户名的情况如何,您都可以将其传递给cmdlet或命令行工具,它只会起作用。
例如,使用以下用户名创建PSCredential将具有相同的结果:
此外,默认情况下,PowerShell比较运算符不区分大小写;
"CASE" -eq "case" #returns true
"CASE" -ceq "case" #case-sensitive version returns false