[玩转系统] CSVDE 和 LDIFDE:从命令行管理 AD
作者:精品下载站 日期:2024-12-14 13:16:05 浏览:15 分类:玩电脑
CSVDE 和 LDIFDE:从命令行管理 AD
Active Directory (AD) 是许多组织的主要 IT 资源。从命令行管理 AD 是有意义的,特别是当涉及大量数据或脚本时。 PowerShell 是以这种方式管理 AD 的绝佳工具,但如果您不、不会或不能使用 PowerShell 该怎么办?
有两个方便的命令行实用程序,它们不像 PowerShell 那样引人注目,它们分别是 csvde 和 ldifde。这些工具允许您从命令行导入、导出或修改 AD 数据。
这两个工具减轻了在 AD 域之间迁移数据或从非 AD LDAP 目录服务导入数据的负担。他们通过允许您使用标准纯文本文件(CSV 和 LDIF)来移动 AD 数据来实现此目的。
在本文中,您将了解每个工具的强大功能!
什么是 CSVDE 和 LDIFDE?
逗号分隔值目录交换 (CSVDE) 和 LDAP 数据交换格式数据交换 (LDIFDE) 是一对工具,旨在管理 Active Directory (AD) 数据与文本文件的导入和导出。 CSVDE 从逗号分隔值 (CSV) 文件导入和导出。另一方面,Ldifde 从LDAP 数据交换格式 (LDIF) 文件导入和导出。
常用参数
在本文中,您将了解可以使用这些工具执行的许多不同操作。这些操作中的每一项都将通过一个或多个不同的参数来执行。I
如果您同时使用 csvde 和 ldifde,您会立即注意到的一件事是它们具有相似的参数。每个工具都具有相似的目的,但以不同的方式实现。
下面您将找到一个表格,概述了每个参数及其用途。
杰出姓名翻译
借助 ldifde,您可以将数据从一个域导出并导入到另一个域。但是特定于域的引用(例如 AD 对象的专有名称 (DN))又如何呢?幸运的是,这些工具通过称为 DN 转换的概念提供了一种处理此类情况的方法。
DN 转换允许您在导入和导出操作期间使用 -c
参数“注入”特定域 DN。当以 -c FromDN ToDN
形式使用 -c
参数时,任何出现的 FromDN 都会交换为 ToDN。 EM>
在以下示例中,专有名称 DC=lab,DC=local
替换为 DC=corp,DC=local
。
> csvde -f export.csv -c DC=lab,DC=local DC=corp,DC=local
宏观扩张
LDIFDE 还支持宏扩展的概念。宏扩展是使用缩写名称或宏来引用 LDAP 中一些众所周知的命名上下文的能力。 Ldifde 支持以下宏:
#defaultNamingContext默认命名上下文
#rootDomainNamingContext森林的根域命名上下文
#schemaNamingContext模式命名上下文
#configurationNamingContext配置命名上下文
也许您有一名员工 Fiona Cortez,您希望将其从 corp.local 域中导出并导入到 lab.local 域中。使用以下命令将 Fiona 的用户对象导出到名为 fiona.ldf 的 LDIF 文件:
> ldifde -f fiona.ldif -r "samAccountName=Fiona.Cortez"
Exporting directory to file fiona.ldif
Searching for entries...
Writing out entries.
1 entries exported
如果您在 fiona.ldf 文件中打开 Fiona 的 AD 对象记录,它将如下所示:
dn: CN=Cortez Fiona,OU=All User Accounts,DC=corp,DC=local
changetype: add
accountExpires: 9223372036854775807
cn: Cortez Fiona
description: Systems Analyst
distinguishedName:
CN=Cortez Fiona,OU=All User Accounts,DC=corp,DC=local
dSCorePropagationData: 16010101000000.0Z
givenName: Fiona
instanceType: 4
mail: [email
name: Cortez Fiona
objectCategory:
CN=Person,CN=Schema,CN=Configuration,DC=corp,DC=local
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
sAMAccountName: Fiona.Cortez
sn: Cortez
userAccountControl: 546
尝试使用 ldifde -i
将此记录导入 lab.local 域会导致错误,如下所示:
> ldifde -i -f fiona.ldf
Importing directory from file "fiona.ldf"
Loading entries.
Add error on entry starting on line 1: Referral
The server side error is: 0x202b A referral was returned from the server.
The extended server error is:
0000202B: RefErr: DSID-031007F9, data 0, 1 access points
ref 1: 'corp.local'
0 entries modified successfully.
An error has occurred in the program
要将 Fiona 的用户对象导入到 lab.local 域中,请将每个专有名称中出现的 corp.local 更改为 lab.local在 LDIF 文件中。您可以手动执行此操作,但宏扩展可以使用 #defaultNamingContext
宏为您执行此操作。 #defaultNamingContext
宏表示 AD 域的默认命名上下文。
AD 域的默认命名上下文是对象 DN 的一部分。 DN 由域组件或DC组成(不要与域控制器混淆)。例如,在专有名称 CN=Cortez Fiona,OU=All User Accounts,DC=corp,DC=local
中,域组件为 DC=corp,DC=local
>。 corp.local 域的默认命名上下文是 DC=corp,DC=local
。
以下命令成功导入 Fiona 的记录。在本例中,#defaultNamingContext
为 cn=lab,cn=local
。可分辨名称中出现的所有 cn=corp,cn=local
均更改为 cn=lab,cn=local
。
> ldifde -i -f fiona.ldf -c "cn=corp,dc=local" "#defaultNamingContext"
仅 ldifde 和 LDIF 文件支持使用带有 -c
参数的宏扩展。相同的方法不能用于 csvde 和 CSV 文件。
LDIF 参数
尽管这两个工具具有相似的参数,但 ldifde 有所不同,它包含了一些 csvde 没有的参数。这些参数执行仅特定于 ldifde 工具的操作。
使用 LDIFDE 和 CSVDE
在本文的其余部分中,您将实际学习如何使用这些有用的工具。
先决条件
如果您打算继续操作,请确保提前满足以下先决条件:
- Windows 7 或更高版本操作系统
- 查看 csvde 生成的 CSV 文件时,计算机上安装的 Microsoft Excel 或类似电子表格程序将有所帮助。
- 远程服务器管理工具 (RSAT)
从当前域导出 AD 对象
也许您需要从 AD 导出信息。您可以使用 -f
参数轻松地执行此操作,该参数允许您指定文件。
下面的命令将当前 AD 域中的所有内容导出到 -f
参数指定的文件中。
> csvde -f export.csv
> ldifde -f export.ldf
这在生产环境中可能需要很长时间并影响 AD 的性能。
在 Excel 中查看时,整个域的典型 CSV 导出文件将类似于以下 CSV。
将AD对象导入当前域
如果您已有包含 AD 对象的 CSV 文件,则可以在任一工具上使用 -f
参数。也许您现在正在从之前导出的 import.csv 文件导入 AD 信息。为此,请使用 -i
参数。
例如,使用 -i
和 -f
参数,您可以导入上面构建的 import.csv 文件中的所有内容。
> csvde -i -f import.csv
> ldifde -i -f import.ldf
了解 CSVDE 如何转换数据
当您导出 AD 时,Csvde 会更改 AD 返回的一些信息。这样做是为了可以以纯文本格式(如 CSV)存储数据。如果您正在修改 Microsoft Excel 中的数据,或者您将数据导入到的系统不是 Active Directory,则此行为可能会让您感到惊讶。
让我们看一下来自 lab.local 域的 CSV 导出文件 pc.csv。该文件由 csvde 为用户 Paul Cox 生成。使用 -r
参数指定 LDAP 过滤器可通过 Paul 的 samAccountName
挑选出他。
> csvde -r "samAccountName=Paul.Cox" -f pc.csv
Exporting directory to file pc.csv
Searching for entries...
Writing out entries
.
Export Completed. Post-processing in progress...
1 entries exported
pc.csv 的结构可以通过在 Excel 或其他电子表格程序中打开来检查。它看起来像这样:
查看标题为 memberOf
的列,了解 csvde 如何处理多值 AD 属性。您可以在下面看到 csvde 用分号(“;”)分隔值。分号在下图中突出显示。在所有逗号中很难找到。
查看pc.csv中的objectGUID
列显示了csvde如何处理不能直接表示为文本或数字的AD属性 - 该程序导出一个以“X”为前缀的值,并且用单引号括起来。
以这种方式呈现值意味着 csvde 已获取 objectGUID
的值并对其进行更改,使其能够以纯文本格式(如 CSV)存储。当文件由 csvde 导入时,objectGUID
值将在发送到 AD 之前进行转换。似乎没有任何关于如何更改或改回这些值的文档。
您将在下面找到已编码的 AD 属性表以及 AD 中的哪些对象具有该特定属性。
auditingPolicy域DNS
dNSProperty域名服务器
dnsRecord域名解析节点
dSASignature域DNS
ipsecDataipsecFilter
ipsecNegotiationPolicy
ipsecNFAipsecISAKMPPolicy
ipsecPolicy
用户
logonHours用户
msDFSR-ContentSetGuidmsDFSR-订阅
msDFSR-ReplicationGroupGuidmsDFSR-订阅
msDFSR-ReplicationGroupGuidmsDFSR-订阅者
msDS-GenerationId电脑
objectGUID所有 AD 对象都有一个 objectGUID
objectSid组
foreignSecurityPrincipal
builtinDomain
计算机
domainDNS
用户
电脑
replUpToDateVector域DNS
repsFrom域DNS
samDomainUpdates萨姆服务器
导出用户帐户
也许您只需要导出用户帐户。为了让事情变得更有趣,我们还假设您当前没有登录到有权查询 AD 的计算机。您需要指定备用凭据。
在下面的示例中,-m
参数表示程序认为敏感的信息,例如objectGUID
和objectSid
。这些属性不会被导出。 -r
参数设置要使用的 LDAP 过滤器。
> csvde -m -f export.csv -a [email P@$$w0rdH3r3 -r "(objectCategory=user)"
> ldifde -m -f export.ldf -a [email P@$$w0rdH3r3 -r "(objectCategory=user)"
包含用户对象的典型 CSV 导出文件在 Excel 中如下所示:
导出组织单位 (OU) 中的所有对象
如果您不想导出 AD 中的所有对象,也可以仅导出特定 OU 中的对象。
以下命令导出 OU 中的所有对象,包括 OU 对象本身和任何子 OU。如果我们不使用 -r
提供过滤器,则使用默认的 LDAP 过滤器 "objectClass=*"
(所有对象)。 -d
参数设置在目录树中搜索的起点。在本例中,它被设置为我们感兴趣的 OU,如下所示。
> csvde -f ouexport.csv -d "OU=All User Accounts,DC=lab,DC=local"
> ldifde -f ouexport.ldf -d "OU=All User Accounts,DC=lab,DC=local"
当您使用 csvde 或 ldifde 将 AD 对象导出到文件时,文件中的对象会按特定顺序列出。这是将数据导入到另一个域或 LDAP 服务时将使用的顺序。
例如,OU 是在 OU 内的用户对象之前创建的。此外,诸如manager之类的链接属性是在创建所有用户后添加的。下面是一个 LDIF 文件示例(为简洁起见进行了剪裁),显示了对象创建和修改的顺序:
dn: OU=All User Accounts,DC=lab,DC=local
changetype: add
distinguishedName: OU=All User Accounts,DC=lab,DC=local
---SNIP---
dn: CN=Smith Brian,OU=All User Accounts,DC=lab,DC=local
changetype: add
distinguishedName:
CN=Smith Brian,OU=All User Accounts,DC=lab,DC=local
---SNIP---
dn: OU=Professional Services,OU=All User Accounts,DC=lab,DC=local
changetype: add
distinguishedName:
OU=Professional Services,OU=All User Accounts,DC=lab,DC=local
---SNIP---
dn: CN=Davis Bethany,OU=Professional Services,OU=All User Accounts,DC=lab,DC=local
changetype: add
distinguishedName:
CN=Davis Bethany,OU=Professional Services,OU=All User Accounts,DC=l
ab,DC=local
---SNIP---
dn: CN=Davis Bethany,OU=Professional Services,OU=All User Accounts,DC=lab,DC=local
changetype: modify
add: manager
manager:
CN=manager: CN=Smith Brian,OU=All User Accounts,DC=lab,DC=local
-
导出用户帐户的特定属性
在某些情况下,您不需要使用 csvde 或 ldifde 导出有关用户的所有信息。示例包括用于创建物理电话簿的数据,或导出用户信息以导入到另一个非 Active Directory 系统中。 -
此示例使用 -l
参数允许导出对象的特定属性。导出文件包含每个用户的名字、姓氏、电话号码和电子邮件地址。这些属性属性是通过-l
参数指定的。
> csvde -f export.csv -r "objectCategory=user" -l givenName,sn,telephoneNumber,mail
> ldifde -f export.ldf -r "objectCategory=user" -l givenName,sn,telephoneNumber,mail
修改 Active Directory 对象
虽然 csvde 和 ldifde 都是为批量数据导入和导出而设计的,但 ldifde 可以对 AD 对象进行更改。例如,Microsoft 使用 LDIF 文件来扩展 AD 架构。 LDIF 文件格式旨在支持这些操作。
csvde 使用的 CSV 文件中没有与 LDIF 更改类型等效的内容。 Csvde 只能导入或导出 AD 对象。
请记住,从 AD 导出的某些属性无法写回。这些属性是系统生成的,或者仅限于系统访问。示例包括:
badPwdCount
badPasswordTime
lastLogoff
lastLogon
pwdLastSet
primaryGroupID
objectGUID
objectSid
logonCount
sAMAccountType
使用变更类型
changetype lin 是 LDIF 记录中的关键信息,允许将其用于不同类型的操作。 LDIF 文件中的 ChangeType 行设置 AD 中由 ChangeType 上方的 DN 行指定的对象将发生的操作,如下例所示。
dn: CN=Cox Paul,OU=All User Accounts,DC=lab,DC=local
changetype: add
有不同类型的变更类型,下表总结了这些变更类型:
adddelete
moddn/modrdn
newrdn
删除oldrdn 0 | 1
新高级
添加
删除
替换
使用添加变更类型
Add 变更类型创建一个新的 AD 对象。对于单值属性,属性值每行提供一个;对于多值属性,属性值在多行提供。 添加记录类似于下面的示例(为简洁起见进行了剪裁)。
请注意,第二行 (changetype: add
) 将此标识为添加记录。
dn: CN=Cox Paul,OU=All User Accounts,DC=lab,DC=local
changetype: add
objectClass: top
objectClass: person
objectClass: organizationalPerson
objectClass: user
cn: Cox Paul
sn: Cox
description: IT Manager
givenName: Paul
distinguishedName: CN=Cox Paul,OU=All User Accounts,DC=lab,DC=local
---SNIP---
使用删除更改类型
delete 变更类型从 AD 中删除一个对象,结构简单。 DN 是 LDIF 文件中所需的唯一强制属性,指定要删除的 AD 对象的 DN。接下来是 changetype:delete
的changetype 行,如下所示。
dn: OU=Legacy OU,DC=lab,DC=local
changetype: delete
您可以使用 ldifde 删除多种对象。您可能会以错误的方式使用 ldifde 轻松破坏 AD 安装。请注意!
使用修改变更类型
修改更改类型具有应用于所选 AD 对象属性的添加、删除和替换操作。下面是一个 LDIF 文件示例,展示了如何在实践中使用它。该示例替换了 Angelique 的电话号码,添加了她的办公位置,并删除了她的传真号码。
dn: CN=Cortez Angelique,OU=All User Accounts,DC=lab,DC=local
changetype: modify
replace: telephonenumber
telephonenumber: +44 1234 567890
-
add: physicaldeliveryofficename
physicaldeliveryofficename: Corner Office
-
# No one uses faxes, do they?
delete: facsimiletelephonenumber
-
使用 ModDN/ModRDN 变更类型
moddn 或 modrdn 更改类型用于重命名或移动目录树中的 AD 对象。
使用newsuperior值来设置对象将移动到的位置。强制 newrdn 值设置对象的名称。 deleteoldrdn 值确定旧的 rdn 是保留还是被 newrdn 值替换。如果应就地重命名对象,请省略 newsuperior 值。被移动对象的子对象也会被移动。
下面显示了用于从服务 OU 下移动专业服务 OU 的示例 LDIF 文件。
dn: OU=Professional Services,OU=Services,DC=lab,DC=local
changetype: modrdn
newrdn: OU=Professional Services
deleteoldrdn: 1
newsuperior: DC=lab,DC=local
更新属性
让我们探讨如何使用 ldifde 更新现有 AD 属性的值。-
在此示例中,用户的 description
属性已更新。首先,将用户的 description
属性导出到 LDIF 文件以创建要修改的模板,如下所示。 -l
参数指定 LDIF 文件中存在的属性。 -r
参数设置用于确定 ldifde 返回的对象的 LDAP 过滤器。
> ldifde -r "samAccountName=Angelique.Cortez" -f ac.ldf -l description
Exporting directory to file ac.ldf
Searching for entries...
Writing out entries.
1 entries exported
The command has completed successfully
生成的文件 ac.ldf 如下所示:
dn: CN=Cortez Angelique,OU=All User Accounts,DC=lab,DC=local
changetype: add
description: Compliance Guardian
要使其成为修改记录,请将更改类型更改为修改,并添加指定要修改的属性的替换行。描述行更改为新值。最后,添加一个单独包含“-”的新行来标记更改的结束。保存时,该文件如下例所示:
dn: CN=Cortez Angelique,OU=All User Accounts,DC=lab,DC=local
changetype: modify
replace: description
description: General Manager
-
使用 -i
参数运行 ldifde 将更改导入到 AD 中,如下所示。
> ldifde -i -f ac.ldf
Importing directory from file "ac.ldf"
Loading entries..
1 entry modified successfully.
The command has completed successfully
重复上面的导出步骤并查看 ac.ldf
显示更改已发生。
dn: CN=Cortez Angelique,OU=All User Accounts,DC=lab,DC=local
changetype: add
description: General Manager
修改AD组成员
让我们探讨如何使用 ldifde 修改 AD 组的成员资格。-
在此示例中,专业服务部门组的成员身份已更改。
例如,使用 -m
和 -n
开关将组导出到名为 psd.ldf 的 LDIF 文件。这些开关从返回的数据中删除安全敏感属性和二进制属性。实现此目的的命令如下所示。
> ldifde -r "cn=Professional Services Department" -f psd.ldf -m -n
文件psd.ldf如下所示(为简洁起见进行了剪裁)。
dn: CN=Professional Services Department,OU=All Groups,DC=lab,DC=local
changetype: add
cn: Professional Services Department
distinguishedName:
CN=Professional Services Department,OU=All Groups,DC=carisbrookelabs,D
---SNIP---
dn: CN=Professional Services Department,OU=All Groups,DC=lab,DC=local
changetype: modify
add: member
member: CN=Cox Paul,OU=All User Accounts,DC=lab,DC=local
-
dn: CN=Professional Services Department,OU=All Groups,DC=lab,DC=local
changetype: modify
add: member
member:
CN=Diaz Kristin,OU=Professional Services,OU=All User Accounts,DC=lab
,DC=local
-
psd.ldf 中的条目顺序意味着先创建组,然后添加成员。请注意,member 属性包含 DN,而不是 samAccountName、SID 或 commonname。这就是属性的作用方式存储在AD中。
对于此示例,我们假设需要将用户 Angelique Cortez 添加到“专业服务”组。她的专有名称是 CN=Cortez Angelique,OU=所有用户帐户,DC=lab,DC=local
。导出文件psd.ldf显示将用户添加到组所需的LDIF格式。这由修改的变更类型、添加行和成员行组成。
不要忘记在自己的行上添加“-”来完成修改记录。
按照导出文件的示例,新的 LDIF 文件已保存为 group.ldf
,如下所示:
dn: CN=Professional Services Department,OU=All Groups,DC=lab,DC=local
changetype: modify
add: member
member: CN=Cortez Angelique,OU=All User Accounts,DC=lab,DC=local
-
使用-i
参数导入LDIF文件,如下所示。
> ldifde -i -f group.ldf
假设没有错误,Angelique 将已成功添加到组中。
重置用户密码
使用 LDIF 文件重置密码需要更改用户的 unicodePwd
属性。新密码必须用双引号括起来(NewPassword 必须以 “NewPassword” 形式提供)并进行 base64 编码。新密码还必须符合适用于用户的任何密码策略,例如长度或复杂性。不满足这些要求将导致密码更改失败。
在下面的示例中,用户的密码被更改,userAccountControl
属性的值被替换为值 512。 此行为启用帐户。
涉及密码更改的 LDIF 文件必须通过安全连接导入。使用 -t
参数使用端口 636,或使用 -h
使用简单身份验证和安全层 (SASL)。尝试通过不安全的连接修改密码将会失败。
dn: CN=Cortez Angelique,OU=All User Accounts,DC=lab,DC=local
changetype: modify
replace: unicodePwd
unicodePwd::IgBGAGwAeQBpAG4AZwBJAHMATQB5AFQAaABpAG4AZwAxACIA
-
replace: userAccountControl
userAccountControl: 512
-
将照片添加到用户帐户
ldifde 工具允许您通过指定文件来设置用户的[jpegphoto](https://docs.microsoft.com/en-us/windows/win32/adschema/a-jpegphoto)
属性LDIF 文件中的名称。在下面的示例中,指定的文件被加载到 jpegphoto
属性中。请注意,文件路径遵循文件 URI 方案,并且使用正斜杠。
dn: CN=Cortez Angelique,OU=All User Accounts,DC=lab,DC=local
changetype: modify
replace: jpegphoto
jpegphoto: < file:///photos/angeliquephoto.jpg
-
在加载文件之前,不会以任何方式检查文件内容是否存在无效或恶意内容。请注意!
故障排除
尽管 csvde 和 ldifde 工具可以为您节省大量时间,但事情并不总是按预期进行。在本节中,您将找到许多提示来帮助您处理可能遇到的各种问题。
为 CSVDE 和 LDIFDE 创建日志
使用 -j
参数创建导入或导出的日志。此参数应指向将在其中创建日志文件的目录。日志本身是纯文本文件,对于 csvde 称为 csv.err
和 csv.log
,以及 ldif.err
和 ldif.log
为 ldifde。 *.log 文件包含所有活动的日志,而 *.err 文件仅包含任何错误。
例如,失败的 csvde 导入会生成如下所示的 csv.log
文件:
Connecting to "lab.local"
Logging in as "[email " using simple bind
Importing directory from file "dc.csv"
Loading entries2: CN=Cortez Angelique,OU=All User Accounts,DC=lab,DC=local
Attribute 0) description: Team Leader
Attribute 1) distinguishedName: CN=Cortez Angelique,OU=All User Accounts,DC=lab,DC=local
Attribute 2) objectClass: userEntry already exists, entry skipped.
0 entries modified successfully.
The command has completed successfully
相同错误的 .err 文件如下所示:
Attribute 0) description: Team Leader
Attribute 1) distinguishedName: CN=Cortez Angelique,OU=All User Accounts,DC=lab,DC=local
Attribute 2) objectClass: user
2: Entry already exists, entry skipped.
如果您的 LDIF 文件在使用 -l
或 -o
开关时不包含预期属性,请检查您希望包含或省略的任何属性名称的拼写。此外,请务必检查服务器名称、文件名等的拼写。其中的任何错误也会导致导入或导出失败。
“输入文件中有语法错误”
此一般错误标识 LDIF 或 CSV 文件中导入失败的位置:
Failed on line 3. The last token starts with 'n'.*
“连接到系统的设备无法运行”
使用 ldifde 更改用户密码时会出现此错误。有两个可能的原因。
Add error on entry starting on line 1: Unwilling To Perform
The server side error is: 0x1f A device attached to the system is not functioning.
The extended server error is:
0000001F: SvcErr: DSID-031A1254, problem 5003 (WILL_NOT_PERFORM), data 0
原因 1 - 密码格式不正确
确保将 unicodePwd 属性替换为 base64 值。密码必须是在 base64 编码之前用双引号括起来的 Unicode 字符串。您可以使用多种方法对密码进行 Base64 编码,包括在线服务和命令行工具。以下是如何使用 PowerShell 对密码进行 Base64 编码。
PS51> [Convert]::ToBase64String([System.Text.Encoding]::Unicode.GetBytes('"PassWordInQuotes1"'))
IgBQAGEAcwBzAFcAbwByAGQASQBuAFEAdQBvAHQAZQBzADEAIgA=
原因 2 - 尝试通过不安全的连接设置密码
另一个原因可能是当您尝试设置用户密码,但不使用安全连接时。-
使用 -t 636
(使用端口 636)或-h
(使用 SASL)参数来保护与 AD 的连接。否则,密码更新将会失败。
“第 2 行错误”
您偶尔会遇到 csvde 返回的以“errors on line 2.”开头的错误消息。这通常意味着文件格式不正确。
例如,此错误可能意味着 CSV 文件中的列标题使用了不正确的属性名称。 CSV 文件的第 2 行是标题后的第一个数据行。此错误意味着导入过程从一开始就失败了。
为了说明此错误,请查看 CSV 文件中的以下代码片段。 用户名字和姓氏的列标题为 firstName 和 lastName(而不是 givenName 和 sn)。导入将失败,并在第 2 行出现错误“No Such Attribute”。
“不允许访问该属性,因为该属性归安全帐户管理器 (SAM) 所有”
一些 AD 属性无法通过脚本设置。它们由 AD 本身管理 - 尝试修改其中之一会触发此错误。
Add error on line 2: Unwilling To Perform
The server side error is "Access to the attribute is not permitted because the attribute is owned by the Security Accounts Manager (SAM)."
导出时使用-m
参数从输出文件中排除受限属性。此外,无法直接设置作为其他属性反向链接的属性(例如 memberOf
、manager
)。以下是无法使用 csvde 和 ldifde 设置的属性列表(可能不完整):
objectGUID
objectSid
whenCreated
whenChanged
uSNCreated
uSNChanged
badpasswordTime
lastLogoff
lastLogon
pwdLastSet
lastLogonTimestamp
dSCorePropagationData
badPwdCount
logonCount
lockoutTime
instanceType
accountExpires
objectCategory
sAMAccountType
memberOf
manager
primaryGroupID
“指定的账户已存在”
CSVDE 无法更新或重新创建现有 AD 对象。如果您尝试,您将收到以下错误消息。
Add error on line 2: Already Exists
The server side error is "The specified account already exists."
“非法修改操作。某些方面的修改是不允许的”
AD 中的约束可能会阻止操作发生,例如当 OU 的 isCriticalSystemObject 属性设置为 True 时尝试删除该 OU。不幸的是,错误消息并未具体说明不允许进行哪些更改。
The server side error is: 0x2077 Illegal modify operation. Some aspect of the modification is not permitted.
The extended server error is:
00002077: SvcErr: DSID-031B0F19, problem 5003 (WILL_NOT_PERFORM), data 0
“无法更新密码。为新密码提供的值不满足域的长度、复杂性或历史记录要求”
错误消息说明了这里的情况。确保您尝试应用的任何密码都符合 AD 域的要求。有关如何定义这些要求的更多详细信息,请参阅 Microsoft Docs 上的密码策略文档。
Add error on entry starting on line 1: Unwilling To Perform
The server side error is: 0x52d Unable to update the password. The value provided for the new password does not meet the length, complexity, or history requirements of the domain.
The extended server error is:
0000052D: SvcErr: DSID-031A1254, problem 5003 (WILL_NOT_PERFORM), data 0
“参数不正确”
消息的扩展错误部分提供了线索。在这种情况下,LDIF 文件中的 deleteoldrdn 值需要设置为 1。
Add error on entry starting on line 1: Unwilling To Perform
The server side error is: 0x57 The parameter is incorrect.
The extended server error is:
00000057: LdapErr: DSID-0C090E43, comment: Old RDN must be deleted, data 0, v3839
“该操作无法执行,因为该对象的父对象未实例化或已删除”
此错误意味着为移动操作指定的新位置不存在。 LDIF 文件中的 newsuperior 值可能是错误的。
Add error on entry starting on line 1: Other
The server side error is: 0x2089 The operation could not be performed because the object's parent is either uninstantiated or deleted.
The extended server error is:
00002089: UpdErr: DSID-031B0DCE, problem 5012 (DIR_ERROR), data 2
“服务器返回了推荐”
您尝试导入的对象的 DN 与您尝试导入的域不匹配。使用宏功能来修复此问题,或在导入之前手动将可分辨名称更改为正确的值。
Add error on entry starting on line 1: Referral
The server side error is: 0x202b A referral was returned from the server.
The extended server error is:
0000202B: RefErr: DSID-03100835, data 0, 1 access points
“找不到目录对象”
当您的导入文件中包含不存在的 DN 时,会出现此错误。有问题的对象是否已被删除?检查专有名称中是否存在拼写错误。
Add error on entry starting on line 1: No Such Object
The server side error is: 0x208d Directory object not found.
The extended server error is:
0000208D: NameErr: DSID-03100241, problem 2001 (NO_OBJECT), data 0, best match of:
'DC=lab,DC=local'
“缺少必需的属性”
AD 对象需要存在某些强制属性,然后才能创建它们。此错误报告缺少其中一个属性。无奈的是,它没有说是哪一个。要了解哪些属性对于特定对象类是必需的,请查看 AD 架构文档。
Add error on line 2: Constraint Violation
The server side error is "A required attribute is missing."
“无法读取导入文件”
此错误通常意味着该文件不存在于指定位置。检查文件路径和拼写。
Unable to read the import file <filename>
“打开输出文件时出错”
此错误可能意味着该文件正在被另一个进程使用。确保导出文件未在其他程序中打开。
Error opening output file.
“无法建立连接。错误代码是8224”
检查所使用的服务器、域或林名称是否正确,以及域控制器是否存在网络连接。
“SSPI“与提供的凭据绑定”返回“无效凭据”或简单绑定返回“无效凭据””
此错误意味着您用于向 AD 进行身份验证的用户名或密码不正确。
“无效参数:没有可用的 Active Directory 域控制器”
此错误意味着您运行 csvde 或 ldifde 的计算机无法检测到 AD 域。使用 -s
指定服务器(您可能还需要使用 -a
或 -b
参数指定凭据)。
进一步阅读
- LDAP 数据交换格式 (LDIF) - 技术规范
- 学习 PowerShell 中的 Active Directory 和 LDAP 过滤器
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag