2017-01-30 4 views
0

だから以下の通りです:Windows PowerShell用Active Directoryモジュールを使用して、ユーザーのCSVリストをエクスポートしようと

残念ながら
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年1月1日
  • 2017年1月1日午前8時35分56秒PM

問題トン彼のポーズは、本当にそれらを並べ替えるきれいな方法がないということです。 Excelの書式設定では、どちらか一方に時間を含めることと、時間を含む形式では1桁の数字の末尾にゼロを使用しないため、これらの形式のいずれかがもう一方の形式に変更されることはありません。時間限定のフォーマットはそうです。

我々は、次の一番下の行を変更することにより、正しくこれを行うのlastLogonTimestamp属性使用してユーザーを取り込み、既存のスクリプトがあります。私たちはLastLogonTimestamp属性を照会するとき、この表現が適切に実行されるいくつかの理由について

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

を、 whenCreated属性を照会するこのバージョンを実行すると、Timestampヘッダーの下に完全に空白の列が表示されます。

私はPowerShell自体について特に知識がありません。LastLogonTimestampのオリジナルスクリプトを見つけた私の同僚は、オンラインで見つけて、可能な限り最小限にして、私たちのために働かせるようにしました。この行の中の何かがこれらの属性の1つで正しく動作し、他の属性では正しく動作しない場合。しかし、同じプログラムで日付を使用する2つの属性が異なるフォーマットでそれらを格納するということは私には奇妙に思えるので、私はそれが確信していません。

いずれにしても、このスクリプトの出力で一様な日付形式を得るのに役立つ助けがあれば誰でも助けることができます。大変ありがたく思っています。それらが同じように簡単なら、我々はそれを保つかもしれません。

答えて

1

whencreatedはすでに[DateTime]です。これは、あなたがtoString()メソッドを実行する前に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 

:あなたはこのような何かを実行したときの特性の違いに注意してください。

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

素晴らしい、ありがとうございました! 私はそれがかなり基本的なものになると思っていたので、私の知識はここではカバーされませんでした。私は基本的に、Pythonに関して私が理解していることに基づいて何が起こっているのかを理解しています。 非常に感謝しています! – JD3

関連する問題