Meilleur auteur de réponses
rename and move AD account

Question
-
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.
- Modifié Franck Fouché mardi 5 mars 2019 13:59
- Marqué comme réponse marouane_ghost jeudi 7 mars 2019 13:39
-
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.
- Marqué comme réponse marouane_ghost jeudi 7 mars 2019 13:39
-
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.
- Marqué comme réponse marouane_ghost jeudi 7 mars 2019 13:39
-
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
- Modifié Philippe BarthMVP jeudi 7 mars 2019 12:57
- Marqué comme réponse marouane_ghost jeudi 7 mars 2019 13:39
Toutes les réponses
-
Bonjour, ci-dessous un lien sur le technet:
https://gallery.technet.microsoft.com/scriptcenter/Powershell-Script-to-24253e79
Cordialement.
-
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)"
}
}
}
- Modifié marouane_ghost mardi 5 mars 2019 13:11
- Marqué comme réponse marouane_ghost jeudi 7 mars 2019 13:39
- Non marqué comme réponse marouane_ghost jeudi 7 mars 2019 13:39
-
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.
- Modifié Franck Fouché mardi 5 mars 2019 13:59
- Marqué comme réponse marouane_ghost jeudi 7 mars 2019 13:39
-
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.
- Marqué comme réponse marouane_ghost jeudi 7 mars 2019 13:39
-
ç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
- Marqué comme réponse marouane_ghost jeudi 7 mars 2019 13:39
- Non marqué comme réponse marouane_ghost jeudi 7 mars 2019 13:40
-
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.
- Marqué comme réponse marouane_ghost jeudi 7 mars 2019 13:39
-
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
- Modifié Philippe BarthMVP jeudi 7 mars 2019 12:57
- Marqué comme réponse marouane_ghost jeudi 7 mars 2019 13:39