Question
ADSI connexion sur machine distante
- daniel soares
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 133
- Remerciements reçus 0
il y a 18 ans 1 mois #2140
par daniel soares
ADSI connexion sur machine distante a été créé par daniel soares
bonjour
je veux interroger la base sam de +sieurs machines distantes pour changer des mots de passe
mais je n'arrive pas à trouver l'info pour ajouter des credentials a la connexion
$connexion=[ADSI]\"WinNT://serveurdistant\"
est ce que c'est possible?
je veux interroger la base sam de +sieurs machines distantes pour changer des mots de passe
mais je n'arrive pas à trouver l'info pour ajouter des credentials a la connexion
$connexion=[ADSI]\"WinNT://serveurdistant\"
est ce que c'est possible?
Connexion ou Créer un compte pour participer à la conversation.
- Robin Lemesle
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 260
- Remerciements reçus 0
il y a 18 ans 1 mois #2146
par Robin Lemesle
Robin MVP PowerShell
Réponse de Robin Lemesle sur le sujet Re:ADSI connexion sur machine distante
Utilises-tu le script avec les droits admiistrateurs. Car si tel est le cas, il n'y a pas de manipulation particulière à faire.
Je vais tout de même vérifier. Quel message d'erreur te retourne PowerShell ?<br><br>Message édité par: Robin, à: 9/04/08 22:19
Je vais tout de même vérifier. Quel message d'erreur te retourne PowerShell ?<br><br>Message édité par: Robin, à: 9/04/08 22:19
Robin MVP PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- daniel soares
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 133
- Remerciements reçus 0
il y a 18 ans 1 mois #2153
par daniel soares
Réponse de daniel soares sur le sujet Re:ADSI connexion sur machine distante
[code:1]
PS C:\daniel> $connexion=[ADSI]\"WinNT://si-elr01prod01/administrateurs,group\"
PS C:\daniel> $connexion.psbase.invoke('members') | foreach{$_.gettype().invokemember('name','getproperty',$null,$_,$null)}
Exception calling \"Invoke\" with \"2\" argument(s): \"Accès refusé.
\"
At line:1 char:25
+ $connexion.psbase.invoke <<<< ('members') | foreach{$_.gettype().invokemember('name','getproperty',$null,$_,$null)}
PS C:\daniel>
[/code:1]
j'ai un acces refusé.
en fait je fais cette manip depuis mon poste xp
et je veux interroger tous les serveurs de mon park
je ne suis pas logué sur ma station avec le compte admin des serveurs distants
par contre si adsi ne prevoit pas de possibilité de credential peut etre vaut il mieux dans mon script que je demarre une session powershell en tant que ( mais je ne connais pas l'equivalent de runas sur powershell )
PS C:\daniel> $connexion=[ADSI]\"WinNT://si-elr01prod01/administrateurs,group\"
PS C:\daniel> $connexion.psbase.invoke('members') | foreach{$_.gettype().invokemember('name','getproperty',$null,$_,$null)}
Exception calling \"Invoke\" with \"2\" argument(s): \"Accès refusé.
\"
At line:1 char:25
+ $connexion.psbase.invoke <<<< ('members') | foreach{$_.gettype().invokemember('name','getproperty',$null,$_,$null)}
PS C:\daniel>
[/code:1]
j'ai un acces refusé.
en fait je fais cette manip depuis mon poste xp
et je veux interroger tous les serveurs de mon park
je ne suis pas logué sur ma station avec le compte admin des serveurs distants
par contre si adsi ne prevoit pas de possibilité de credential peut etre vaut il mieux dans mon script que je demarre une session powershell en tant que ( mais je ne connais pas l'equivalent de runas sur powershell )
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 18 ans 1 mois #2159
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Réponse de Arnaud Petitjean sur le sujet Re:ADSI connexion sur machine distante
Salut Dan,
Là encore le message est clair : tu as un accès refusé donc un problème de droits. En effet, comme le soulignes Robin, pour le script de la bibliothèque fonctionne il faut que tu sois loggé en tant qu'admin de la machine distante ou en admin du domaine.
De mémoire on ne peut pas utiliser le \"raccourci\" [ADSI] avec d'autres credentials que celles de l'utilisateur courant. Il faut obligatoirement passer par la classe du Framework qui va bien.
Si tu es un lecteur de notre livre, regarde page 393 - Connexion à un domaine distant sous une autre identité.
Sinon de façon simple, tu dois remplacer ta chaine de connexion :
[code:1]$connexion =[ADSI]'LDAP://requete'
par
$connexion = New-Object System.directoryServices.DirectoryEntry('LDAP://requete', 'login', 'mot de passe')
[/code:1]
Ceci étant je viens de m'apperçevoir que j'ai été trop vite en besogne en te donnant une solution qui marche pour une connexion AD mais certainement pas pour une machine distante. Il va falloir creuser un peu... Si j'ai de l'info, je te la communiquerai.
Arnaud
Là encore le message est clair : tu as un accès refusé donc un problème de droits. En effet, comme le soulignes Robin, pour le script de la bibliothèque fonctionne il faut que tu sois loggé en tant qu'admin de la machine distante ou en admin du domaine.
De mémoire on ne peut pas utiliser le \"raccourci\" [ADSI] avec d'autres credentials que celles de l'utilisateur courant. Il faut obligatoirement passer par la classe du Framework qui va bien.
Si tu es un lecteur de notre livre, regarde page 393 - Connexion à un domaine distant sous une autre identité.
Sinon de façon simple, tu dois remplacer ta chaine de connexion :
[code:1]$connexion =[ADSI]'LDAP://requete'
par
$connexion = New-Object System.directoryServices.DirectoryEntry('LDAP://requete', 'login', 'mot de passe')
[/code:1]
Ceci étant je viens de m'apperçevoir que j'ai été trop vite en besogne en te donnant une solution qui marche pour une connexion AD mais certainement pas pour une machine distante. Il va falloir creuser un peu... Si j'ai de l'info, je te la communiquerai.
Arnaud
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
- daniel soares
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 133
- Remerciements reçus 0
il y a 18 ans 1 mois #2165
par daniel soares
Réponse de daniel soares sur le sujet Re:ADSI connexion sur machine distante
tant mieux Arnaud car cette solution me donne des idées pour changer mon mot de passe sur mes 4 domaines en un script
pour ce qui est de l'acces a la base sam des serveurs distants
la particularité du parc sur lequel je travail est qu'il y a au plus 3 comptes locaux pour administrer la totalité des serveurs
donc si il n'y a pas d'option de credential pour le provider NT j'ai une solution qui consiste a creer ces comptes locaux sur ma machine avec le meme mot de passe que sur les serveurs et ensuite par script lancer 3 sessions porwershell en tant que (comptes) pour pouvoir faire les interrogations et modifications ADSI
mais ca coince
lorsque je lance la commande suivante
[code:1]
Invoke-Item 'c:\windows\system32\WindowsPowerShell\v1.0\powershell.exe' -Credential compteadmindistant
[/code:1]
j'ai l'erreur
Invoke-Item : Cannot retrieve the dynamic parameters for the cmdlet. Attempting to perform the MakePath operation operation on the 'FileSystem' provi
der failed for path ''. The provider does not support the use of credentials. Please perform the operation again without specifying credentials.
At C:\powertools\temp1.ps1:1 char:12
+ Invoke-Item <<<< 'c:\windows\system32\WindowsPowerShell\v1.0\powershell.exe' -Credential adminprod
PS C:\Documents and Settings\dsoares\Bureau> $shell = new-object -com WScript.Shell
alors que d'apres la doc invoke-item sait fonctionner avec le parametre -credential
du coup je ne sais pas ouvrir depuis un script powershell une session powershell en tant que nouvel utilisateur.
ce que j'ai reussi a faire en cmd avec la commande runas
je suis persuadé que la solution existe
pour info je suis en v2 ctp
pour ce qui est de l'acces a la base sam des serveurs distants
la particularité du parc sur lequel je travail est qu'il y a au plus 3 comptes locaux pour administrer la totalité des serveurs
donc si il n'y a pas d'option de credential pour le provider NT j'ai une solution qui consiste a creer ces comptes locaux sur ma machine avec le meme mot de passe que sur les serveurs et ensuite par script lancer 3 sessions porwershell en tant que (comptes) pour pouvoir faire les interrogations et modifications ADSI
mais ca coince
lorsque je lance la commande suivante
[code:1]
Invoke-Item 'c:\windows\system32\WindowsPowerShell\v1.0\powershell.exe' -Credential compteadmindistant
[/code:1]
j'ai l'erreur
Invoke-Item : Cannot retrieve the dynamic parameters for the cmdlet. Attempting to perform the MakePath operation operation on the 'FileSystem' provi
der failed for path ''. The provider does not support the use of credentials. Please perform the operation again without specifying credentials.
At C:\powertools\temp1.ps1:1 char:12
+ Invoke-Item <<<< 'c:\windows\system32\WindowsPowerShell\v1.0\powershell.exe' -Credential adminprod
PS C:\Documents and Settings\dsoares\Bureau> $shell = new-object -com WScript.Shell
alors que d'apres la doc invoke-item sait fonctionner avec le parametre -credential
du coup je ne sais pas ouvrir depuis un script powershell une session powershell en tant que nouvel utilisateur.
ce que j'ai reussi a faire en cmd avec la commande runas
je suis persuadé que la solution existe
pour info je suis en v2 ctp
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.040 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- ADSI connexion sur machine distante