2016-04-07 13 views
1

私はPowershellには新しく、このPSスクリプトから読みやすい日付を引き出​​そうとしています。しかし、変数から戻ってくるのは、元のクエリから返されたテキストブロック全体です。私はそれがかなり簡単な何かでなければならないことを知っています。私はここで自分自身を教えています。私はこのスクリプトをまとめました。しかし、これは私がそれを得ることができる限りです。 :/Powershell:lastlogontimestampを取り除くことはできません

おかげ

$ADUserName = Read-Host -Prompt 'Enter the AD username' 
Function LastLogon { 
    get-aduser $ADUserName -properties lastlogontimestamp 
    $mydatetime = $ADUserName.lastlogontimestamp 
    [datetime]::FromFileTime($mydatetime) 
    $time = [datetime]::FromFileTime($mydatetime) 
    Echo $time 
    Echo $mydatetime 
} 
LastLogon 

答えて

2

問題は$ADUserName変数がGet-ADUserコマンドレットに渡されているが、コマンドレットはそれを修正しないということです。結果を返します。結果を代入していないので、出力ストリームに渡されます。

残りのすべての変数は、$ADUserNameにはないプロパティが含まれているという前提に基づいています。

だから、あなたはこのようにそれを修正することができます:

$ADUserName = Read-Host -Prompt 'Enter the AD username' 
Function LastLogon { 
    $ADobject = get-aduser $ADUserName -properties lastlogontimestamp 
    $mydatetime = $ADobject.lastlogontimestamp 
    [datetime]::FromFileTime($mydatetime) 
    $time = [datetime]::FromFileTime($mydatetime) 
    Echo $time 
    Echo $mydatetime 
} 
LastLogon 

しかし、あなたはあなたがしようとしている手順を行う必要はありません。 Get-ADUserはあなたのための[DateTime]として翻訳LastLogonTimeStampを含むプロパティ(LastLogonDate)を持つオブジェクトを返すために十分いいです:

$ADobject = get-aduser $ADUserName -Properties LastLogonDate 
$ADObject.LastLogonDate 
+0

これでわかりました。 lastlogontimestampのデータを$ ADObject変数に移動しています。その後、DateTimeを使用して変換します。ありがとうございました! :) – Drake

+0

@Drakeはい、私は説明を追加したので、あなたがしていたことがなぜ機能していないのか分かりました。しかし、私は本当にステップをスキップし、 'LastLogonDate'だけを使うことを勧めました。 – briantist

+0

私は知っている、と私は代わりにその値に固執します。私はテクニカルで読んだことを誤解していたし、lastlogontimestampが実際の複製された値であり、より正確であると思った。私はLastLogonDateが私に同じ(既に変換された)情報を与えることに気付かなかった。これは私の最初のPowershellスクリプトです。あなたの助けに感謝します。 – Drake

0

あなたはLastLogonDate代わりのLastLogonTimeStampを使用する必要があります。プロパティ間の関係はhereと説明されています。結局のところ、LastLogonDateLastLogonTimeStampで、Dateオブジェクトに変換されています。

関連する問題