Question
Désactiver un Compte Ordinateur AD (Résolu)
- LIEFOOGHE
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 12
- Remerciements reçus 0
il y a 17 ans 10 mois #2248
par LIEFOOGHE
Christophe LIEFOOGHE
SUPINFO Student
www.reseau-dev.fr
Désactiver un Compte Ordinateur AD (Résolu) a été créé par LIEFOOGHE
Bonjour à tous,
Suite à mon poste précédent, j'ai réussi à récupérer les ordinateurs obsolètes de l'AD. Mon problème est le suivant :
J'ai 1000 ordinateurs obsolètes et j'ai peur de les supprimer, je souhaiterais donc les désactiver dans un premier temps. J'ai donc recherché l'attribut correspondant aux ordinateurs désactivé et j'ai trouvé que c'était le même que pour les utilisateurs.
J'ai donc testé plusieurs scripts pour activer un compte ou inversement mais sans succès.
Voici mon Script :
[code:1]$objComputer=[ADSI]'LDAP://CN=PCtest,OU=Ordinateurs, OU=Lille,DC=AD,DC=FR'
$objComputer.userAccountControl[0] = $objComputer.userAccountControl[0] -band (-bnot 2)
$objComputer.SetInfo()
$computer | fl *[/code:1]
Merci d'avance
Cordialement,
ZeuX
Message édité par: ZeuX, à: 23/04/08 15:51<br><br>Message édité par: Arnaud, à: 29/04/08 14:14
Suite à mon poste précédent, j'ai réussi à récupérer les ordinateurs obsolètes de l'AD. Mon problème est le suivant :
J'ai 1000 ordinateurs obsolètes et j'ai peur de les supprimer, je souhaiterais donc les désactiver dans un premier temps. J'ai donc recherché l'attribut correspondant aux ordinateurs désactivé et j'ai trouvé que c'était le même que pour les utilisateurs.
J'ai donc testé plusieurs scripts pour activer un compte ou inversement mais sans succès.
Voici mon Script :
[code:1]$objComputer=[ADSI]'LDAP://CN=PCtest,OU=Ordinateurs, OU=Lille,DC=AD,DC=FR'
$objComputer.userAccountControl[0] = $objComputer.userAccountControl[0] -band (-bnot 2)
$objComputer.SetInfo()
$computer | fl *[/code:1]
Merci d'avance
Cordialement,
ZeuX
Message édité par: ZeuX, à: 23/04/08 15:51<br><br>Message édité par: Arnaud, à: 29/04/08 14:14
Christophe LIEFOOGHE
SUPINFO Student
www.reseau-dev.fr
Connexion ou Créer un compte pour participer à la conversation.
- LIEFOOGHE
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 12
- Remerciements reçus 0
il y a 17 ans 10 mois #2251
par LIEFOOGHE
Christophe LIEFOOGHE
SUPINFO Student
www.reseau-dev.fr
Réponse de LIEFOOGHE sur le sujet Re:Désactiver un Compte Ordinateur AD
Salut à tous
J'ai résolu mon problème avec le script suivant :
[code:1]#Paramètre pour desactiver le compte
$objComputer.psbase.InvokeSet('AccountDisabled',$True)
$objComputer.psbase.InvokeSet('description',\"Compte desactivé\"«»)
$objComputer.psbase.CommitChanges()[/code:1]
Mon problème est le suivant désormais, je souhaite désactiver plusieurs comptes via mon script (logique pour un script), mais je n'y arrive pas.
Je n'arrive pas à récupérer les paramètres de mon fichier CSV, voici le code :
[code:1]param(
[string]$fichier=$(throw 'Veuillez faire appel au script via le fichier CN avec l extension csv')
)
$objComputer=[ADSI]\"LDAP://CN=$CN,OU=Ordinateurs, OU=Lille,DC=AD,DC=FR\"
$computers = Import-Csv $fichier
foreach ($computer in $computers)
{
$CN=$($computer.CN)
$CN
#$objComputer.psbase.InvokeSet('AccountDisabled',$True)
#$objComputer.psbase.InvokeSet('description',\"Compte desactivé\"«»)
#\"$objComputer.psbase.CommitChanges(
}[/code:1]
Et voici mon fichier csv :
[code:1]
CN,Description
test1,
test2,
test3,
test4,
[/code:1]
Si quelqu'un a une idée car je n'arrive pas à assigner à la variable $CN mes valeurs présenter dans le fichier csv.
Merci d'avance
ZeuX<br><br>Message édité par: ZeuX, à: 24/04/08 11:18
J'ai résolu mon problème avec le script suivant :
[code:1]#Paramètre pour desactiver le compte
$objComputer.psbase.InvokeSet('AccountDisabled',$True)
$objComputer.psbase.InvokeSet('description',\"Compte desactivé\"«»)
$objComputer.psbase.CommitChanges()[/code:1]
Mon problème est le suivant désormais, je souhaite désactiver plusieurs comptes via mon script (logique pour un script), mais je n'y arrive pas.
Je n'arrive pas à récupérer les paramètres de mon fichier CSV, voici le code :
[code:1]param(
[string]$fichier=$(throw 'Veuillez faire appel au script via le fichier CN avec l extension csv')
)
$objComputer=[ADSI]\"LDAP://CN=$CN,OU=Ordinateurs, OU=Lille,DC=AD,DC=FR\"
$computers = Import-Csv $fichier
foreach ($computer in $computers)
{
$CN=$($computer.CN)
$CN
#$objComputer.psbase.InvokeSet('AccountDisabled',$True)
#$objComputer.psbase.InvokeSet('description',\"Compte desactivé\"«»)
#\"$objComputer.psbase.CommitChanges(
}[/code:1]
Et voici mon fichier csv :
[code:1]
CN,Description
test1,
test2,
test3,
test4,
[/code:1]
Si quelqu'un a une idée car je n'arrive pas à assigner à la variable $CN mes valeurs présenter dans le fichier csv.
Merci d'avance
ZeuX<br><br>Message édité par: ZeuX, à: 24/04/08 11:18
Christophe LIEFOOGHE
SUPINFO Student
www.reseau-dev.fr
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 10 mois #2252
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Désactiver un Compte Ordinateur AD
Salut,
si j'utilise ce code[code:1]
# se placer dans le répertoire contenant le fichier csv
$fichier=\"t.csv\"
$computers = Import-Csv $fichier
foreach ($computer in $computers) { $CN=$computer.CN; $CN}[/code:1]
cela fonctionne sans pb.
Quel est le msg d'erreur ?
Le nom de fichier contient-il des espaces ?
C'est bien un script qu tu utilises ?
si j'utilise ce code[code:1]
# se placer dans le répertoire contenant le fichier csv
$fichier=\"t.csv\"
$computers = Import-Csv $fichier
foreach ($computer in $computers) { $CN=$computer.CN; $CN}[/code:1]
cela fonctionne sans pb.
Quel est le msg d'erreur ?
Le nom de fichier contient-il des espaces ?
C'est bien un script qu tu utilises ?
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- LIEFOOGHE
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 12
- Remerciements reçus 0
il y a 17 ans 10 mois #2255
par LIEFOOGHE
Christophe LIEFOOGHE
SUPINFO Student
www.reseau-dev.fr
Réponse de LIEFOOGHE sur le sujet Re:Désactiver un Compte Ordinateur AD
Merci bien,
J'ai résolu mon problème en déclarant une variable pointant vers mon fichier
[code:1]$PCs= Import-Csv C:\script\DisableComputerAccount\PC.csv[/code:1]
Le problème que j'ai maintenant c'est avec la notion de variable globale et locale.
Voici la partie qui me pose problème :
[code:1]
$objComputer=[ADSI]\"LDAP://CN=$CN,OU=Ordinateurs, OU=Lille,DC=AD,DC=FR\"
$PCs= Import-Csv C:\script\DisableComputerAccount\PC.csv
foreach ($PC in $PCs)
{
$CN = $PC.PC
$CN
$objComputer | fl *
}
[/code:1]
Ma variable CN est bien modifié dans ma boucle, mais pas dans mon $objComputer.
[code:1]
test1
objectClass : {top, person, organizationalPerson, user...}
cn : {test4}
test2
objectClass : {top, person, organizationalPerson, user...}
cn : {test4}
...
[/code:1]
J'ai résolu mon problème en déclarant une variable pointant vers mon fichier
[code:1]$PCs= Import-Csv C:\script\DisableComputerAccount\PC.csv[/code:1]
Le problème que j'ai maintenant c'est avec la notion de variable globale et locale.
Voici la partie qui me pose problème :
[code:1]
$objComputer=[ADSI]\"LDAP://CN=$CN,OU=Ordinateurs, OU=Lille,DC=AD,DC=FR\"
$PCs= Import-Csv C:\script\DisableComputerAccount\PC.csv
foreach ($PC in $PCs)
{
$CN = $PC.PC
$CN
$objComputer | fl *
}
[/code:1]
Ma variable CN est bien modifié dans ma boucle, mais pas dans mon $objComputer.
[code:1]
test1
objectClass : {top, person, organizationalPerson, user...}
cn : {test4}
test2
objectClass : {top, person, organizationalPerson, user...}
cn : {test4}
...
[/code:1]
Christophe LIEFOOGHE
SUPINFO Student
www.reseau-dev.fr
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 10 mois #2256
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Désactiver un Compte Ordinateur AD
ZeuX écrit:
A moins de modifier une propriété de $objComputer puis d'appeler une méthode \"refresh\". J'ai regardé la classe de l'objet, System.DirectoryServices.DirectoryEntry , mais je n'ai rien trouvé qui semble répondre à ce besoin.
Si tu prends la 1er approche vérifie l'occupation mémoire pendant son éxécution si toutefois tu itéres sur + centaines d'objets.
je pense que tu dois créer un objet à chaque itération,car [ADSI] appel un constructeur.Ma variable CN est bien modifié dans ma boucle, mais pas dans mon $objComputer.
A moins de modifier une propriété de $objComputer puis d'appeler une méthode \"refresh\". J'ai regardé la classe de l'objet, System.DirectoryServices.DirectoryEntry , mais je n'ai rien trouvé qui semble répondre à ce besoin.
Si tu prends la 1er approche vérifie l'occupation mémoire pendant son éxécution si toutefois tu itéres sur + centaines d'objets.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- LIEFOOGHE
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 12
- Remerciements reçus 0
il y a 17 ans 10 mois #2275
par LIEFOOGHE
Christophe LIEFOOGHE
SUPINFO Student
www.reseau-dev.fr
Réponse de LIEFOOGHE sur le sujet Re:Désactiver un Compte Ordinateur AD
Merci bien,
Je fais appel à mon objet dans ma boucle et ca fonctionne désormais.<br><br>Message édité par: ZeuX, à: 28/04/08 19:20
Je fais appel à mon objet dans ma boucle et ca fonctionne désormais.<br><br>Message édité par: ZeuX, à: 28/04/08 19:20
Christophe LIEFOOGHE
SUPINFO Student
www.reseau-dev.fr
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.050 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Désactiver un Compte Ordinateur AD (Résolu)