Question Envoyer un fichier par script

Plus d'informations
il y a 9 ans 9 mois #21887 par Virtual76
Réponse de Virtual76 sur le sujet Re:Envoyer un fichier par script
Tout d'abord merci 6ratgus pour tes réponses :)

J'ai sorti le copy-item de la session mais apparemment cela pose un problème de mettre le credential en paramètre sur un copy-item puisque j'ai l'erreur suivante:

Copy-Item : Cannot retrieve the dynamic parameters for the cmdlet. The FileSystem provider supports credentials only on the New-PSDrive cmdlet.
Perform the operation again without specifying credentials.


Bonne idée le C:\Temp, ça fait moins de code ;)

J'ai essayé le script d'installation, il fonctionne bien si je copie manuellement le fichier zabbix.msi sur la machine distante avant de l'executer, c'est donc uniquement le copy item qui ne fonctionne pas.

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

Plus d'informations
il y a 9 ans 9 mois #21888 par Virtual76
Réponse de Virtual76 sur le sujet Re:Envoyer un fichier par script

évidement ta variable $user ne marche plus !
soit tu la saisie en plus du credential
soit utilise un autre dossier plus generique pour l'install. le dossier temp de Windows ou tien la racine du disque

Quand tu dis \"tu la saisie en plus du crendential\" tu parles d'un ArgumentList?

J'ai essayé, mais les variables ne passent pas dans le copy-item, voici mon code:

[code:1]
$MachineDistante = (Get-ADComputer MACHINEDISTANTE).Name
$Creds = Get-Credential -Message \"Connexion sur $MachineDistante (Domain\Nom)\"
$PathLocal = Get-Location
$MachineLocal = $env:COMPUTERNAME

$Copy = {Copy-Item -Path \"\\$MachineLocal\$PathLocal\zabbix_agent.msi\" -Destination \"\\$MachineDistante\C:\temp\"}

Invoke-Command -ComputerName $MachineDistante -Credential $Creds -ScriptBlock $Copy -ArgumentList $MachineDistante,$MachineLocal,$PathLocal
[/code:1]

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

Plus d'informations
il y a 9 ans 9 mois #21889 par Philippe
Réponse de Philippe sur le sujet Re:Envoyer un fichier par script
avant de continué a corrigé tes scripts, revenons au début ou tu dis :

Avec un script Powershell, je dois déployer une application en .msi sur un ensemble de serveurs. Ces serveurs sont sécurisés donc pas d'accès sur des partages réseau

Je précise que j'ai bien les droits administrateur sur les deux machines et qu'un simple copié collé en bureau a distance fonctionne sans problème

- est tu sur un domaine ?
- si tu est admin des serveurs, est tu admin avec le login d'ouverture de session Windows de ton poste ?
si oui peut tu copié sur le serveur depuis \"l'explorateur Windows\" sur le serveur avec comme adresse de destination :[code:1]\\nomserveur\c$\temp[/code:1]




pour info comme indiqué dans mon précèdent message dans la ligne suivante :
[code:1]$Copy = {Copy-Item -Path \"\\$MachineLocal\$PathLocal\zabbix_agent.msi\" -Destination \"\\$MachineDistante\C:\temp\"}
[/code:1]
ceci n'existe pas :
[code:1]\"\\$MachineDistante\C:\temp\"}[/code:1]
il faut soit :
[code:1]\"\\$MachineDistante\C$\temp\"}[/code:1]
pour une copie local sur un serveur distant

soit :
[code:1]\&quot;C:\temp\&quot;}[/code:1]pour une copie local quand le script est exécuté à distance sur le serveur ou directement sur le serveur<br><br>Message édité par: 6ratgus, à: 2/06/16 17:49

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

Plus d'informations
il y a 9 ans 9 mois #21897 par Virtual76
Réponse de Virtual76 sur le sujet Re:Envoyer un fichier par script
Bon j'ai eu la solution pour mon problème par quelqu'un.
Il faut utiliser \&quot;Net use\&quot; pour créer un partage entre les deux machines. C'est tout simple

Voici mon code :

[code:1]

$MachineDistante = (Get-ADComputer MACHINE-DISTANTE).Name
$Creds = Get-Credential
$PathLocal = Get-Location

net use G: \\$MachineDistante\C$ /User:domain\nom p@ssword
#Création d'un partage G: qui correspond au C: de la machine distante

Copy-Item -Path $PathLocal\zabbix_agent.msi -Destination G:\

net use g: /delete
[/code:1]

Néanmoins j'aimerai pouvoir mettre mon mot de passe (p@ssword dans le code) dans une variable mais cela ne fonctionne pas. j'ai essayé en mettant \&quot;$Creds.Password\&quot; mais j'ai une \&quot;erreur 86\&quot; quand j’exécute le script. Au final cela ne fonctionne que si je mets le mot de passe en clair dans le script, ce qui n'est pas du tout admissible...
Comment faire pour ce problème?

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

Plus d'informations
il y a 9 ans 9 mois #21898 par Philippe
Réponse de Philippe sur le sujet Re:Envoyer un fichier par script

ce qui n'est pas du tout admissible...

est tu sur ??? :angry: :evil:

sinon une doc sur ce site et ici la documentation complète mais moins précise sur la question !!

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

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