簡體   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