2014-09-10 60 views
2
(([datetime]::FromFileTime((Get-ADUser –Identity username -Properties "msDS-UserPasswordExpiryTimeComputed")."msDS-UserPasswordExpiryTimeComputed"))-(Get-Date)).Days 

將輸出直到AD帳戶到期的時間量。但是,當我嘗試通過設置一個等於它的變量將其放置在腳本中時,它會崩潰並快速關閉,並且不起作用。我不確定爲什麼。直到密碼過期的天數

編輯:

只在我的腳本運行此命令時,我得到一個錯誤:

$Expiration = (([datetime]::FromFileTime((Get-ADUser –Identity 'MyTestUser' -Properties "msDS-UserPasswordExpiryTimeComputed")."msDS-UserPasswordExpiryTimeComputed"))-(Get-Date)).Days 

錯誤:

At C:\Users\ajstepanik\Desktop\test.ps1:1 char:161 
+ ... iryTimeComputed"))-(Get-Date)).Days 
+     ~~~~~~~~~~~~~~~~~~~~ 
The string is missing the terminator: ". 
At C:\Users\ajstepanik\Desktop\test.ps1:1 char:181 
+ ... Get-Date)).Days 
+     ~ 
Missing closing ')' in expression. 
At C:\Users\ajstepanik\Desktop\test.ps1:1 char:181 
+ ... Get-Date)).Days 
+     ~ 
Missing ')' in method call. 
    + CategoryInfo   : ParserError: (:) [], ParentContainsErrorRecordEx 
    ception 
    + FullyQualifiedErrorId : TerminatorExpectedAtEndOfString 

回答

3

當你說你試圖將其設置爲一個變量是否意味着價值?我們可以通過將一個變量的代碼之前,像這樣

$Expiration = (([datetime]::FromFileTime((Get-ADUser –Identity 'MyTestUser' -Properties "msDS-UserPasswordExpiryTimeComputed")."msDS-UserPasswordExpiryTimeComputed"))-(Get-Date)).Days 

如果你想使你可以這樣做這樣的功能,做相同的,但調用的函數,而不是分配給所得值的變量代碼

function Get-PasswordExpirationDays ($User) 
{ 
    (([datetime]::FromFileTime((Get-ADUser –Identity $User -Properties "msDS-UserPasswordExpiryTimeComputed")."msDS-UserPasswordExpiryTimeComputed"))-(Get-Date)).Days 
} 

$Expiration = Get-PasswordExpirationDays 'MyTestUser' 

兩者都會將$ Expiration設置爲多少天,直到人員密碼過期,但該功能將更易於多次使用。

+0

我試着將它設置爲像$ Expiration那樣的變量,但是當我把它放在腳本中然後調用該變量時,腳本崩潰得非常快。只要我評論這一行,就沒有問題。我編輯我的原始帖子,當我這樣做的時候出現錯誤。這有幫助嗎?有趣的是,如果我直接將代碼粘貼到PowerShell中,它運行時沒有錯誤... – Aaron 2014-09-11 04:09:51