繁体   English   中英

尝试使用Windows Powershell的Active Directory模块导出用户的CSV列表

[英]Trying to Export a CSV list of users using Active Directory Module for Windows Powershell

所以下面是我到目前为止的位置:

import-module activedirectory
$domain = "ourdomain"

Get-ADUser -Filter {enabled -eq $true} -Properties whenCreated,EmailAddress,CanonicalName |

select-object Name,EmailAddress,CanonicalName,whenCreated | export-csv C:\Data\test.csv

不幸的是,当我运行上面的代码时,我在CSV中获得了两种不同格式的日期,例如:

  • 2017/01/01
  • 1/01/2017下午8:35:56

造成的问题是,实际上没有一种干净的方法可以对它们进行排序。 Excel的格式不会更改这两种格式中的任何一种,使其更像另一种格式,都是因为其中一种包含了时间而另一种都没有包含时间,并且由于包含时间的格式在单个数字中不使用尾随零,但是时间独占格式可以。

我们有一个现有脚本,该脚本使用LastLogonTimestamp属性捕获用户,该属性通过将底线更改为以下内容来正确执行此操作:

select-object Name,EmailAddress,CanonicalName,@{Name="Timestamp"; Expression={[DateTime]::FromFileTime($_.whenCreated).ToString('yyyy-MM-dd_hh:mm:ss')}}

出于某种原因,这个表达式可以正常运行,当我们查询LastLogonTimestamp属性,但是当我们运行此版本查询whenCreated属性,我们可以得到下面一个完全空白列Timestamp头。

我对PowerShell本身并不特别了解,而我的同事找到了LastLogonTimestamp的原始脚本,只是在网上找到它并对其进行了尽可能小的修改以使其对我们LastLogonTimestamp ,所以我不知道其中是否包含某些内容。行将与这些属性之一一起正常工作,而不与其他属性一起正常工作。 尽管在同一程序中使用日期的两个属性会以不同的格式存储它们,但这对我来说似乎很奇怪,所以我不敢相信就这样。

在任何情况下,任何人都可以提供的帮助我们在此脚本的输出中获得统一日期格式的帮助将不胜感激-如果更容易消除它,则无需花时间,即使他们同样容易,我们不妨保留它。

whencreated已经是[DateTime] 运行以下命令时,请注意属性之间的差异:

Get-ADUser TestUser -Properties lastlogon,whenCreated | select lastlogon,whenCreated | fl
(Get-ADUser TestUser -Properties lastlogon).lastlogon | gm
(Get-ADUser TestUser -Properties whenCreated).whenCreated | gm

这意味着在运行toString()方法之前,您不必转换为DateTime

select-object @{Name="Timestamp"; Expression={$_.whenCreated.ToString('yyyy-MM-dd_hh:mm:ss')}}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM