Question Utiliser un deuxieme compte dans un script
- Bertaut
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 5 ans 2 mois #29251
par Bertaut
Utiliser un deuxieme compte dans un script a été créé par Bertaut
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 DOMAINE\Compte ?
[code:1]
#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 DomaineA -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[/code:1]
Ce code me renvoi actuellement le message suivant pour chaque ligne de mon CSV :
The Server has rejecter the client creditentials.<br><br>Message édité par: Church, à: 11/09/19 09:07
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 DOMAINE\Compte ?
[code:1]
#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 DomaineA -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[/code:1]
Ce code me renvoi actuellement le message suivant pour chaque ligne de mon CSV :
The Server has rejecter the client creditentials.<br><br>Message édité par: Church, à: 11/09/19 09:07
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 5 ans 2 mois #29253
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Utiliser un deuxieme compte dans un script
Salut,
un début de réponse :
[code:1]Get-Help Add-ADGroupMember[/code:1]
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.
un début de réponse :
[code:1]Get-Help Add-ADGroupMember[/code:1]
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
Connexion ou Créer un compte pour participer à la conversation.
- Bertaut
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 5 ans 2 mois #29254
par Bertaut
Réponse de Bertaut sur le sujet Re:Utiliser un deuxieme compte dans un script
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 !
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 !
Connexion ou Créer un compte pour participer à la conversation.
- Bertaut
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 5 ans 2 mois #29277
par Bertaut
Réponse de Bertaut sur le sujet Re:Utiliser un deuxieme compte dans un script
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:1]Try
{
$member_add = Add-ADGroupMember $_.ParentGroup $_.ChildGroup -credential CompteADM
Write-Host \"Added ($cg) to ($pg)\"
}[/code:1]
Pareil pour la suppression :
[code:1]Try
{
$member_remove = Remove-ADGroupMember $_.ParentGroup $_.ChildGroup -credential CompteADM -Confirm:$False
Write-Host \"Removed ($cg) from ($pg)\"
}[/code:1]
Et de cette façon j'ai un petit message pour chaque action qui dit :
The server has rejected the client credentials
Où placer l'option ? Là, j'ai tester en la plaçant après les action :
[code:1]Try
{
$member_add = Add-ADGroupMember $_.ParentGroup $_.ChildGroup -credential CompteADM
Write-Host \"Added ($cg) to ($pg)\"
}[/code:1]
Pareil pour la suppression :
[code:1]Try
{
$member_remove = Remove-ADGroupMember $_.ParentGroup $_.ChildGroup -credential CompteADM -Confirm:$False
Write-Host \"Removed ($cg) from ($pg)\"
}[/code:1]
Et de cette façon j'ai un petit message pour chaque action qui dit :
The server has rejected the client credentials
Connexion ou Créer un compte pour participer à la conversation.
- Bertaut
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 5 ans 2 mois #29278
par Bertaut
Réponse de Bertaut sur le sujet Re:Utiliser un deuxieme compte dans un script
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:1]Try
{
$member_add = Add-ADGroupMember $_.ParentGroup $_.ChildGroup -credential CompteADM
Write-Host \"Added ($cg) to ($pg)\"
}[/code:1]
Pareil pour la suppression :
[code:1]Try
{
$member_remove = Remove-ADGroupMember $_.ParentGroup $_.ChildGroup -credential CompteADM -Confirm:$False
Write-Host \"Removed ($cg) from ($pg)\"
}[/code:1]
Et de cette façon j'ai un petit message pour chaque action qui dit :
The server has rejected the client credentials
Où placer l'option ? Là, j'ai tester en la plaçant après les action :
[code:1]Try
{
$member_add = Add-ADGroupMember $_.ParentGroup $_.ChildGroup -credential CompteADM
Write-Host \"Added ($cg) to ($pg)\"
}[/code:1]
Pareil pour la suppression :
[code:1]Try
{
$member_remove = Remove-ADGroupMember $_.ParentGroup $_.ChildGroup -credential CompteADM -Confirm:$False
Write-Host \"Removed ($cg) from ($pg)\"
}[/code:1]
Et de cette façon j'ai un petit message pour chaque action qui dit :
The server has rejected the client credentials
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
Réduire
Plus d'informations
- Messages : 6302
- Remerciements reçus 68
il y a 5 ans 2 mois #29281
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Utiliser un deuxieme compte dans un script
Salut,
utilises-tu le cmdlet Get-Credential ?
utilises-tu le cmdlet Get-Credential ?
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.118 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les initiés
- Utiliser un deuxieme compte dans un script