Question
Renommage de groupe en masse
- Thibulaire
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 16
- Remerciements reçus 0
il y a 11 ans 8 mois #17821
par Thibulaire
Renommage de groupe en masse a été créé par Thibulaire
Bonjour à tous, alors voilà j'effectue un renommage de groupe en masse avec un script.
Les groupes ont tous une nomencalture précise de ce type : G_KSA23L22_TEST_E
et mon code ci-dessous répond globalement à mes attentes.
Il permet de modifier que la deuxième partie du nom du groupe (KSA23L22 qui est un nom de serveur)
[code:1]$grp2 = Read-host \"Entrez le nom du serveur (exemple : KSA23L30)\"
gc \"c:\temp\grpren.txt\" |%{
$grp1 = Get-AdGroup $_ | select -expandproperty samaccountname
$split = $grp1.split(\"_\")
$test = $split[0]+\"_\"+$grp2+\"_\"+$split[2]+\"_\"+$split[3]
$grp1 = Get-AdGroup $_ | select -expandproperty distinguishedname
Rename-Adobject -identity $grp1 -newname $test
$grp1 = Get-AdGroup $_ | select -expandproperty samaccountname
Set-Adgroup $grp1 -samaccountname $test
}[/code:1]
Le seul souci, c'est que parfois il y a des loupés dans les noms et que j'ai des groupes de ce type : G_KSA23L22_TEST-E ou G_KSA23L22-TEST-E.
Donc mon split ne peut plus ce faire uniquement sur des underscore.
D’où ma question est ce que je peux utiliser plusieurs caractères pour mon split en utilisant un or ou quelque chose comme ça.
D'avance merci.<br><br>Message édité par: Thibulaire, à: 11/07/14 12:02
Les groupes ont tous une nomencalture précise de ce type : G_KSA23L22_TEST_E
et mon code ci-dessous répond globalement à mes attentes.
Il permet de modifier que la deuxième partie du nom du groupe (KSA23L22 qui est un nom de serveur)
[code:1]$grp2 = Read-host \"Entrez le nom du serveur (exemple : KSA23L30)\"
gc \"c:\temp\grpren.txt\" |%{
$grp1 = Get-AdGroup $_ | select -expandproperty samaccountname
$split = $grp1.split(\"_\")
$test = $split[0]+\"_\"+$grp2+\"_\"+$split[2]+\"_\"+$split[3]
$grp1 = Get-AdGroup $_ | select -expandproperty distinguishedname
Rename-Adobject -identity $grp1 -newname $test
$grp1 = Get-AdGroup $_ | select -expandproperty samaccountname
Set-Adgroup $grp1 -samaccountname $test
}[/code:1]
Le seul souci, c'est que parfois il y a des loupés dans les noms et que j'ai des groupes de ce type : G_KSA23L22_TEST-E ou G_KSA23L22-TEST-E.
Donc mon split ne peut plus ce faire uniquement sur des underscore.
D’où ma question est ce que je peux utiliser plusieurs caractères pour mon split en utilisant un or ou quelque chose comme ça.
D'avance merci.<br><br>Message édité par: Thibulaire, à: 11/07/14 12:02
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 8 mois #17824
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:sous chaine de charactère
Thibulaire écrit:
La chaîne saisie doit-elle répondre à une norme ?
Une approche :
[code:1]
$old='G_KSA23L22_TEST'
$new='KSA52L44'
$old -replace '(.*?)_(.*?)_(.*)',\"`$1_${new}_`$3\"
[/code:1]
Mais sans le détail de la norme, difficile de proposer une solution.
Presque, l'exemple cité est identique.J’espère avoir été clair.
La chaîne saisie doit-elle répondre à une norme ?
Une approche :
[code:1]
$old='G_KSA23L22_TEST'
$new='KSA52L44'
$old -replace '(.*?)_(.*?)_(.*)',\"`$1_${new}_`$3\"
[/code:1]
Mais sans le détail de la norme, difficile de proposer une solution.
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 8 mois #17825
par Thibulaire
Réponse de Thibulaire sur le sujet Re:sous chaine de charactère
Merci Laurent pour ta réponse,
mais malheureusement mon problème à changer entre temps.
Je peux renommer les groupes avec la nomenclature spécifique j'ai juste rajouter des +\"_\"+
pour réafficher les underscore dans le nouveau nom du groupe.
En revanche je me demandais si il était possible d'utiliser plusieurs caractères pour le split avec un genre de $split = $grp1.split(\"_\") or (\"-\").<br><br>Message édité par: Thibulaire, à: 11/07/14 11:54
mais malheureusement mon problème à changer entre temps.
Je peux renommer les groupes avec la nomenclature spécifique j'ai juste rajouter des +\"_\"+
pour réafficher les underscore dans le nouveau nom du groupe.
En revanche je me demandais si il était possible d'utiliser plusieurs caractères pour le split avec un genre de $split = $grp1.split(\"_\") or (\"-\").<br><br>Message édité par: Thibulaire, à: 11/07/14 11:54
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 8 mois #17826
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:sous chaine de charactère
Thibulaire écrit:
[code:1]
'G_KSA23L22_TEST' -split '_|-'
'G-KSA23L22-TEST' -split '_|-'
'G-KSA23L22_TEST' -split '_|-'
[/code:1]
Avec l'opérateur -Split :En revanche je me demandais si il était possible d'utiliser plusieurs caractères pour le split avec un genre de $split = $grp1.split(\"_\") or (\"-\").
[code:1]
'G_KSA23L22_TEST' -split '_|-'
'G-KSA23L22-TEST' -split '_|-'
'G-KSA23L22_TEST' -split '_|-'
[/code:1]
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 8 mois #17828
par Thibulaire
Réponse de Thibulaire sur le sujet Re:sous chaine de charactère
Yes ! merci ça marche nickel avec un [code:1]$split = $grp1.split(\"_|-\"«»)[/code:1]
Dernières petites questions : Cela fontionne t'il avec des espaces et peut on le faire avec plus de deux séparateurs du style (\"-|_|*| \").
Dans tous les cas encore un grand merci.
Dernières petites questions : Cela fontionne t'il avec des espaces et peut on le faire avec plus de deux séparateurs du style (\"-|_|*| \").
Dans tous les cas encore un grand merci.
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 8 mois #17831
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:sous chaine de charactère
Thibulaire écrit:
Thibulaire écrit:
[code:1]
'G-KSA 23L*22_TEST' -split '_|-| |*'
'G-KSA 23L*22_TEST' -split '_|-| |\*'
[/code:1]
En passant, attention à la saisie (Read-Host) de ta varaible, car elle peut être vide.
Oui.Cela fontionne t'il avec des espaces
Thibulaire écrit:
Oui, sous réserve d'échapper les métacaractères :et peut on le faire avec plus de deux séparateurs du style (\"-|_|*| \").
[code:1]
'G-KSA 23L*22_TEST' -split '_|-| |*'
'G-KSA 23L*22_TEST' -split '_|-| |\*'
[/code:1]
En passant, attention à la saisie (Read-Host) de ta varaible, car elle peut être vide.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.048 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Renommage de groupe en masse