2017-04-24 12 views
1

パスワードの有効期限が切れているアカウントをチェックするための基本的なスクリプトを書きたいと思います。Powershell for usersパスワードの日付

$maxPasswordAges = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge.Days 

$Today = Get-Date 

Get-AdUser -Searchbase "MyOU" -filter * - Properties PasswordExpired, AccountExpirationDate, PasswordLastset | Sort-Object PasswordlastSet 
Select-Object Name, PasswordExpired, AccountExpirationDate, PasswordlastSet 

すべてが上記のコードでは、それは私のOUには多くの種類のアカウントを読み込む罰金だ:

は、ここに私のスクリプトです。 「有効期限」(パスワードの有効期限が切れる日数)を列に追加するには、どうすればよいですか?私は一緒に2つのスクリプトを組み合わせた場合、それが唯一の「何日有効期限が切れるように」私だけを示し、

where-object {$_.PasswordlastSet} | foreach {($_.Passwordlastset.AddDays($maxpasswordage) - $Today).Days} 

:今のところ

は、私は追加の仕事をして、この追加のコードを実行する必要があります。

答えて

0

あなたはSelect-Object文でcalculated propertyを使用して2つのスクリプトを組み合わせることができます:

$maxPasswordAges = (Get-ADDefaultDomainPasswordPolicy).MaxPasswordAge.Days 
$Today = Get-Date 

Get-AdUser -Searchbase "MyOU" -filter * - Properties PasswordExpired, AccountExpirationDate, PasswordLastset | 
    Sort-Object PasswordlastSet | 
    Select-Object Name, PasswordExpired, AccountExpirationDate, PasswordlastSet, @{Name="DaysToExpire";Expression={($_.Passwordlastset.AddDays($maxpasswordage) - $Today).Days}} 
+0

たくさんの男に感謝、私は期待どおりに動作します。 –

0

あなたが財産"のmsDS-UserPasswordExpiryTimeComputed"をチェックしています。

あなたはこのようにそれを計算することができます。

(((Get-ADUser –Identity 'TestUser' -Properties "msDS-UserPasswordExpiryTimeComputed")."msDS-UserPasswordExpiryTimeComputed")-(Get-Date).Days) 

注:現在の日付と計算された日付の違いは、あなたが探しているものをお渡しします。

+0

感謝をコードを改善するため。私はそれをスイートにカスタマイズしようとします。 –

関連する問題