【发布时间】:2020-11-12 04:28:46
【问题描述】:
所以我有一个脚本,您可以在其中输入名字中间名首字母和姓氏,并从中创建登录名,但有时可能需要输入自定义用户名我这样做?登录名确实显示了我想要的方式,但是当我按 C 或 c 时 if 语句不允许我更改它
任何帮助提前谢谢
#getting user information
Write-Host "Gathering information for new account creation."
Write-Host
$firstname = Read-Host "Enter in the First Name"
Write-Host
$middlename = Read-Host "Enter in Middle Initial"
Write-Host
$lastname = Read-Host "Enter in the Last Name"
Write-Host
$fullname = "$firstname $lastname"
#getting samaccountname with first letter of first name, first letter of middle name, first 4 letters
of last name
$i = 1
$p = 4
$logonname = $firstname.substring(0,$i).tolower() + $middlename.Substring(0,$i).tolower() +
$lastname.Substring(0,$p).tolower()
$confirm = Read-Host "Is [$logonname] correct or would you like to change it (Y/C)"
if ($confirm -eq "y" -or "Y"){
#proceed
} else { write-host
$logonname = Read-Host "Enter Custom User Name"
}
【问题讨论】:
-
使用 ANR [Ambiguous Name Resolution,我认为] 来获取所有相似的名称,找到具有最高数字的名称,增加该数字,最后使用它来制作您的新名称。
-
同上@Lee_Dailey。除此之外,您需要检查用户是否实际输入了某些内容,并且它不仅仅是空格。例如,如果有人在
Read-Hostprompts 之一中没有输入任何内容,您的脚本将出错。如果用户输入的姓氏少于 4 个字符(碰巧我的是..),您的脚本将出错。如果用户输入空格,您可能会得到错误的登录名。简而言之,您需要重新考虑这一点,并对每个用户输入添加检查。 -
是的,我明白,这就是为什么我要求他们确认名称,如果没有,则让他们输入自定义登录名
标签: powershell exchange-server