Question Accès refusé avec Invoke-command
- ROUSSEAU
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 9 ans 9 mois #21965
par ROUSSEAU
Accès refusé avec Invoke-command a été créé par ROUSSEAU
Bonjour,
Je souhaite exécuter un script sur un serveur à distance.
(Une simple copie pour démarrer et par la suite l'exécution d'un .ps1 pour installer une application)
Voici le script que j’exécute :
[code:1]
$RemoteComputer=\"server1\"
New-PSSession -ComputerName $RemoteComputer
Enter-PSSession -ComputerName $RemoteComputer
Copy-Item \"\\localhost\temp\test.txt\" -Destination \"C:\temp\"[/code:1]
Réponse :
Info :
- Je suis admin du domaine.
- Depuis le serveur distant j’accède bien au fichier via le partage.
- les serveurs sont en 2012R2 donc WinRM est activé.
Manuellement la copie ou le lancement du .ps1 depuis le serveur distant ce fait correctement, y a t-il une configuration que j'aurais oublié de faire ?
Merci de votre aide.
<br><br>Message édité par: Arnaud, à: 17/06/16 16:04
Je souhaite exécuter un script sur un serveur à distance.
(Une simple copie pour démarrer et par la suite l'exécution d'un .ps1 pour installer une application)
Voici le script que j’exécute :
[code:1]
$RemoteComputer=\"server1\"
New-PSSession -ComputerName $RemoteComputer
Enter-PSSession -ComputerName $RemoteComputer
Copy-Item \"\\localhost\temp\test.txt\" -Destination \"C:\temp\"[/code:1]
Réponse :
Copy-Item : Accès refusé
Copy-Item : Impossible de trouver le chemin d'accès
Info :
- Je suis admin du domaine.
- Depuis le serveur distant j’accède bien au fichier via le partage.
- les serveurs sont en 2012R2 donc WinRM est activé.
Manuellement la copie ou le lancement du .ps1 depuis le serveur distant ce fait correctement, y a t-il une configuration que j'aurais oublié de faire ?
Merci de votre aide.
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 9 ans 9 mois #21967
par Philippe
Réponse de Philippe sur le sujet Re:Accès refusé avec Invoke-command
salut vesty
mais tu manque de logique
new-pssession ouvre une session à distance sur un serveur
enter-pssession démarre une session à distance interactive sur la console local pour l'utilisateur pas pour le script !!!
et donc copy-item s'exécute que localement
pour les sessions à distance, il te ouvrir la session (new-pssession) et gardé le numero de session renvoyer !!!
[code:1]$idsession = New-PSSession -ComputerName $RemoteComputer[/code:1]
puis tu exécute ta commande à distance avec ces invoke-command :
[code:1]Invoke-Command -ScriptBlock {Copy-Item \"\localhosttemptest.txt\" -Destination \"C:temp\"} -Session $idsession[/code:1]
et enfin on n'oublie pas à la fin de fermer la session sinon au bout de 10 fois plus d'ouverture de session
[code:1]Remove-PSSession $idsession[/code:1]
pour info pour le copy il te manque serveur ou le fichier ce trouve, du genre :
[code:1]Copy-Item \"\\le_serveur_de_fichier\le_partage\le_dossier\le_fichier.txt\" -Destination \"C:\temp\"[/code:1]
mais pour moi, si tu est admin du domaine tu n'a pas besoin de tous ça. un simple copy suffit :
[code:1]Copy-Item \"c:\le_partage\le_dossier\le_fichier.txt\" -Destination \"\\$RemoteComputer\C$\temp\"[/code:1]<br><br>Message édité par: 6ratgus, à: 17/06/16 09:50
non ou je ne vois pas quoiy a t-il une configuration que j'aurais oublié de faire ?
mais tu manque de logique
new-pssession ouvre une session à distance sur un serveur
enter-pssession démarre une session à distance interactive sur la console local pour l'utilisateur pas pour le script !!!
et donc copy-item s'exécute que localement
pour les sessions à distance, il te ouvrir la session (new-pssession) et gardé le numero de session renvoyer !!!
[code:1]$idsession = New-PSSession -ComputerName $RemoteComputer[/code:1]
puis tu exécute ta commande à distance avec ces invoke-command :
[code:1]Invoke-Command -ScriptBlock {Copy-Item \"\localhosttemptest.txt\" -Destination \"C:temp\"} -Session $idsession[/code:1]
et enfin on n'oublie pas à la fin de fermer la session sinon au bout de 10 fois plus d'ouverture de session
[code:1]Remove-PSSession $idsession[/code:1]
pour info pour le copy il te manque serveur ou le fichier ce trouve, du genre :
[code:1]Copy-Item \"\\le_serveur_de_fichier\le_partage\le_dossier\le_fichier.txt\" -Destination \"C:\temp\"[/code:1]
mais pour moi, si tu est admin du domaine tu n'a pas besoin de tous ça. un simple copy suffit :
[code:1]Copy-Item \"c:\le_partage\le_dossier\le_fichier.txt\" -Destination \"\\$RemoteComputer\C$\temp\"[/code:1]<br><br>Message édité par: 6ratgus, à: 17/06/16 09:50
Connexion ou Créer un compte pour participer à la conversation.
- ROUSSEAU
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 9 ans 9 mois #21968
par ROUSSEAU
Réponse de ROUSSEAU sur le sujet Re:Accès refusé avec Invoke-command
Copy-item n'est qu'un exemple car en effet je peux le faire sans l'invoke-command.
J'ai également testé via ton exemple, j'ai le même problème.
[code:1]
$RemoteComputer=\"server1\"
$idsession = New-PSSession -ComputerName $RemoteComputer
Invoke-Command -ScriptBlock {Copy-Item \"\\serverlocal\dossier\test.txt\" -Destination \"C:\temp\"} -Session $idsession[/code:1]
----
Mon but est d'exécuter un script .ps1 sur le server1 (serveur distant)
Test avec Invoke-Command sans PSsession :
[code:1]
Invoke-Command -ComputerName $RemoteComputer -ScriptBlock {\"D:\dossier\monscript.ps1\"}[/code:1]
Rien de ne ce passe (aucun message d'erreur) mais l’installation ne ce fait pas pour autant.
Info
L'exécution manuellement de \"monscript.ps1\" sur le serveur distant fonctionne bien. (L'application est bien installé)<br><br>Message édité par: Arnaud, à: 17/06/16 16:05
J'ai également testé via ton exemple, j'ai le même problème.
[code:1]
$RemoteComputer=\"server1\"
$idsession = New-PSSession -ComputerName $RemoteComputer
Invoke-Command -ScriptBlock {Copy-Item \"\\serverlocal\dossier\test.txt\" -Destination \"C:\temp\"} -Session $idsession[/code:1]
----
Mon but est d'exécuter un script .ps1 sur le server1 (serveur distant)
Test avec Invoke-Command sans PSsession :
[code:1]
Invoke-Command -ComputerName $RemoteComputer -ScriptBlock {\"D:\dossier\monscript.ps1\"}[/code:1]
Rien de ne ce passe (aucun message d'erreur) mais l’installation ne ce fait pas pour autant.
Info
L'exécution manuellement de \"monscript.ps1\" sur le serveur distant fonctionne bien. (L'application est bien installé)<br><br>Message édité par: Arnaud, à: 17/06/16 16:05
Connexion ou Créer un compte pour participer à la conversation.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 9 ans 9 mois #21976
par Philippe
Réponse de Philippe sur le sujet Re:Accès refusé avec Invoke-command
il semble que les niveau de sécurité de Windows ai changé
l'option -EnableNetworkAccess de new-pssession ou invoke-command ne fonctionne plus pour moi !!!??
test si cette solution fonctionne pour toi :
[code:1]Invoke-Command -ComputerName \"pc-test\" -Credential $cred -ScriptBlock {Copy-Item -Path \"\\server\patage\fichier\" -Destination \"C:\temp\\"} -EnableNetworkAccess
[/code:1]
sinon tu fait la copy depuis ton poste ou serveur puis tu exécute l'install après à distance via start-process
l'option -EnableNetworkAccess de new-pssession ou invoke-command ne fonctionne plus pour moi !!!??
test si cette solution fonctionne pour toi :
[code:1]Invoke-Command -ComputerName \"pc-test\" -Credential $cred -ScriptBlock {Copy-Item -Path \"\\server\patage\fichier\" -Destination \"C:\temp\\"} -EnableNetworkAccess
[/code:1]
sinon tu fait la copy depuis ton poste ou serveur puis tu exécute l'install après à distance via start-process
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
-
- Hors Ligne
- Modérateur
-
il y a 9 ans 9 mois #21979
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:Accès refusé avec Invoke-command
Hello !
Je pense que le problème se situe autour de la problématique du \"double saut\" (double hop in english).
Essaie de modifier ton script pour faire des copies d'un répertoire local à un autre sur le même serveur sans utiliser la syntaxe
[code:1]\\monserveur\monDossier[/code:1], mais plutôt
[code:1]
Invoke-Command -ComputerName \"pc-test\" -Credential $cred -ScriptBlock {Copy-Item -Path \"C:\test\fichier1.txt\" -Destination \"C:\temp\\"}[/code:1]
et tu seras fixé.
Si c'est bien le cas, ce que je crois, il te faudra faire de la délégation de credentials (CredSSP).
Arnaud
Je pense que le problème se situe autour de la problématique du \"double saut\" (double hop in english).
Essaie de modifier ton script pour faire des copies d'un répertoire local à un autre sur le même serveur sans utiliser la syntaxe
[code:1]\\monserveur\monDossier[/code:1], mais plutôt
[code:1]
Invoke-Command -ComputerName \"pc-test\" -Credential $cred -ScriptBlock {Copy-Item -Path \"C:\test\fichier1.txt\" -Destination \"C:\temp\\"}[/code:1]
et tu seras fixé.
Si c'est bien le cas, ce que je crois, il te faudra faire de la délégation de credentials (CredSSP).
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.
- Philippe
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 1778
- Remerciements reçus 21
il y a 9 ans 9 mois #21982
par Philippe
Réponse de Philippe sur le sujet Re:Accès refusé avec Invoke-command
salut Arnaud
mais il semble que non
jamais utilisé credssp merci Arnaud
ce blog semble un bon guide pour credssp
j'avais aussi trouver sur le blog une solution a voir si ça aide
oui c'est ce que je pensé et je pensé que l'option EnableNetworkAccess réglé le problème !Je pense que le problème se situe autour de la problématique du \"double saut\" (double hop in english).
mais il semble que non
jamais utilisé credssp merci Arnaud
ce blog semble un bon guide pour credssp
j'avais aussi trouver sur le blog une solution a voir si ça aide
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.061 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les initiés
- Accès refusé avec Invoke-command