
次のコマンドを使用しても、 という名前のメンバーは生成されませんmsDS-UserPasswordExpiryTimeComputed
。これは、ある種の「隠し」メンバーですか? オブジェクトの他の「隠し」メンバーはありますか?
Get-ADUser -identity $Env:USERNAME –Properties *
Get-ADUser -identity $Env:USERNAME –Properties * | Format-List -Property * -Force
ただし、 の値はmsDS-UserPasswordExpiryTimeComputed
次のコマンドによって生成されます。
Get-ADUser -Identity $Env:USERNAME –Properties "msDS-UserPasswordExpiryTimeComputed"
ユーザー アカウントのパスワードの有効期限を計算するために使用できます。
Get-ADUser -Identity $Env:USERNAME –Properties "DisplayName", "msDS-UserPasswordExpiryTimeComputed" |
Select-Object -Property "Displayname",@{Name="ExpiryDate";Expression={[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}
これは、PowerShell Core と Windows PowerShell の両方で発生します。
PS C:\> $PSVersionTable.PSVersion.ToString()
7.2.6
PS C:\> $PSVersionTable.PSVersion.ToString()
5.1.19041.1682
答え1
のようだmsDS-UserPasswordExpiryTimeComputed
はConstructed
属性静的ではなく、値を取得するために計算される型。
その理論は計算値なので、計算オーバーヘッドごとに値を列挙するとリソースを大量に消費します。パフォーマンス上の理由から、デフォルトで Get-ADUser
-Properties *
使用されたワイルドカード パラメータを使用して、計算されたすべての属性を列挙しません。[1]
解決策は以下の PowerShell の例のように、ワイルドカードConstructed
と組み合わせて属性プロパティ値の 1 つを明示的に指定します。-Properties *
しかし、私が知る限り、これらのいずれかを明示的に指定すると、他のConstructed
属性プロパティ値のいくつかが列挙されます。しかし必ずしも全てではない。
つまり、期待される属性が出力されない場合は、それらをカンマ アスタリスク [ , *
] の前にカンマ区切りで明示的に追加します (例Get-ADUser -Identity $Env:USERNAME –Properties msDS-UserPasswordExpiryTimeComputed, ModifyTimeStamp, * | Format-List * -Force;
)。
パワーシェル
Get-ADUser -Identity $Env:USERNAME –Properties msDS-UserPasswordExpiryTimeComputed, * | Format-List * -Force;