Powershell 复制广告用户';新用户的OU路径
因此,我一直在通过active directory以这种方式创建一个新用户。我想在创建新用户时从CName变量复制OU路径?有没有办法为新用户复制OU路径Powershell 复制广告用户';新用户的OU路径,powershell,powershell-3.0,Powershell,Powershell 3.0,因此,我一直在通过active directory以这种方式创建一个新用户。我想在创建新用户时从CName变量复制OU路径?有没有办法为新用户复制OU路径 $Props = (Get-ADUser -identity $CName -Properties MemberOf).MemberOf New-ADUser -SamAccountName $SName -UserPrincipalName ($Sname+" "+"@"+$Domain) -GivenName $Fname -N
$Props = (Get-ADUser -identity $CName -Properties MemberOf).MemberOf
New-ADUser -SamAccountName $SName -UserPrincipalName ($Sname+" "+"@"+$Domain) -GivenName $Fname -Name ($FName+" "+$LName) -Surname $LName -Email "$Email" -Path "OU=Administrators,OU=Domain,DC=domain,DC=local" -ChangePasswordAtLogon $true
我们不知道
$CName
实际上是什么,但我们可以看到Get ADUser
在理论上能够从该变量返回userobject。让我们使用它从DiscrimitedName
获取OU
$singleUser = Get-ADUser -identity $CName -Properties MemberOf
$Props = ($singleUser).MemberOf
$OU = ($singleUser).DistinguishedName.split(",",2)[1]
DiscrimitedName
前面已经有了带有CN
的OU。我们在第一个逗号处拆分字符串并返回两个部分。将第二个元素返回到以后可以使用的$OU
如果$Cname
已经是区分名称
,则可以简化此过程
$OU = $Cname.split(",",2)[1]
没有显示路径的属性,但您的DiscrimitedName将包含该路径。我要做的是
#split on the first comma, save everything after the username to $path
$path = (Get-AdUser foo).distinguishedName.Split(',',2)[1]
然后可以将其作为新用户对象的路径传入 您的CNs可能包含嵌入的逗号(它们必须用“\”转义,但可以在其中),因此您可能无法在逗号上可靠地拆分DN。我一直认为这是可靠的:
$OU = $CName -replace '.+?,((?:DC|OU)=.+)','$1'
$CName是一个可区分的名称吗?是的,它是一个用户输入变量。路径的简单一行就很好了。谢谢你的说明。当CN包含“,”时会发生什么?除非CN包含逗号时会失败。thors hammer的答案是适用的