2017-07-25 59 views
1

我有一個腳本在AD禁用用戶提供了以下步驟:PowerShell腳本與錯誤第一次運行,但正確地第二次或第三次

  • 詢問用戶名
  • 組「域用戶」基團如主組
  • 在AD禁用用戶
  • 移動到禁用OU
  • 從AD明確管理器
  • 刪除除「域用戶的所有組「
  • 從exchande列表

添加disabled_mailboxes用戶

  • 隱藏帳戶現在,當我嘗試第一次這是行不通的。我必須像2 3和4次運行它幾次才能工作。

    當我運行它一步一步,它做工精細也是從第一次

    這裏是腳本:

    $username = Read-Host -Prompt 'Enter Username' 
    Add-PSSnapin Microsoft.Exchange.Management.PowerShell.E2010 
    Import-Module ActiveDirectory 
    
    $user = Get-ADUser -Filter {(SamAccountName -eq $username)} -Properties MemberOf 
    
    #set "domain users" group as primary group 
    $group = get-adgroup "Domain Users" -properties @("primaryGroupToken") 
    get-aduser $username | set-aduser -replace @{primaryGroupID=$group.primaryGroupToken} 
    
    #disable users in AD 
    Get-ADUser -Filter {(SamAccountName -eq $username)} | Disable-ADAccount -ErrorAction SilentlyContinue 
    
    #move to disabled OU 
    Get-ADUser -Filter {(SamAccountName -eq $username)} | Move-ADObject –TargetPath 「OU=Users,OU=Disabled Objects,DC=xxxxxxx,DC=xxx,DC=XXX」 
    
    #clear Manager from AD 
    Get-ADUser -Filter {(SamAccountName -eq $username)} | Set-ADUser -Clear manager 
    
    #------------------------- 
    
    
    
    #remove all groups except 'domain users' 
    Get-ADPrincipalGroupMembership -Identity $username | % {Remove-ADPrincipalGroupMembership -Identity $username -MemberOf $_ -Confirm:$false -ErrorAction SilentlyContinue} 
    
    #code can be removed. 
    #$group = $user | Select-Object -ExpandProperty MemberOf 
    #Remove-ADGroupMember -Identity $group -Members $user.SamAccountName -Confirm:$false -ErrorAction SilentlyContinue 
    
    #------------------------- 
    
    
    #Add disabled_mailboxes to the user 
    Add-ADGroupMember -Identity 'disabled_mailboxes' -Member $User.SamAccountName -ErrorAction SilentlyContinue 
    #------------------------- 
    
    
    #Hide account from exchande list 
    Set-Mailbox -identity $user.SamAccountName -HiddenFromAddressListsEnabled $true -ErrorAction SilentlyContinue 
    

    的Windows 2012R2,Exchange 2010中

    任何人都可以有幫助那???

    感謝

    米娜

  • +2

    看到類似的東西,我認爲這可能是複製問題,稍後再看,你能否將錯誤添加到問題中?確保ErrorAction設置爲「繼續」而不是「SilentlyContinue」,這將抑制錯誤 – SteloNLD

    回答

    0

    不要在連續線使用Get-ADUser反覆。只需使用您剛剛填入值的現有$user變量即可。在運行Move-ADObject(這會更改用戶的DN)之後,很可能您遇到Get-ADUser返回DN的舊緩存值的問題,並且由於所有查詢都使用DN來查找用戶,因此會出現該錯誤。第二次運行的目標用戶已經在目標OU中,因此不會出現錯誤。

    +0

    非常感謝。我現在用一個用戶測試過,看起來很有前途。我會繼續測試更多。 –

    相關問題