【问题标题】:how to confirm the user name else allowed to enter a custom user name如何确认用户名 否则允许输入自定义用户名
【发布时间】: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


【解决方案1】:

好的,这样我就可以让它工作了

#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()

Do{
Write-Host
$confirm = Read-Host "Is [$logonname] correct  or would you like to change it (Y/C)"
  if ($confirm -ne "y" -or $confirm -ne "Y"){
       #proceed

     } else {
     }
     if($confirm -eq "y" -or $confirm -eq "Y"){
     }else { $logonname = Read-Host "Enter custom logon name"
     }

   Write-Host
   $confirm = Read-Host "Please confirm [$logonname] is correct (Y or N)"
   if ($confirm -ne "y" -or $confirm -ne "Y"){
     #proceed
   }
     } 
        until ($confirm -eq "y" -or $confirm -eq "Y")     

        Write-Host $logonname

【讨论】:

    猜你喜欢
    • 2017-05-14
    • 2014-08-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-21
    相关资源
    最近更新 更多