我在网上浏览了一些网站并在这里浏览了一些答案,我的问题没有运气。
我有一个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.
}
如果已经回答了这个问题,请将链接发给我,我会将其标记为已回答,但如果没有,那么任何建议都会很棒。
谢谢!
答案 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)
我写过这样的剧本。我的逻辑是:
"{0:d2}" -f
这是代码:
$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
}
(我将在周一仔细检查代码)