Powershell Instance Parameter



我在我们的Windows AD中自动创建用户帐户。我正在尝试将权限从一个帐户复制到另一个帐户,(就像您右键单击并在"活动目录用户和计算机"中复制用户一样)。但是当使用cmdlet 'New AD-User'并将变量传递给'instance'参数时,它与我根本不传递变量没有什么不同。

这就是我用来获得$userInstance变量的方法:

$userInstance = Get-ADUser -Identity $department User

这是我用来创建一个新用户的代码:

New-ADUser `
-SamAccountName $userName `
-UserPrincipalName "$userName@123.COM" `
-Name "$firstName $lastName" `
-GivenName $firstName `
-Surname $lastName `
-Enabled $true `
-DisplayName "$firstName $lastName" `
-City $city `
-PostalCode $zip `
-Company $company `
-State $state `
-EmailAddress $email `
-Department $department `
-Instance $userInstance `
-AccountPassword (ConvertTo-SecureString "1234" -AsPlainText -Force)

当我运行这个命令时,它做的事情和我运行这个命令时没有实例参数是一样的。

New-ADUser `
-SamAccountName $userName `
-UserPrincipalName "$userName@123.COM" `
-Name "$firstName $lastName" `
-GivenName $firstName `
-Surname $lastName `
-Enabled $true `
-DisplayName "$firstName $lastName" `
-City $city `
-PostalCode $zip `
-Company $company `
-State $state `
-EmailAddress $email `
-Department $department `
-AccountPassword (ConvertTo-SecureString "1234" -AsPlainText -Force)

我错过了什么吗?我不明白"实例"参数是应该做的,如果它只拷贝易得的某些属性(国家、公司、城市)。有什么,实际上复制模板帐户或我需要编写一个循环,经过每一个属性,许可,和组模板中账户提供某种形式的组织和手动分配意义?

你说的"权限"到底是什么意思?

根据用户的objectSid设置资源的权限。因为这对每个用户都是独一无二的,所以你永远不能"复制"。他们(和相关的权限)给一个新用户。

组成员关系存储在组中,而不是用户中。memberOf属性只是一个"反向链接"。所以这个也不会被复制。

组成员需要在单独的步骤中添加,例如使用

Add-ADGroupMember

cmdlet in PowerShell

权限"可能不是我想要的那个词。我想创建用户,并为他们分配与前一个user相同的组和目录位置。我能够通过使用@Oliver Hauck之前所说的方法为我的新用户添加组成员

Add-ADGroupMember

这有助于我的发现,但我希望的是不必为每个新员工类型编写冗长,重复的切换代码,以及他们的组,我们可以加入。希望有人看到这一点,而不是对编写超长,无聊的开关代码感兴趣,我想分享我是如何实现这一点的,如果它能帮助其他人在未来。我仍然以同样的方式获得$userInstance变量,但添加了-Property参数定义到MemberOf

$userInstance = Get-ADUser -Identity $department User -Properties MemberOf

然后我使用$userInstance变量从它获得我需要的属性(Groups to copy, Directory Path)

//Obtains the Path from the copied User, without their common name (CN) attached
$path = $userInstance.DistinguishedName.split(",",2)[-1]

我仍然使用与上面相同的命令创建新用户,但添加了-Path参数,将目录路径分配给new - adusercmd

New-ADUser `
-SamAccountName $userName `
-UserPrincipalName "$userName@123.COM" `
-Name "$firstName $lastName" `
-GivenName $firstName `
-Surname $lastName `
-Enabled $true `
-DisplayName "$firstName $lastName" `
-City $city `
-PostalCode $zip `
-Company $company `
-State $state `
-Path $path `
-EmailAddress $email `
-Department $department `
-AccountPassword (ConvertTo-SecureString "1234" -AsPlainText -Force)

下面是我如何获得并分配给新用户的组成员资格

//Obtains the groups to be copied from the existing User
$refGroups = $userInstance.MemberOf
//Adds AD Group Membership to User
$refGroups | Add-ADGroupMember -Members $userName

相关内容

最新更新