我對腳本一無所知,但想幫助我的領導做一些事情。我正在嘗試創建一個腳本,該腳本將要求輸入用戶名,并且當他們的密碼在 AD 中過期時它將回傳。我還想在完成后繼續輸入用戶名,以防我需要檢查多個用戶。以下是我到目前為止的腳本。
$User = Read-Host "Username?"
Get-ADUser $User -Properties "DisplayName", "msDS-UserPasswordExpiryTimeComputed" |
Select-Object -Property "Displayname", @{Name = "ExpiryDate"; Expression = {[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}
我正在考慮做回圈,但我不知道如何寫出來。任何幫助,將不勝感激。謝謝。
uj5u.com熱心網友回復:
您可以使用do-until回圈:
do {
$User = Read-Host "Username? (enter 'q!' to quit)"
if($User -notin @('', 'q!')){
Get-ADUser $User -Properties DisplayName,"msDS-UserPasswordExpiryTimeComputed" | Select-Object -Property Displayname, @{Name = "ExpiryDate"; Expression = {[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}
}
} until ($User -eq 'q!')
do只要用戶不輸入,PowerShell 就會繼續重復塊內的代碼q!。該if陳述句還防止在未提供用戶名時嘗試獲取用戶。
uj5u.com熱心網友回復:
你也可以使用while回圈
while($true){
$User = Read-Host "Username?"
Get-ADUser $User -Properties "DisplayName","msDS-UserPasswordExpiryTimeComputed" | Select-Object -Property "Displayname", @{Name = "ExpiryDate"; Expression = {[datetime]::FromFileTime($_."msDS-UserPasswordExpiryTimeComputed")}}
if($User -eq "q!"){
break
}
}
退出while回圈輸入“q!” 代替用戶
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/428282.html
標籤:电源外壳
上一篇:PowerShell-排除Select-String上的文本
下一篇:將變數傳遞給下標
