Question Modification description groupes AD

Plus d'informations
il y a 1 mois 3 semaines #32883 par Laurent Dardenne
Si le texte avant le nom d'application n'a pas d'importance on peut aussi écrire la regex de cette manière :
if ($GroupName -match '^(?<Prefixe>(.*?_){4})(?<Application>.*?)((?<Postfixe>_.*){0,1})$')

Tutoriels PowerShell

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

Plus d'informations
il y a 1 mois 1 semaine #32896 par Christophe MELIN
bonjour,

Si le nom de tes groupes suit un plan de nommage homogène avec 5 ou 6 blocs séparé par le caractère _, est-ce que vous avez envisagé de spliter la chaine de caractères ?
Exemple : 
$groupname = "GL_APP_SCCM_APP_application_M1"
$arr = $groupname.split( '_' )
alors le résultat est :
$arr[0] = "GL"
$arr[1] = "APP"
$arr[2] = "SCCM"
​​​​​​​$arr[3] = "APP"
​​​​​​​$arr[4] = "application"
​​​​​​​$arr[5] = "M1"

tu peux alors faire des tests simples
$application = ""
$version = ""
if ($arr.count -lt 5) { write-error "$groupname : pas de bloc pour trouver l'application" }
if ($arr.count -ge 5) { $application = $arr[4] }
if ($arr.count -gt 5) { $version = $arr[5] }

Sous réserve que le _ est bien un séparateur qu'on ne retrouve pas dans les blocs, avec cette méthode, tu n'as aucune taille de bloc codé en dur.
J'ai eu la même problématique que toi car on a un plan de nommage assez proche du tien :
<type de groupe>_<code appli>_<code environnement>[_<suffixe>]
  • type de groupe est un code sur 2 ou 3 caractères,
  • code appli est un code sur 5 à 8 caractère
  • code environnement est un caractère
  • j'ai mis la partie suffixe entre [ ] pour signifier qu'elle est facultative (comme ton 6ème bloc).

Avec le split, j'ai pu mettre à jour la description avec un code ressemblant à ce qui suit :
$arr = $groupname.split( '_' )
if ($arr.count -lt 3) { throw "Impossible de traiter le groupe $groupname. Il manque des blocs" }
$type = $arr[0]
$application = $arr[1].ToUpper() # conversion en majuscule
$env = $arr[2].ToUpper()            # conversion en majuscule
if ($arr.count -ge 4) { $suffixe = $arr[3] } else { $suffixe = $null }

​​​​​​​switch( $env) {
  "P" { $envlong = "PROD" }
  "T" { $envlong = "TEST" }
...
  default { $envlong = $null }
}
$description = "Application $application"
if ($envlong) { $description += " - $envlong" }
if ($suffixe)   { $description += " ($suffixe)" }
​​​​​​​

et voilà, le tour est joué
 

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

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