2 votes

Impossible d'exécuter un MSI à partir d'un chemin réseau en utilisant Process.Start - Est-il possible d'exécuter un MSI à partir d'un partage réseau ?

Je voudrais lancer un MSI qui se trouve sur un partage réseau, mais la boîte de dialogue d'aide de msiexec s'affiche à la place (ce qui indique que quelque chose ne va pas avec les informations de démarrage du processus) :

string testPath1 = @"\\mynetwork.share.com\dev\builds 1.0\product.msi";  //DOESN'T WORK
string testPath2 = @"C:\users\username\desktop\product.msi";         //DOES WORK

ProcessStartInfo startMsiexecProcess = new ProcessStartInfo(@"C:\windows\system32\msiexec.exe");
startMsiexecProcess.Arguments = @"/i " + testPath1;
Process.Start(startMsiexecProcess);

J'ai essayé des variations sur le testPath1 - c'est-à-dire ne pas utiliser de nom pleinement qualifié, et d'autres partages réseau. J'ai également essayé d'ajuster l'espacement des Arguments.

Enfin, si je change le chemin d'accès "local" en un format entièrement qualifié comme ceci :

string testPath2 = @"\\mylocalmachine.domain.com\c$\users\username\desktop\product.msi";

il fonctionne correctement. Cela me conforte dans l'idée que ce n'est probablement pas une chaîne de caractères mal formée qui pose problème lorsque j'essaie d'exécuter cette commande sur le partage réseau.

Est-il possible d'exécuter un msi à partir d'un partage réseau ?

0voto

patros Points 4538

C'est l'espace sur mon chemin : "builds 1.0". Process.Start peut l'interpréter comme un délimiteur d'argument.

Pour résoudre ce problème, j'ai ajouté des guillemets autour du chemin d'accès au MSI à exécuter, par exemple :

"\"" + testPath1 + "\""

ce post m'a conduit à la solution : Comment traiter les valeurs avec les espaces dans le processus de création de valeur

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X