Question [Résolu][AD] Transfert d'utilisateurs

Plus d'informations
il y a 13 ans 4 mois #13117 par PoSH_Newbie
Bonjour,

il semble que la manipulation des groupes soit à la mode en ce moment :) .

Je cherche actuellement à transférer la liste dse utilisateurs d'un groupe AD Universel vers un groupe AD Global.

Je ne suis qu'à la première étape, mais n'arrive pas à solutionner le message d'erreur que j'obtiens. Voici le Code concernant ce problème:

[code:1]# Script d'extraction des utilisateurs d'un groupe AD donné pour les réaffecter à un autre groupe AD donné.
#
## [Groupe Source] ==> [LISTING Utilisateurs] ==> [Groupe de Destination]
#

#Section1. -Définition des Variables

## --- LOG ---
$Script:NOW = get-date #DATE DU JOUR
$script:LOG_DIR=\"C:\Master\Sources\LOGs\" #REPERTOIRE DE LOG
$Script:LOG=\"$LOG_DIR\NP-AD-Grp-AffectListUsers.log\" #FICHIER DE LOG

## --- AD GROUPS ---
[String]$NP_AD_GRP_From= Read-Host \"`t- Indiquer le groupe AD Source\"## 1.1 Définition du groupe de référence
[String]$NP_AD_GRP_To= Read-Host \"`t- Indiquer le Groupe AD de Destination\"## 2.1 Définition du Groupe de Destination

## --- 1.2 Fichier de LISTING des utilisateurs extraits ---
[String]$NP_AD_GRP_From_Users_DIR = \"C:\Master\Sources\Scripts\"
[String]$NP_AD_GRP_From_Users_File = \"$NP_AD_GRP_From_Users_DIR\NP-AD-GRP-From-Users.txt\"

### FinSection1.


#Section2.ETAPE PREALABLE

## 2.1 Activation du module AD

import-module ActiveDirectory


## 2.2 [Tracabilité] Génération du fichier de LOG
#### Chaque opération réalisée dans le script doit avoir une sortie de ce type: <OPERATION> | Out-file -filepath $LOG -Append -force

# 2.2.1 - Création et définition du répertoire de Logs = c:/master/sources/logs
ni -path $LOG_DIR -type directory -force
ni -path $LOG -type file -force

$NOW| Out-file -filepath $LOG -Append -force #LOG: Date du jour

\"- LOG: `n`t--Dossier: $log_dir`n`t--Fichier: $log`n\"| Out-file -filepath $LOG -Append -force #REPERTOIRE ET FICHIER DE LOG ajouté au fichier de Log

# 2.2.2 - Groupes de référence / Destination
\"- GROUPES AD`n`t-- Groupe AD Source: $NP_AD_GRP_From`n`t-- Groupe AD de Destination: $NP_AD_GRP_To`n\" | Out-file -filepath $LOG -Append -force

# 2.2.3 - Fichier de LISTING des utilisateurs extraits

ni -path $NP_AD_GRP_From_Users_DIR -type directory -force
ni -path $NP_AD_GRP_From_Users_File -type file -force

\"- LISTING Users: `n`t--Fichier: $NP_AD_GRP_From_Users_File\" | Out-file -filepath $LOG -Append -force

### FinSection2.


#Section3. - Déroulement du Script

## 3.1 LISTING Utilisateurs
$Script:v= get-adGroupMember $NP_AD_GRP_From #Récupération de la liste des utilisateurs
[String]|$Script:w = $v | % {$_.SAMAccountName} #Récupération dans la liste des comptes d'utilisateurs
$w | Out-File -filepath $NP_AD_GRP_From_Users_File -Force #Ecriture des données dans le fichier texte
\"`t-- Listing des utilisateurs:\" | Out-file -filepath $LOG -Append -force
gc $NP_AD_GRP_From_Users_File | Out-file -filepath $LOG -Append -force # Ajout de la liste des utilisateurs dans le fichier de LOG

## 3.2 Ajout des Utilisateurs au groupe de destination
Add-ADGroupMember $NP_AD_GRP_To -Members $v
## 3.xxxxxxxxxx [Vérification] Affichage de la liste de destination mise à jour
Get-adGroupMember $NP_AD_GRP_To
### FinSection3.
[/code:1]

Le problème lors de l’exécution du code se situe ici:

[code:1][String]|$Script:w = $v | % {$_.SAMAccountName}[/code:1]

Par contre, je ne sais comment contourner le problème :pinch:

