Flash info

"Problems cannot be solved by the same level of thinking that created them."

- Albert Einstein
 
Accueil arrow Forum

Bienvenue sur le forum PowerShell-Scripting.com

 
Church
Utilisateur

PowerShelleur Débutant
Messages: 5
graphgraph
Karma: 0  
Utiliser un deuxieme compte dans un script - 11/09/19 09:05 Bonjour à tous ! En ce merveilleux mercredi matin, je me présente à vous avec un problème qui me prend la tête depuis vendredi.

Etant un "débutant" en PowerShell (je suis autodidacte) et étant employé comme admin AD / système, j'apprends à utiliser PS pour gagner du temps.

Bon, le vif du sujet, je vous expose mon problème :
J'ai un environnement de plusieurs domaine qui interagissent entre eux, et dans ce cadre, je suis amener à intégrer des groupes du domaine A dans un groupe du domaine B, jusque là, rien de fou.

Le truc, c'est qu'en général, selon les utilisateurs, c'est plus ou moins long comme demande.

Donc là, j'ai une demande d'une cinquantaine de groupe d'un domaine à intégrer dans un groupe d'un autre domaine ET supprimer des groupes du premier domaine dans les même groupe du deuxième domaine.

J'ai bien sur pu trouver un script intéressant que j'ai tenter d'utiliser avec un fichier CSV (ParentGroup,ChildGroup,Action)

Le script est placé sur le domaine B sur un serveur de gestion auquel je suis connecté avec un compte qui n'a pas de droit sur le domaineA (quand je fais ce genre d'action à la main mes logins du domaine A sont demandé à chaque fois)

EDIT : Evidemment je n'ai pas la possibilité de modifier les habilitations propre à chaque serveur, je peux me contenter d'utiliser mes comptes opérateurs de chaque domaine

Ma question est donc simple (peut être ...) :

Comment, dans ce script PS, indiquer que pour chaque action, il doit utilsier un compte spécifique et comment lui indiquer ce compte DOMAINECompte ?

Code:

  #ERROR REPORTING ALL Set-StrictMode -Version latest #IMPORT du module ActiveDirectory  Import-Module ActiveDirectory $path         Split-Path -parent $MyInvocation.MyCommand.Definition $inputGroups  $path "\input.csv" $exist_parent "" $exist_child  "" Function AddRemoveADGroups {   Import-CSV $inputGroups | ForEach-Object {   #verifie si tout les  Parent + Child groups existent   Try   {     $exist_parent Get-ADGroup $_.ParentGroup -ErrorAction Stop     $exist_child  Get-ADGroup $_.ChildGroup -server <em>DomaineA</em> -ErrorAction Stop    }   Catch   {     Write-Host "$($_.Exception.Message)"   }   If ($exist_parent -ne "" -And $exist_parent -ne $Null -And $exist_child -ne "" -And $exist_child -ne $Null)   {     $pg $_.ParentGroup     $cg $_.ChildGroup     If ($_.Action -eq "ADD")     {       Try       {         $member_add Add-ADGroupMember $_.ParentGroup $_.ChildGroup         Write-Host "Added  ($cg)  to  ($pg)"       }       Catch       {         Write-Host "$($_.Exception.Message)"       }     }     If ($_.Action -eq "REMOVE")     {       Try       {         $member_remove Remove-ADGroupMember $_.ParentGroup $_.ChildGroup -Confirm:$False         Write-Host "Removed  ($cg)  from  ($pg)"       }       Catch       {         Write-Host "$($_.Exception.Message)"       }     }   } } } AddRemoveADGroups



Ce code me renvoi actuellement le message suivant pour chaque ligne de mon CSV :
The Server has rejecter the client creditentials.

Message édité par: Church, à: 11/09/19 09:07
  | | L'administrateur a désactivé l'accés public en écriture.
Laurent Dardenne
Utilisateur

PowerShelleur Platinum
Messages: 5658
graph
Karma: 206  
Re:Utiliser un deuxieme compte dans un script - 11/09/19 18:43 Salut,
un début de réponse :
Code:

 Get-Help Add-ADGroupMember


Oui c'est un peu sec

