Question
Suppression groupe AD en masse
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 11 ans 10 mois #17534
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Suppression groupe AD en masse
ANTRI Mohamed écrit:
Je ne dirais pas ça comme ça, mais plutôt 'avec la configuration par défaut' (prérequis implicite).[code:1]
import-module Activedirectory
#Plus nécessaire à partir de powershell v4
[/code:1]
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- ANTRI Mohamed
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 124
- Remerciements reçus 0
il y a 11 ans 10 mois #17535
par ANTRI Mohamed
Réponse de ANTRI Mohamed sur le sujet Re:Suppression groupe AD en masse
Hello,
Je voulais sous-entendre qu'à partir de powershell v4 et si les prérequis sont bien présent alors à ce moment là si nous entrons une cmdlet correspondant au module AD, celui-ci est alors chargé automatiquement !
Je voulais sous-entendre qu'à partir de powershell v4 et si les prérequis sont bien présent alors à ce moment là si nous entrons une cmdlet correspondant au module AD, celui-ci est alors chargé automatiquement !
Connexion ou Créer un compte pour participer à la conversation.
- Thibulaire
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 16
- Remerciements reçus 0
il y a 11 ans 9 mois #17536
par Thibulaire
Réponse de Thibulaire sur le sujet Re:Suppression groupe AD en masse
Bon J'ai testé avec ce petit bout de code,
j'ai bien le samaccountname de mon fichier texte en vert avec un ok à la fin.
J'ai essayé de couper le code en 2 parties en vérifiant que ma variable a supprimer contient bien le DistinguishedName mais sans succès.
[code:1]import-module Activedirectory
#importation de la liste.
$list = gc C:\temp\grp.txt
#Parcours de la liste afin de récupérer chaque groupe
foreach($item in $list)
{
Get-AdGroup $item | select -expandproperty distinguishedname |Out-file \"C:\temp\grp_supp.txt\"
}
$list_supp= gc c:\temp\grp_supp.txt
foreach($item in $list_supp)
{
echo $item
dsrm $item
}[/code:1]
Hmm après reflexion, il est possible que ce soit un problème de droit car en ré-essayant la commande dsrm avec un DistinguishedName en dur, j'ai eu le droit à un beau message d'erreur
\"dsrm.exe : dsrm échec:CN=G_KSC23B01_P3ACT_L:Aucune référence supérieure n'a été configurée pour le service de répertoire. Le service de répertoire est par conséquent incapable d'émettre des références aux objets en dehors de cette forêt.\"
Si je comprend bien je ne serais pas dans la même forêt que ce groupe ?
Alors que pourtant c'est le cas, je réessaye depuis un DC.<br><br>Message édité par: Thibulaire, à: 23/05/14 11:07
j'ai bien le samaccountname de mon fichier texte en vert avec un ok à la fin.
J'ai essayé de couper le code en 2 parties en vérifiant que ma variable a supprimer contient bien le DistinguishedName mais sans succès.
[code:1]import-module Activedirectory
#importation de la liste.
$list = gc C:\temp\grp.txt
#Parcours de la liste afin de récupérer chaque groupe
foreach($item in $list)
{
Get-AdGroup $item | select -expandproperty distinguishedname |Out-file \"C:\temp\grp_supp.txt\"
}
$list_supp= gc c:\temp\grp_supp.txt
foreach($item in $list_supp)
{
echo $item
dsrm $item
}[/code:1]
Hmm après reflexion, il est possible que ce soit un problème de droit car en ré-essayant la commande dsrm avec un DistinguishedName en dur, j'ai eu le droit à un beau message d'erreur
\"dsrm.exe : dsrm échec:CN=G_KSC23B01_P3ACT_L:Aucune référence supérieure n'a été configurée pour le service de répertoire. Le service de répertoire est par conséquent incapable d'émettre des références aux objets en dehors de cette forêt.\"
Si je comprend bien je ne serais pas dans la même forêt que ce groupe ?
Alors que pourtant c'est le cas, je réessaye depuis un DC.<br><br>Message édité par: Thibulaire, à: 23/05/14 11:07
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 11 ans 9 mois #17537
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Suppression groupe AD en masse
ANTRI Mohamed écrit:
Maintenant le deuxième effet, de bord cette fois:
[code:1]
cd c:\temp
md c:\temp\A\modules\module1
md c:\temp\B\modules\module2
@'
function Set-System {
write-host \"Module1.Set-System : ajoute un composant\"
}
'@ > c:\temp\A\modules\module1\module1.psm1
@'
function Set-System {
write-host \"Module2.Set-System : supprime un composant\"
}
'@ > c:\temp\B\modules\module2\module2.psm1
$oldpath=$env:«»PSModulePath
$env:«»PSModulePath +=\";C:\temp\A\modules;C:\temp\B\modules\"
Set-System
#call module1
'Module1'| remove-module
$env:«»PSModulePath =\"$oldpath;C:\temp\B\modules;C:\temp\A\modules\"
Set-System
#call module2
'Module2'| remove-module
[/code:1]
Là où un classique appel 'Import-Module MonModule' simplifie la chose.
(Pat, désolé du HS.)
Certes.celui-ci est alors chargé automatiquement !
Maintenant le deuxième effet, de bord cette fois:
[code:1]
cd c:\temp
md c:\temp\A\modules\module1
md c:\temp\B\modules\module2
@'
function Set-System {
write-host \"Module1.Set-System : ajoute un composant\"
}
'@ > c:\temp\A\modules\module1\module1.psm1
@'
function Set-System {
write-host \"Module2.Set-System : supprime un composant\"
}
'@ > c:\temp\B\modules\module2\module2.psm1
$oldpath=$env:«»PSModulePath
$env:«»PSModulePath +=\";C:\temp\A\modules;C:\temp\B\modules\"
Set-System
#call module1
'Module1'| remove-module
$env:«»PSModulePath =\"$oldpath;C:\temp\B\modules;C:\temp\A\modules\"
Set-System
#call module2
'Module2'| remove-module
[/code:1]
Là où un classique appel 'Import-Module MonModule' simplifie la chose.
(Pat, désolé du HS.)
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- Thibulaire
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 16
- Remerciements reçus 0
il y a 11 ans 9 mois #17538
par Thibulaire
Réponse de Thibulaire sur le sujet Re:Suppression groupe AD en masse
Pas de souci pour le HS, je le suis quand même, j'apprend des choses, mais malheureusement la question pour moi ne se pose pas car mon entreprise me condamne à powershell V1 et parfois V2 sur quelques uns de nos 2012R2 fraichement migrés.
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 11 ans 9 mois #17539
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Suppression groupe AD en masse
La v2 je peux comprendre, mais la V1 est vraiment limitée 
Pour en revenir à ton pb ton code PS fait ce que tu lui demandes. En passant sache que la mise à jour d'un poste ne génère pas de notification.
Au cas où, pour tes tests tu peux générer les appels DSRM ainsi :
[code:1]
import-module Activedirectory
gc C:\temp\grp.txt|
Get-AdGroup |
select -expandproperty distinguishedname
foreach {
echo \"dsrm $_\"
}[/code:1]
ce qui te permettra de vérifier différents cas d'erreur en dehors du code PS.
Pour en revenir à ton pb ton code PS fait ce que tu lui demandes. En passant sache que la mise à jour d'un poste ne génère pas de notification.
Au cas où, pour tes tests tu peux générer les appels DSRM ainsi :
[code:1]
import-module Activedirectory
gc C:\temp\grp.txt|
Get-AdGroup |
select -expandproperty distinguishedname
foreach {
echo \"dsrm $_\"
}[/code:1]
ce qui te permettra de vérifier différents cas d'erreur en dehors du code PS.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.049 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Suppression groupe AD en masse