想要构建一个帐户创建应用程序/脚本[范围未定的atm],并且如果samaccountname已经存在,则不确定如何处理它。 我想要发生的事情是,如果约翰史密斯已经拥有相同的帐户名称jsmith并且正在创建jane smith,则检测到jsmith,然后脚本检查jasmith,如果它存在,它将转到jansmith并且等等。
我甚至没有尝试过这种字符串操作,因为我真的不知道从哪里开始。
谢谢, JCGee
答案 0 :(得分:1)
$FirstName = 'Jane';
$LastName = 'Smith';
for ($i = 1; $i -le $FirstName.Length; $i++) {
$Account = $null;
$Identity = $FirstName.Substring(0,$i) + $LastName;
$Account = Get-ADUser -Identity $Identity;
if ($Account -eq $null) {
New-ADUser -SamAccountName $Identity -Name $Identity;
break;
};
}
答案 1 :(得分:1)
我有同样的问题,但我不想要任何PowerShell依赖
这是我用来创建AD用户的更传统的C#。搜索 UserPrincipal 以了解详情。
PrincipalContext ctx = new PrincipalContext(ContextType.Domain, domainName + ":389");
string FirstName = "Jane";
string LastName = "Smith";
for (int i = 1; i <= FirstName.Length; i++)
{
string username = LastName + FirstName.Remove(i);
UserPrincipal user = UserPrincipal.FindByIdentity(ctx, IdentityType.SamAccountName, username);
if ((object)user == null) //user doesn't exists
{
#region Add User
try
{
UserPrincipal userex = new UserPrincipal(ctx, username, password, true);
userex.GivenName = firstname;
userex.Surname = lastname;
userex.DisplayName = firstname + " " + lastname;
userex.ExpirePasswordNow();
userex.Description = _UserDescr;
userex.Save();
break;
}
catch
{
//
}
#endregion
}
}