Question
recherche compte désactivé.
- rodriguez
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 61
- Remerciements reçus 0
il y a 17 ans 4 mois #3070
par rodriguez
recherche compte désactivé. a été créé par rodriguez
Bonjour à tous,
je reviens avec un petit script qui sera ammené à grossir.
Pour le moment c'est pour trouver les comptes désactivés. Puis par la suite supprimer ces comptes, ainsi que leur répertoire perso.
Mais voila j'ai une erreur sur l'InvokeGet qui permet d'obetnier l'information si le compte est désactivé ou pas.
\"
$ldapquery = [ADSI] 'LDAP://OU=Users,OU=xx,OU=xx,OU=xx,DC=xx,DC=xx,DC=xx,DC=com'
$objrechercher = New-object system.directoryservices.directorysearcher($ldapQuery)
$objrechercher.filter='(&(objectClass=person)(objectCategory=person))'
$ldapquery
$boucle = $objrechercher.findall()
foreach ($user in $boucle)
{
$name = $user.properties.name
foreach ($utilisateur in $name)
{
$userfinal = New-Object DirectoryServices.DirectoryEntry(\"LDAP://cn=$utilisateur,OU=Users,OU=xx,OU=xx,OU=xx,DC=xx,DC=xx,DC=xxx,DC=xxx\")
if ($userfinal.psbase.InvokeGet('AccountDisabled') -eq 'True')
{
write-host $name
}
}
}
\"
Voici l'erreur :
\"Exception calling \"InvokeGet\" with \"1\" argument(s): \"Une syntaxe DN non valide a été spécifiée.
\"
Si vous voyez ou ca coince, merci !
je reviens avec un petit script qui sera ammené à grossir.
Pour le moment c'est pour trouver les comptes désactivés. Puis par la suite supprimer ces comptes, ainsi que leur répertoire perso.
Mais voila j'ai une erreur sur l'InvokeGet qui permet d'obetnier l'information si le compte est désactivé ou pas.
\"
$ldapquery = [ADSI] 'LDAP://OU=Users,OU=xx,OU=xx,OU=xx,DC=xx,DC=xx,DC=xx,DC=com'
$objrechercher = New-object system.directoryservices.directorysearcher($ldapQuery)
$objrechercher.filter='(&(objectClass=person)(objectCategory=person))'
$ldapquery
$boucle = $objrechercher.findall()
foreach ($user in $boucle)
{
$name = $user.properties.name
foreach ($utilisateur in $name)
{
$userfinal = New-Object DirectoryServices.DirectoryEntry(\"LDAP://cn=$utilisateur,OU=Users,OU=xx,OU=xx,OU=xx,DC=xx,DC=xx,DC=xxx,DC=xxx\")
if ($userfinal.psbase.InvokeGet('AccountDisabled') -eq 'True')
{
write-host $name
}
}
}
\"
Voici l'erreur :
\"Exception calling \"InvokeGet\" with \"1\" argument(s): \"Une syntaxe DN non valide a été spécifiée.
\"
Si vous voyez ou ca coince, merci !
Connexion ou Créer un compte pour participer à la conversation.
- Robin Lemesle
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 260
- Remerciements reçus 0
il y a 17 ans 4 mois #3087
par Robin Lemesle
Robin MVP PowerShell
Réponse de Robin Lemesle sur le sujet Re:recherche compte désactivé.
Salut noxydius,
Peux-tu nous en dire un peu plus sur le foreach imbriqué !!! pourquoi faire un foreach ($utilisateur in $name).
Peux-tu nous en dire un peu plus sur le foreach imbriqué !!! pourquoi faire un foreach ($utilisateur in $name).
Robin MVP PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- rodriguez
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 61
- Remerciements reçus 0
il y a 17 ans 4 mois #3090
par rodriguez
Réponse de rodriguez sur le sujet Re:recherche compte désactivé.
Bonjour,
Je pensais avoir besoin de la double boucle pour avoir les propriétés du CN User, en faisait un tri sur le nom.
Toutefois, même sans la deuxième boucle j'ai l'erreur:
\"Exception calling \"InvokeGet\" with \"1\" argument(s): \"Erreur inconnue (0x80005000)\"
voici mes modifs:
*************************
foreach ($user in $boucle)
{
$name = $user.properties.name
$lecteur = $user.properties.homedrive
$chemin = $user.properties.homedirectory
Write-Host $name
write-host $lecteur
Write-Host $chemin
if ($userfinal.psbase.InvokeGet('AccountDisabled') -eq 'True')
{
write-host $name
}
}
****************************
Je pensais avoir besoin de la double boucle pour avoir les propriétés du CN User, en faisait un tri sur le nom.
Toutefois, même sans la deuxième boucle j'ai l'erreur:
\"Exception calling \"InvokeGet\" with \"1\" argument(s): \"Erreur inconnue (0x80005000)\"
voici mes modifs:
*************************
foreach ($user in $boucle)
{
$name = $user.properties.name
$lecteur = $user.properties.homedrive
$chemin = $user.properties.homedirectory
Write-Host $name
write-host $lecteur
Write-Host $chemin
if ($userfinal.psbase.InvokeGet('AccountDisabled') -eq 'True')
{
write-host $name
}
}
****************************
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 17 ans 4 mois #3091
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:recherche compte désactivé.
noxydius écrit:
Par ailleurs les erreurs débutant par $8007xxxx sont des erreurs WIN32 et celles débutant par $8004xxxx des erreurs de WMI.
En recherchant sur le pattern \"0x80005000\" on tombe sur ceci : support.microsoft.com/kb/321210
Voir aussi :
msdn.microsoft.com/en-us/library/aa772195(VS.85).aspx
Message édité par: Laurent Dardenne, à: 28/10/08 10:39
ADSI s'appuie sur COM et l'erreur 0x80005.... est une erreur COM.\"Exception calling \"InvokeGet\" with \"1\" argument(s): \"Erreur inconnue (0x80005000)\"
Par ailleurs les erreurs débutant par $8007xxxx sont des erreurs WIN32 et celles débutant par $8004xxxx des erreurs de WMI.
En recherchant sur le pattern \"0x80005000\" on tombe sur ceci : support.microsoft.com/kb/321210
Maintenant reste à savoir si cela correspond à ton code.If you use Active Directory Services Interface (ADSI) to bind to an object by using the WinNT provider, you may receive error -2147463168 or 0x80005000 (E_ADS_BAD_PATHNAME).
Voir aussi :
msdn.microsoft.com/en-us/library/aa772195(VS.85).aspx
Message édité par: Laurent Dardenne, à: 28/10/08 10:39
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- rodriguez
- Auteur du sujet
- Hors Ligne
- Membre senior
-
Réduire
Plus d'informations
- Messages : 61
- Remerciements reçus 0
il y a 17 ans 4 mois #3094
par rodriguez
Réponse de rodriguez sur le sujet Re:recherche compte désactivé.
Bonjour Laurent,
je me suis trompé dans on script et j'ai donc donné une mauvaise piste.
ce n'est pas avec la variable userfinal:
\"if ($userfinal.psbase.InvokeGet('AccountDisabled') -eq 'True')\"
mais $User.
comme ceci:
foreach ($user in $boucle)
{
if($user.psbase.invokeget('AccountDisabled') -eq 'True')
{
$name = $user.properties.name
$lecteur = $user.properties.homedrive
$chemin = $user.properties.homedirectory
Write-Host $name
write-host $lecteur
Write-Host $chemin
}
}
Mais voila l'erreur change du tout au tout :
Method invocation failed because [System.Management.Automation.PSInternalMemberSet] doesn't contain a method named 'invokeget'.
Comme si invokeget n'existe pas.
je me suis trompé dans on script et j'ai donc donné une mauvaise piste.
ce n'est pas avec la variable userfinal:
\"if ($userfinal.psbase.InvokeGet('AccountDisabled') -eq 'True')\"
mais $User.
comme ceci:
foreach ($user in $boucle)
{
if($user.psbase.invokeget('AccountDisabled') -eq 'True')
{
$name = $user.properties.name
$lecteur = $user.properties.homedrive
$chemin = $user.properties.homedirectory
Write-Host $name
write-host $lecteur
Write-Host $chemin
}
}
Mais voila l'erreur change du tout au tout :
Method invocation failed because [System.Management.Automation.PSInternalMemberSet] doesn't contain a method named 'invokeget'.
Comme si invokeget n'existe pas.
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 17 ans 4 mois #3095
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:recherche compte désactivé.
noxydius écrit:
[code:1]$user.psbase|Gm
# et
$user|Gm[/code:1]
Pour le savoir :Comme si invokeget n'existe pas.
[code:1]$user.psbase|Gm
# et
$user|Gm[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.051 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- recherche compte désactivé.