Résolu Chemin réseau

Plus d'informations
il y a 11 mois 2 semaines #33560 par Druss
Chemin réseau a été créé par Druss
Bonjour à tous !

J'ai un script qui ouvre un keepass :

# Emplacements
$KeePassPath = "C:\Program Files\KeePass Password Safe 2\KeePass.exe"
$DatabasePath = "\\172.16.3.221\groupe\Informatique\A Suivre\database.kdbx"


# Lancement KeePass
Start-Process $KeePassPath $DatabasePath

Me demander pas à quoi ça sert, je fais ce qu'on me demande 

Le problème est que le chemin réseau de la base de données est bon et je l'atteint bien manuellement (dans l'explorateur de fichiers) mais quand je lance le script keepass me renvoie "the specified file could not be found." dans un pop-up.
Quand je crée une base de données stockée en local et que je met son adresse tout fonctionne.

Si quelqu'un peut m'aider ce serait super !

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

Plus d'informations
il y a 11 mois 2 semaines #33561 par Arnaud Petitjean
Réponse de Arnaud Petitjean sur le sujet Chemin réseau
Bonjour Druss,

Effectivement je viens de tester et ça fonctionne très bien en local.

Essaie d'utiliser un nom de serveur FQDN plutôt que l'adresse IP. Tu as peut-être un problème d'authentification Kerberos.

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.

Plus d'informations
il y a 11 mois 2 semaines #33563 par Druss
Réponse de Druss sur le sujet Chemin réseau
Bonjour Arnaud,

J'ai utilisé l'IP parce que le FQDN ne fonctionnait pas, pour tester.
J'ai bien l'impression que l'espace dans le chemin (A suivre) pose problème, est-ce possible ?

Par ailleurs le script est sensé mettre une phrase en presse-papier (avec Set-Clipboard) mais les "é" se transforment en "é". Une idée ?

Merci d'avance,

Mickaël

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

Plus d'informations
il y a 11 mois 1 semaine #33569 par Arnaud Petitjean
Réponse de Arnaud Petitjean sur le sujet Chemin réseau
Bonjour Druss,

Non, je ne pense pas que le fait qu'il y ait un espace dans le chemin pose un problème. Donc finalement avec le nom FQDN du serveur ça ne fonctionne pas mieux ? Ce n'est pas normal.

Ca me rappelle ton problème de la dernière fois finalement.

Pourrais-tu essayer si la commande suivante fonctionne ? Normalement ça devrait.
Get-Item $DatabasePath 

Pour ton problème de clipboard, peux-tu ouvrir un autre sujet et poster ton code STP ? Indique également la version de PowerShell que tu utilises ainsi que l'éditeur que tu utilises pour faire ton script (ça peut jouer).

Merci

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.

Plus d'informations
il y a 11 mois 1 semaine - il y a 11 mois 1 semaine #33578 par Christophe MELIN
Réponse de Christophe MELIN sur le sujet Chemin réseau
Bonjour,

trois remarques :
  1. personnellement, j'ai pris l'habitude d'utiliser explicitement les options des commandes donc j'écrirais ta commande sous la forme :
    Start-Process -filepath $KeePassPath -ArgumentList $DatabasePath
    Certes, c'est un peu plus lourd à écrire mais cela garantit de savoir quel paramètre correspond à quelle option.
  2. Le problème de la commande ci-dessus (avec tes informations) est que cela génère l'équivalent de la ligne de commande 
    "C:\Program Files\KeePass Password Safe 2\KeePass.exe" \\172.16.3.221\groupe\Informatique\A Suivre\database.kdbx
    Comme le nom complet du fichier (répertoire compris) contient un espace, la ligne résultante est erronée.

    Pour éviter cela, il faut que le nom de fichier soit lui-même entre double-quotes dans les paramètres, ce qui donne :
    Start-Process -filepath $KeePassPath -ArgumentList "`"$DatabasePath`""
  3. Quand tu exécutes le script, es-tu bien certain que le compte utilisateur utilisé à bien accès au partage "\\172.16.3.221\groupe" ?
Petit conseil :
Windows sait gérer les espaces dans les noms de répertoires et de fichiers depuis Windows 95 (donc ça fait un bail) mais les développeurs (ou les scripteurs) n'ont pas pris l'habitude de mettre des double-quotes autour des noms de fichiers. Dans 90% des cas, ça marche car les noms ne contiennent pas d'espace mais cela commence à dysfonctionner dès qu'on met un espace dans un nom. Donc cela nécessite une petite gymnastique de l'esprit mais se forcer à écrire les noms de fichier (ou de répertoires) entre double-quotes dans les lignes de commandes ou dans les arguments des commandes comme start-process est une bonne habitude qui réduit considérablement les risques d'une bombe à retardement. J'appelle "Bombe à retardement" le script qui fonctionne bien tant qu'il n'y a pas d'espace dans les noms et qui dysfonctionne brutalement quand on ajoute un espace dans un nom.

Christophe
Dernière édition: il y a 11 mois 1 semaine par Christophe MELIN.

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

Plus d'informations
il y a 11 mois 1 semaine #33582 par Druss
Réponse de Druss sur le sujet Chemin réseau
Bonjour,

Alors tout d'abord c'est merveilleux, tout fonctionne à présent, merci beaucoup !
La modification de la ligne Start-Process -filepath $KeePassPath -ArgumentList "`"$DatabasePath`"" a fait le boulot.
Si je peux abuser un tout petit peu, je ne suis pas entièrement à l'aise avec l'ordre des " et des` dans "`"$DatabasePath`"" et une petite explication serait plus qu'appréciée.

En tout cas je peux d'ores et déjà vous remercier tous les deux pour votre aide précieuse.

Mickaël

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

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