将AD用户对象的属性列表提取到XML

时间:2014-11-20 15:12:48

标签: xml powershell

我使用此PowerShell脚本https://gallery.technet.microsoft.com/scriptcenter/Extract-arbitrary-list-of-6f59d3b4从AD用户对象中提取属性。

当我运行此命令时:

。\ Get-UserADProperties2.ps1 givenName,sn,department,mail,telephoneNumber -searchroot' LDAP:// ou = users,ou = EMP,dc = emp,dc = company,dc = com&#39 ; | Export-Clixml C:\ XML \ ADInfo.xml

xml文件中的标记如下所示:

  <Obj RefId="1">
    <TNRef RefId="0" />
    <MS>
      <S N="department">Information Systems</S>
      <S N="mail">jane.doe@company.com</S>
      <S N="sn">Doe</S>
    </MS>
  </Obj>

如何获取导出,以便标记如下所示:

<Obj RefId="1">
    <TNRef RefId="0" />
    <MS>
      <department>Information Systems</department>
      <mail>jane.doe@company.com</mail>
      <lname>Doe</lname>
    </MS>
  </Obj>

2 个答案:

答案 0 :(得分:0)

Export-clixml用于序列化对象,以便稍后可以回读。如果你想要漂亮的HTML使用像convertto-html这样的东西。 http://technet.microsoft.com/en-us/library/hh849944.aspx

答案 1 :(得分:0)

这样的事情应该做你想做的事情:

[xml]$xml = Get-Content 'C:\XML\ADInfo.xml'

$xml.SelectNodes('//MS/S') | % {
  $node = $xml.CreateElement($_.N)
  $txt  = $xml.CreateTextNode($_.'#text')
  [void]$node.AppendChild($txt)

  $_.ParentNode.ReplaceChild($node, $_)
}

$xml.Save('C:\XML\ADInfo.xml')