27

私の目的は、次の情報を使用してドメインからユーザーのリストを取得することです。

-表示名 -国 -管理者名 -最終ログイン日

次のスクリプトを実行していますが、LastLogon 以外はすべて問題ないようです。「129948127853609000」のような乱数の束に時間を出力します。これを DateTime 形式に変換するにはどうすればよいですか?

Search-ADAccount -UsersOnly -SearchBase "OU=International,DC=mycompany,DC=com" -AccountDisabled:$false | Get-ADUser -Properties Name, manager, LastLogon | Select Name, manager, LastLogon | export-csv C:\Australia.csv -NoTypeInformation
4

5 に答える 5

56

DateTime.FromFileTimeトリックを行う必要があります:

PS C:\> [datetime]::FromFileTime(129948127853609000)

Monday, October 15, 2012 3:13:05 PM

次に、フォーマット方法に応じて、標準およびカスタムの日時フォーマット文字列を確認してください。

PS C:\> [datetime]::FromFileTime(129948127853609000).ToString('d MMMM')
15 October
PS C:\> [datetime]::FromFileTime(129948127853609000).ToString('g')
10/15/2012 3:13 PM

これをワンライナーに統合したい場合は、selectステートメントを次のように変更します。

... | Select Name, manager, @{N='LastLogon'; E={[DateTime]::FromFileTime($_.LastLogon)}} | ...
于 2012-10-26T17:43:53.783 に答える
13
Get-ADUser -Filter {Enabled -eq $true} -Properties Name,Manager,LastLogon | 
Select-Object Name,Manager,@{n='LastLogon';e={[DateTime]::FromFileTime($_.LastLogon)}}
于 2012-10-26T18:19:45.717 に答える
6

LastLogon は、GET-ADUser コマンドレットを実行した時点でたまたま負荷分散されたドメイン コントローラーにユーザーが最後にログインした時刻であり、ドメイン全体にレプリケートされません。ドメイン内のいずれかのドメイン コントローラーに最後にユーザーがログインした時刻が必要な場合は、LastLogonTimestamp を使用する必要があります。

于 2014-09-17T18:50:32.790 に答える
2

LastLogonDateプロパティを使用すると、日付/時刻を変換する必要がなくなります。 lastLogonTimestampは、変換時にLastLogonDateと等しくなる必要があります。このようにして、結果を変換する必要なく、ドメイン全体の最終ログオン日時を取得できます。

于 2015-04-29T05:35:57.640 に答える