Si quelqu'un a un début de solution, je serais preneur.

Merci d'avance.<br><br>Message édité par: PowerShell Newbie, à: 21/11/12 13:31


PowerShell-scripting.com = alias de SHARE-PSKnowledge

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

Plus d'informations
il y a 13 ans 4 mois #13119 par Laurent Dardenne
Salut,
PowerShell Newbie écrit:

Le problème lors de l’exécution du code se situe ici:

[code:1][String]|$Script:w = $v | % {$_.SAMAccountName}[/code:1]

Par contre, je ne sais comment contourner le problème :pinch:

A priori comme t'es un peu magicien,si si un peu :P , moi j'aimerais bien savoir ce que c'est que cette construction :woohoo:

Tutoriels PowerShell

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

Plus d'informations
il y a 13 ans 4 mois #13120 par PoSH_Newbie
En effet, si par la magie tu sous-entends complexifier un max quelque chose de simple au point de se perdre, c'est effectivement le cas :)

Bon sur tes conseils avisés, j'ai supprimé l'effet de cascade et tout fonctionne pour le premier niveau du groupe universel (Liste des Utilisateurs).

Voici la version fonctionnelle de cette partie du script:

[code:1]# Script d'extraction des utilisateurs d'un groupe AD donné pour les réaffecter à un autre groupe AD donné.
#
## [Groupe Source] ==&gt; [LISTING Utilisateurs] ==&gt; [Groupe de Destination]
#

#Section1. -Définition des Variables
## --- LOG ---
$Script:NOW = get-date #DATE DU JOUR
$script:LOG_DIR=\&quot;C:\Master\Sources\LOGs\&quot; #REPERTOIRE DE LOG
$Script:LOG=\&quot;$LOG_DIR\NP-AD-Grp-AffectListUsers.log\&quot; #FICHIER DE LOG
## --- AD GROUPS ---
[String]$NP_AD_GRP_From= Read-Host \&quot;`t- Indiquer le groupe AD Source\&quot;## 1.1 Groupe de référence
[String]$NP_AD_GRP_To= Read-Host \&quot;`t- Indiquer le Groupe AD de Destination\&quot;## 1.2 Groupe de Destination
### FinSection1.

#Section2.ETAPE PREALABLE
## 2.1 Activation du module AD
import-module ActiveDirectory
## 2.2 [Tracabilité] Génération du fichier de LOG
#### Chaque opération réalisée dans le script doit avoir une sortie de ce type: &lt;OPERATION&gt; | Out-file -filepath $LOG -Append -force
# 2.2.1 - Répertoire de Logs
ni -path $LOG_DIR -type directory -force
ni -path $LOG -type file -force
$NOW| Out-file -filepath $LOG -Append -force #LOG: Date du jour
\&quot;- LOG: `n`t--Fichier: $log`n\&quot;| Out-file -filepath $LOG -Append -force #REPERTOIRE ET FICHIER DE LOG ajouté au fichier de Log
# 2.2.2 - Groupes de référence / Destination
\&quot;- GROUPES AD`n`t-- Groupe AD Source: $NP_AD_GRP_From`n`t-- Groupe AD de Destination: $NP_AD_GRP_To`n\&quot; | Out-file -filepath $LOG -Append -force
### FinSection2.

#Section3. - Déroulement du Script
## 3.1 LISTING Utilisateurs
$Script:v= get-adGroupMember $NP_AD_GRP_From #Liste utilisateurs
\&quot;`t-- Listing des utilisateurs:\&quot; | Out-file -filepath $LOG -Append -force
get-adGroupMember $NP_AD_GRP_From | % {$_.SAMAccountName} | Out-file -filepath $LOG -Append -force # Liste utilisateurs dans LOG
## 3.2 Ajout des Utilisateurs au groupe de destination
Add-ADGroupMember $NP_AD_GRP_To -Members $v
## 3.3 [Vérification] Affichage de la liste de destination mise à jour
Get-adGroupMember $NP_AD_GRP_To
### FinSection3.[/code:1]

Il me reste à présent à faire une boucle sur les éléments membres du groupe universel identifiés en tant que groupe.


PowerShell-scripting.com = alias de SHARE-PSKnowledge

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

Plus d'informations
il y a 13 ans 4 mois #13121 par Laurent Dardenne
PowerShell Newbie écrit:

En effet, si par la magie tu sous-entends complexifier un max quelque chose de simple au point de se perdre, c'est effectivement le cas :)

:laugh:

Tutoriels PowerShell

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

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