Résolu
Chemin réseau
- Druss
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 15
- Remerciements reçus 0
il y a 1 an 1 mois #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 !
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.
- Arnaud Petitjean
- Hors Ligne
- Modérateur
il y a 1 an 1 mois #33561
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 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
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.
- Druss
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 15
- Remerciements reçus 0
il y a 1 an 1 mois #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
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.
- Arnaud Petitjean
- Hors Ligne
- Modérateur
il y a 1 an 1 mois #33569
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 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.
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
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.
- Christophe MELIN
- Hors Ligne
- Membre junior
Réduire
Plus d'informations
- Messages : 26
- Remerciements reçus 4
il y a 1 an 1 mois - il y a 1 an 1 mois #33578
par Christophe MELIN
Réponse de Christophe MELIN sur le sujet Chemin réseau
Bonjour,
trois remarques :
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
trois remarques :
- 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.
- 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`""
- 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" ?
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 1 an 1 mois par Christophe MELIN.
Connexion ou Créer un compte pour participer à la conversation.
- Druss
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 15
- Remerciements reçus 0
il y a 1 an 1 mois #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
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.114 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Chemin réseau