Consulte le paramètre -Credential.
Teste déjà dans une console et si cela répond au besoin, intègre le à ton script.
Et du coup, comme on ne code pas en dur les credentials, un autre pb ce posera, mais à chaque jour suffit ça peine.
Tutoriels PowerShell
  | | L'administrateur a désactivé l'accés public en écriture.
Church
Utilisateur

PowerShelleur Débutant
Messages: 5
graphgraph
Karma: 0  
Re:Utiliser un deuxieme compte dans un script - 12/09/19 07:58 Bonjour Laurent, merci pour cette réponse, j'avais déjà consulter le Help une première fois sans voir l'option Credentials.
Pour ce qui est de les inclures en dur, en soit ça ne pose pas de problème, je suis le seul à me servir de ce script et il sera à usage ponctuel (dans le cas des demandes massives comme à présent), mais effectivement, chaque chose en son temps
Je m'en vais consulter tout ça immédiatement !
  | | L'administrateur a désactivé l'accés public en écriture.
Church
Utilisateur

PowerShelleur Débutant
Messages: 5
graphgraph
Karma: 0  
Re:Utiliser un deuxieme compte dans un script - 18/09/19 12:01 Bonjour ! Bon, déjà, merci pour le petit indice sur les Credential, ça m'a permis de trouver la solution, mais, j'ai une dernière question pour résoudre mon problème :
Où placer l'option ? Là, j'ai tester en la plaçant après les action :
Code:

 Try       {         $member_add Add-ADGroupMember $_.ParentGroup $_.ChildGroup -credential CompteADM         Write-Host "Added  ($cg)  to  ($pg)"       }



Pareil pour la suppression :
Code:

 Try       {         $member_remove Remove-ADGroupMember $_.ParentGroup $_.ChildGroup -credential CompteADM -Confirm:$False          Write-Host "Removed  ($cg)  from  ($pg)"       }


Et de cette façon j'ai un petit message pour chaque action qui dit :
The server has rejected the client credentials
  | | L'administrateur a désactivé l'accés public en écriture.
Church
Utilisateur

PowerShelleur Débutant
Messages: 5
graphgraph
Karma: 0  
Re:Utiliser un deuxieme compte dans un script - 18/09/19 12:01 Bonjour ! Bon, déjà, merci pour le petit indice sur les Credential, ça m'a permis de trouver la solution, mais, j'ai une dernière question pour résoudre mon problème :
Où placer l'option ? Là, j'ai tester en la plaçant après les action :
Code:

 Try       {         $member_add Add-ADGroupMember $_.ParentGroup $_.ChildGroup -credential CompteADM         Write-Host "Added  ($cg)  to  ($pg)"       }



Pareil pour la suppression :
Code:

 Try       {         $member_remove Remove-ADGroupMember $_.ParentGroup $_.ChildGroup -credential CompteADM -Confirm:$False          Write-Host "Removed  ($cg)  from  ($pg)"       }


Et de cette façon j'ai un petit message pour chaque action qui dit :
The server has rejected the client credentials
  | | L'administrateur a désactivé l'accés public en écriture.
Laurent Dardenne
Utilisateur

PowerShelleur Platinum
Messages: 5658
graph
Karma: 206  
Re:Utiliser un deuxieme compte dans un script - 18/09/19 18:39 Salut,
utilises-tu le cmdlet Get-Credential ?
Tutoriels PowerShell
  | | L'administrateur a désactivé l'accés public en écriture.
Church
Utilisateur

PowerShelleur Débutant
Messages: 5
graphgraph
Karma: 0  
Re:Utiliser un deuxieme compte dans un script - 18/09/19 18:46 Salut, oui je l'ai utilisé il m'a bien confirmé que le compte est accessible
  | | L'administrateur a désactivé l'accés public en écriture.
Laurent Dardenne
Utilisateur

PowerShelleur Platinum
Messages: 5658
graph
Karma: 206  
Re:Utiliser un deuxieme compte dans un script - 18/09/19 18:58 Je ne suis pas sûr de comprendre ceci :
Church écrit:
il m'a bien confirmé que le compte est accessible
Tu veux dire que l'appel du cmdlet Get-Credential ne génére pas d'erreur ?
Le compte utilisé a suffisamment de droits sur l'AD pour effectuer les opérations demandées ?
Tutoriels PowerShell
  | | L'administrateur a désactivé l'accés public en écriture.
© 2019 PowerShell-Scripting.com