Question
Envoyer un fichier par script
- Virtual76
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 12
- Remerciements reçus 0
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.
- Virtual76
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 12
- Remerciements reçus 0
Quand tu dis \"tu la saisie en plus du crendential\" tu parles d'un ArgumentList?é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
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.
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
- est tu sur un domaine ?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
- 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]\"C:\temp\"}[/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.
- Virtual76
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
- Messages : 12
- Remerciements reçus 0
Il faut utiliser \"Net use\" 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 \"$Creds.Password\" mais j'ai une \"erreur 86\" 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.
- Philippe
- Hors Ligne
- Modérateur
-
- Messages : 1778
- Remerciements reçus 21
est tu sur ???ce qui n'est pas du tout admissible...
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.
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Envoyer un fichier par script