Question Récupérer users inactifs

Plus d'informations
il y a 11 ans 4 mois #18807 par Dupont
Réponse de Dupont sur le sujet Re:Récupérer users inactifs
J'ai creusé pour le snap in , j'ai maintenant les cmdlets Get-QAD qui me facilitent franchement la vie , merci du tuyau :)

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 4 mois #18808 par Philippe
Réponse de Philippe sur le sujet Re:Récupérer users inactifs
salut KaAzZ01

Dommage je venais de trouvé le temps de te faire le code :
[code:1]$objD = New-Object System.DirectoryServices.DirectorySearcher
$objD.Filter = \"(&(objectCategory=User)((userAccountControl:1.2.840.113556.1.4.803:=2)))\"
$colProplist = \"name\", \"SamAccountName\", \"lastLogonTimestamp\"
$colPropList | foreach {$objD.PropertiesToLoad.Add($_) | out-null}
$person = $objD.FindAll()

$jours = (Get-Date).AddDays(-365) # date butoire d'inactif


$person | select-object @{e={$_.properties.samaccountname};n='samaccountname'},
@{e={$_.properties.name};n='name'},
@{e={$([datetime]\"01/01/1601\"«»).AddTicks($($_.properties.lastlogontimestamp))};n='lastlogontimestamp'} |
where {$_.lastlogontimestamp -lt $jours} | Format-Table

# is tu ne doit pas gère les utilisateurs sans date prendre la boucle si dessous
$person | select-object @{e={$_.properties.samaccountname};n='samaccountname'},
@{e={$_.properties.name};n='name'},
@{e={$([datetime]\"01/01/1601\"«»).AddTicks($($_.properties.lastlogontimestamp))};n='lastlogontimestamp'} |
where {$_.lastlogontimestamp -lt $jours -and $_.lastlogontimestamp -ne $null} |
export-csv C:\Projet\InactiveAccount.Csv
[/code:1]

pour un autre peut être

Message édité par: 6ratgus, à: 21/01/15 11:15<br><br>Message édité par: 6ratgus, à: 21/01/15 11:16

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 4 mois #18809 par Dupont
Réponse de Dupont sur le sujet Re:Récupérer users inactifs
Merci de t'être donné du mal ca me touche ^^
Mais quand je vois une syntaxe comme ça c'est la que je vénère les cmdlets Get-QAD

Le truc c'est que je suis toujours un peu bloqué sur la date , j'arrive pas à la selectionner pour la comparer ensuite ( je vais voir le script en haut si j'arrive à m'en servir mdr )
[code:1]
$OU = \&quot;AD2003.lo/Test\&quot; #Mettre AD et OU des utilisateurs à extraire
$OU2 = \&quot;AD2003.lo/Users\&quot;
$date = \&quot;21/01/2015\&quot; #Format à changer

$disableAccounts = Get-QADUser -disabled -SearchRoot $OU2
echo $disableAccounts
Write-Host \&quot;Ces utilisateurs seront transférés dans le fichier C:\Projet\disableAccounts.Csv \&quot;
$disableAccounts &gt; C:\Projet\disableAccounts.Csv

#Comptes inactifs à prendre
$inactiveAccounts = Get-QADUser -SearchRoot $OU2 | select lastLogon

if ( $inactiveAccounts -lt $date ) #Condition à corriger sinon le reste est bon
{
Write-Host \&quot;Les utilisateurs ne s'étant pas connectés avant le :\&quot;$date \&quot;seront considérés comme inactifs\&quot;
$inactiveAccounts2 = Get-QADUser -SearchRoot $OU2 | select SamAccountName,lastLogon,CN
$inactiveAccounts2 &gt; C:\Projet\inactiveAccounts.Csv
}
else
{
Write-Host \&quot;Les autres seront gardés pour le transfert dans C:\Projet\DomainUsers.Csv \&quot;
$user &gt; C:\Projet\DomainUsers.Csv
}
[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 4 mois #18810 par Philippe
Réponse de Philippe sur le sujet Re:Récupérer users inactifs

Le truc c'est que je suis toujours un peu bloqué sur la date , j'arrive pas à la selectionner pour la comparer ensuite ( je vais voir le script en haut si j'arrive à m'en servir mdr )

tu a cette option sur get-QADUser :

-AccountExpiresBefore &lt;DateTime&gt;

Retrieve user accounts that are configured to expire before a certain date. Parameter value is a DateTime object that specifies the date you want.


un exemple
[code:1]
$jours = (Get-Date).AddDays(-365) # date butoire d'inactif

Get-QADUser -disabled -SearchRoot $OU2 -AccountExpiresBefore $jours
[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 4 mois #18811 par Dupont
Réponse de Dupont sur le sujet Re:Récupérer users inactifs
J'ai trouvé :)

[code:1]
$OU = \&quot;AD2003.lo/Test\&quot; #Mettre AD et OU des utilisateurs à extraire
$OU2 = \&quot;AD2003.lo/Users\&quot;
$date = (Get-Date).AddDays(-3) #Format à changer

$disableAccounts = Get-QADUser -disabled -SearchRoot $OU2
echo $disableAccounts
Write-Host \&quot;Ces utilisateurs seront transférés dans le fichier C:\Projet\disableAccounts.Csv \&quot;
$disableAccounts &gt; C:\Projet\disableAccounts.Csv

#Comptes inactifs à prendre
$users = Get-QADUser -SearchRoot $OU | select SamaccountName,lastLogon,DN

if ( $_.lastLogon -gt $date ) #Condition à corriger sinon le reste est bon
{
Write-Host \&quot;Les utilisateurs ne s'étant pas connectés avant le :\&quot;$date \&quot;seront considérés comme inactifs\&quot;
$users &gt; C:\Projet\inactiveAccounts.Csv
}
elseif ($_.lastLogon -lt $date)
{
Write-Host \&quot;Les autres seront gardés pour le transfert dans C:\Projet\DomainUsers.Csv \&quot;
$users &gt; C:\Projet\DomainUsers.Csv
}
[/code:1]

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 11 ans 4 mois #18812 par Philippe
Réponse de Philippe sur le sujet Re:Récupérer users inactifs
desoler je me suis trompé avec l'option accountexpirebefore :blush:

a partir de ton script une facon simple de faire :

[code:1]
$OU = \&quot;AD2003.lo/Test\&quot; #Mettre AD et OU des utilisateurs à extraire
$OU2 = \&quot;AD2003.lo/Users\&quot;
$jour = (Get-Date).AddDays(-365) # date butoire d'inactif

# Tous les utilisateurs desactivés
$disableAccounts = Get-QADUser -disabled -SearchRoot $OU2
$disableAccounts
Write-Host \&quot;Ces utilisateurs seront transférés dans le fichier C:\Projet\disableAccounts.Csv \&quot;
$disableAccounts | export-csv \&quot;C:\Projet\disableAccounts.Csv\&quot;

#Comptes inactifs à prendre
$inactiveAccounts = Get-QADUser -SearchRoot $OU2 | select lastLogon

# Tous les utilisateurs inactifs depuis $jour
Write-Host \&quot;Les utilisateurs ne s'étant pas connectés avant le :\&quot;$jour \&quot;seront considérés comme inactifs\&quot;
$inactiveAccounts2 = Get-QADUser -enabled -SearchRoot $OU2 | Select SamAccountName,lastLogonTimestamp,CN | where {$_.lastlogontimestamp -lt $jour} | select SamAccountName,lastLogonTimestamp,CN
$inactiveAccounts2 | export-csv \&quot;C:\Projet\inactiveAccounts.Csv\&quot;

# Tous les utilisateurs actifs
Write-Host \&quot;Les autres seront gardés pour le transfert dans C:\Projet\DomainUsers.Csv \&quot;
$user = Get-QADUser -enabled -SearchRoot $OU2 | select SamAccountName,lastLogon,CN
$user | export-csv \&quot;C:\Projet\DomainUsers.Csv\&quot;

[/code:1]

le if t'oblige a faire une boucle inutile<br><br>Message édité par: 6ratgus, à: 21/01/15 15:40

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.038 secondes
Propulsé par Kunena