自动将数字添加到Powershell中的变量

时间:2018-05-11 16:29:39

标签: powershell active-directory

我在网上浏览了一些网站并在这里浏览了一些答案,我的问题没有运气。

我有一个PowerShell脚本,可以使用在主机中输入的信息自动创建帐户。我的问题是,如何将我的脚本设置为在已提交数据的末尾自动添加数字?代码块如下:

$Username = Read-host "Enter Desired Username"

#Test

IF(!(Get-ADUser -Identity $Username))
{ Write-Host "$username exists. Adding number.
  HERE IS THE CODE I AM LOOKING FOR TO TAKE THE $Username and automatically add the number at the end.
}

如果已经回答了这个问题,请将链接发给我,我会将其标记为已回答,但如果没有,那么任何建议都会很棒。

谢谢!

3 个答案:

答案 0 :(得分:2)

由于此脚本没有自动运行且有用户输入,我建议只是重新提示用户是否有名字:

Do
{
    $Username = Read-Host -Prompt 'Enter desired username'
} While (Get-ADUser -Identity $Username)

可替换地:

$Username = Read-Host -Prompt 'Enter desired username'
While (Get-ADUser -Identity $Username)
{
    "Username '$Username' taken!"
    $Username = Read-Host -Prompt 'Enter desired username'
}

答案 1 :(得分:2)

要补充其他答案,您还可以执行以下操作来确定下一个可用的用户名:

$Username = Read-Host -Prompt 'Enter desired username'

$TestUsername = $Username

$i = 1

While (Get-ADUser -Identity $TestUsername)
{
    Write-Warning "$TestUsername is taken"
    $TestUsername = $Username + $i++
}

"The next available username is $TestUsername"

在循环内,++运算符用于递增计数器变量$i,并在每次循环重复时将其附加到原始用户名。请注意,它首先附加然后增加第二个,所以我们从1开始。

答案 2 :(得分:1)

我写过这样的剧本。我的逻辑是:

  1. 在创建帐户之前,首先查询此帐户
  2. 如果帐户存在,则后缀为2位数字(从01开始,格式为"{0:d2}" -f
  3. 查询后缀帐号,重复步骤1和2,直到帐户不存在(使用递归功能)。
  4. 这是代码:

    $seq = 1
    Function Check-Existing {
        param(
            [Parameter(Mandatory=$true)]
            [string]$Account
        )
    
        while (Get-ADUser $Account){
            $suffix = "{0:d2}" -f $seq
            $Account = $Account + $suffix
            $seq++
            return $Account
        }
    
        Check-Existing -Account $Account
    }
    

    (我将在周一仔细检查代码)