none
rename and move AD account RRS feed

Réponses

  • Bonjour, ci-dessous un truc plus simple:

    import-module activedirectory
    $DaysInactive = 90
    $time = (Get-Date).Adddays(-($DaysInactive))
    $DisabledAccounts = Get-ADUser -Filter {enabled -eq $false} -SearchBase "OU=Disabled Accounts,DC=domain,DC=lan" -Properties extensionattribute4 | 
        Where-Object{$time -ge $_.extensionattribute4}

    ForEach ($account in $DisabledAccounts) {
    Remove-ADObject -Identity $account.distinguishedName
    }

    Je vous ai rajouté la variable "$Days Inactive" pour que vous pussiez désactiver les comptes non utilisez depuis X jours.

    Après je vous laisse adapter selon votre besoin.

    Cordialement.


    mardi 5 mars 2019 13:29
  • Si vous voulez supprimer des comptes déja désactivés dans une OU il suffit d'utiliser search-adaccount :

    Search-ADAccount -searchbase "OU=OU-Utilisateurs,DC=domaine,DC=local" -AccountDisabled  | Remove-ADObject

    Pour les comtpes expiré utilisé

    Search-ADAccount -AccountExpired 

    Pour ne pas avoir de confirmation pour la suppression il suffit de mette -confirm:$False dans le remove-adobject

    Attention si vous utilisez Exchanges les boites de ressources utilise des comptes désactivés dans l'AD.

    Si vous n'avez pas activé la corbeille AD il est recommandé de le faire. 

    mardi 5 mars 2019 15:00
  • Bonjour,comme vu plus haut il suffit d'ajouter les éléments ci-dessous à votre scripts et d'ajouter un where-object.:

    $DaysInactive = 180
    $time = (Get-Date).Adddays(-($DaysInactive))

    Cordialement.

    jeudi 7 mars 2019 09:52
  • Si tu veux les comptes qui ont expiré il il a plus de 60 jours par exemple :

    Search-ADAccount -AccountExpired -UsersOnly | where { $_.AccountExpirationDate -lt (get-date).adddays(-60) }

    UsersOnly : juste les utilisateurs

    ComputerOnly : juste les ordi

    Rien : le deux

    Ajouté | Remove-ADObject pour supprimer les comptes.

    Sinon tu peux changer le nombre  de jour




    jeudi 7 mars 2019 12:48

Toutes les réponses

  • Bonjour

    et merci pour votre retour .

    stp je vois pas comment convertir ce script en mode write host read host c'est dire 

    le script demande le path du fichier .txt 

    le script demande le domaine concerner et

    le script demande une validation pour la suprission "étes vous sur de vouloir suprimer ? yes/no???

    exemple :

     {


    $PathCSVusers = Read-host "Please kindly enter CSVpath of users list"
    $pathcsvGrpName = Read-Host "Please kindly enter CSVpath of the groups list "

    $userlist = Import-CSV $PathCSVusers
    $groupslist = Import-CSV $PathCSVGrpName

    foreach ($group in $groupslist)
    {
    $GroupName = $Group.Grouplist

    foreach ($user in $userlist)
    {
    $Samaccountname = $user.UserName
    Try
    {
    ADD-ADGroupmember -Identity $GroupName -Members $Samaccountname
    Write-Host -Fore 'green' "$(TimeTaging) - User $($Samaccountname) added successfully in group $($GroupName)"
    Add-Content $Logfile "$(TimeTaging) - User $($Samaccountname) added successfully in group $($GroupName)"
    }
    catch
    {
    $ErrorMessage = $_.Exception.Message
    Write-Host -Fore 'red' "$(TimeTaging) - Can't add User $($Samaccountname) in group $($GroupName) due to $($ErrorMessage)"
    Add-Content $Logfile "$(TimeTaging) - Can't add User $($Samaccountname) in group $($GroupName) due to $($ErrorMessage)"
    }
    }
    }



    mardi 5 mars 2019 12:54
  • Bonjour, ci-dessous un truc plus simple:

    import-module activedirectory
    $DaysInactive = 90
    $time = (Get-Date).Adddays(-($DaysInactive))
    $DisabledAccounts = Get-ADUser -Filter {enabled -eq $false} -SearchBase "OU=Disabled Accounts,DC=domain,DC=lan" -Properties extensionattribute4 | 
        Where-Object{$time -ge $_.extensionattribute4}

    ForEach ($account in $DisabledAccounts) {
    Remove-ADObject -Identity $account.distinguishedName
    }

    Je vous ai rajouté la variable "$Days Inactive" pour que vous pussiez désactiver les comptes non utilisez depuis X jours.

    Après je vous laisse adapter selon votre besoin.

    Cordialement.


    mardi 5 mars 2019 13:29
  • Si vous voulez supprimer des comptes déja désactivés dans une OU il suffit d'utiliser search-adaccount :

    Search-ADAccount -searchbase "OU=OU-Utilisateurs,DC=domaine,DC=local" -AccountDisabled  | Remove-ADObject

    Pour les comtpes expiré utilisé

    Search-ADAccount -AccountExpired 

    Pour ne pas avoir de confirmation pour la suppression il suffit de mette -confirm:$False dans le remove-adobject

    Attention si vous utilisez Exchanges les boites de ressources utilise des comptes désactivés dans l'AD.

    Si vous n'avez pas activé la corbeille AD il est recommandé de le faire. 

    mardi 5 mars 2019 15:00
  • ça c'est top merci bcp  stp pouvons nous définir date d expiration 

    en autre terme chercher les compte expiré depuis 6 mois par exemple 

    jeudi 7 mars 2019 08:26
  • Bonjour,comme vu plus haut il suffit d'ajouter les éléments ci-dessous à votre scripts et d'ajouter un where-object.:

    $DaysInactive = 180
    $time = (Get-Date).Adddays(-($DaysInactive))

    Cordialement.

    jeudi 7 mars 2019 09:52
  • Si tu veux les comptes qui ont expiré il il a plus de 60 jours par exemple :

    Search-ADAccount -AccountExpired -UsersOnly | where { $_.AccountExpirationDate -lt (get-date).adddays(-60) }

    UsersOnly : juste les utilisateurs

    ComputerOnly : juste les ordi

    Rien : le deux

    Ajouté | Remove-ADObject pour supprimer les comptes.

    Sinon tu peux changer le nombre  de jour




    jeudi 7 mars 2019 12:48