安全帐户管理器属性

时间:2019-05-23 07:48:48

标签: powershell active-directory

我想使用从同一OU为其他用户定义的属性在AD中创建用户。但是我确实对受SAM保护的物品有疑问。

为此,我正在使用所有属性创建一个已经在AD中定义的用户实例。在我使用New-AdUser命令使用创建的实例创建新用户之后。但是,在属性中,有一些由安全帐户管理器管理的元素-我试图找出哪些参数属于SAM,但没有结果。谁能帮助我确定我能精确复制的参数。因此,我可以定义要从创建的实例中复制哪些参数。

PS C:\Users\xxx> $userInstance = Get-ADUser $accountIdentifier -properties *
PS C:\Users\xxx> New-ADUser -GivenName "John" -Instance $userInstance -Surname "Smith" -Title "Salesman" -EmailAddress "John.Smith@yahoo.com" -UserPrincipalName smithj@yahoo.com -Name "John Smith"

作为一个荡妇,我收到以下错误消息:

New-ADUser : Access to the attribute is not permitted because the attribute is owned by the Security Accounts Manager (SAM)

1 个答案:

答案 0 :(得分:0)

您可以使用以下命令确定可以复制哪些属性:

$searchBase = "CN=Schema,$((Get-ADRootDSE).configurationNamingContext)"
$Attributes = Get-ADObject -SearchBase $searchBase -Filter * -Properties searchflags,ldapdisplayname |
    Where-Object {$_.SearchFlags -band 16} | Select ldapdisplayname
$Attributes

然后,您可以使用输出中列出的属性作为向-Properties命令的New-ADUser参数输入内容的指导。

从本质上讲,这将遍历AD中的每个架构属性,并返回在searchflags属性打开了16个十进制位的属性。根据您的显示,您可能会看到它是十六进制表示形式(0x00000010)。您不能仅仅依靠16的值,因为如果打开了其他标志,那么如果打开其他位,则该值将改变。这些位的十进制值相加。因此,我们使用-band(按位和)运算符。您可以阅读有关“搜索标志”属性here的更多信息。