【发布时间】:2018-12-17 07:54:14
【问题描述】:
我必须在删除帐户之前导出帐户的用户数据。问题是,并非所有组成员都写入 .txt 文件(示例如下)。
这是代码:
Get-ADUser -Properties * -Filter "cn -eq '$name'" |
format-list -property @{Label = "Name";Expression = {$_.sAMAccountName}},
@{Label = "Initials";Expression = {$_.initials}},
@{Label = "Email";Expression = {$_.Mail}},
@{Label = "Groups";Expression = {%{(Get-ADPrincipalGroupMembership $name | select -expandproperty name)}}},
@{Label = "Creation";Expression = {$_.whenCreated}},
@{Label = "Deletion";Expression = {%{(Get-Date)}}},
@{Label = "Last change";Expression = {$_.whenChanged}} |
#write data into txt file
Out-File -append "C:\temp\deleted.txt" -Encoding utf8
这是输出:
Name : John Doe
Initials : Jdo
Email : John.Doe@acme.com
Groups : {Domain-User, Remotedesktopuser, Administrator, Share-User...}
Creation : 23.03.2018 13:36:44
Deletion : 17.12.2018 08:46:30
Last Change : 16.12.2018 10:42:21
【问题讨论】:
-
它是切断输出的格式列表。我建议您使用gallery.technet.microsoft.com/scriptcenter/… 之类的脚本并根据您的需要进行编辑。
-
为什么要将(结构化)数据写入平面文件,而不是将其序列化为 JSON 或 XML,然后再写入数据?每当我必须导出 AD 对象时,我总是将其序列化为 JSON,这样我就可以保留所有嵌套属性的结构。
标签: powershell active-directory ps memberof