9
votes

Déterminez si MSI / EXE prend en charge certains drapeaux / arguments?

Je crée un programme de mise à jour automatique pouvant exécuter MSIS et EXES. Ces MSIS / EXES ne sont pas les miens. J'aimerais utiliser une option d'installation sans surveillance / silencieuse s'il existe. Existe-t-il un moyen de déterminer si un MSI / EXE a une sorte de support d'installation sans surveillance et, dans l'affirmative, obtenir le bon argument afin que je puisse le transmettre au fichier lorsque je l'exécute? Je sais, par défaut '/ silencieux' est l'option d'installation silencieuse, mais je suis également curieuse des EXES et des MSIS qui ont peut-être personnalisé cette option.

Cette question - Détecter les paramètres MSI pour une installation sans surveillance - est similaire, Mais les liens de la réponse sont cassés et je ne peux pas comprendre de la réponse ce que je ferais.

Merci.


2 commentaires

De quelle manière sont-ils cassés? Les erreurs? Les choses ne se présentent pas? La spécifier dans votre question pourrait permettre aux gens de vous aider à les casser.


Ce lien - scriptbox.at.tt / ... - C'était celui de la réponse qui a un script est cassé.


3 Réponses :


5
votes

Si c'est MSI, les paramètres sont standard, vous pouvez obtenir la liste des options avec msiexec /? ou afficher Les DOCS sur MSDN .

Il n'y a aucun moyen de détecter des options pour un EXE arbitraire quelles options qu'elle prend en charge, le cas échéant. Essayez de trouver des documents du fournisseur ou d'essayer /? Switch ...


2 commentaires

D'accord, je pensais qu'il n'y aurait pas de moyen de comprendre facilement si un exécutable a certaines fonctionnalités, mais cela valait la peine de demander. Je ne sais pas qui serait les vendeurs, donc je ne peux donc pas simplement lire leurs documents. Merci.


@Chad Vous pouvez essayer de regarder à travers des chaînes dans les exès, avec un éditeur de texte. Habituellement, vous pouvez voir tous les commutateurs: le programme a besoin de ces chaînes pour comparer des arguments. Si .exe est Unicode, vous verrez des "espaces" entre chaque personnage. C'est une ingénierie inversée de la même manière, mais cela peut aider parfois.



39
votes

Il suffit de traverser l'installateur avec la journalisation activée et il vous indiquera tous les paramètres possibles que le MSI spécifique accepte.

Par exemple: msiexec / journal logfile.txt / i installer.msi

Exécuter via l'ensemble du programme d'installation et le fichier logfile.txt vous montrera les paramètres passables comme "propriété (s)" ou "propriété (C)" avec le nom de toutes les capsules.

Source: http: //www.codeproject .Com / Articles / 16767 / ARTICLES DE COMMANDE-PASS-COMMAND-ARGUMENTS-TO-MSI-INSTALLE


1 commentaires

Superficiellement simple et directe par rapport à tous les autres scripts et programmes maintenant-morts dans d'autres réponses. Merci!



2
votes

( note em>: J'ai posté une variante de cette réponse sur Détecter les paramètres MSI pour une installation sans assistance question que vous avez mentionnée.)

Il y a Lesssi A>, est un excellent outil qui fonctionne certainement ici si vous êtes prêt à utiliser une interface graphique et à faire une enquête manuelle. p>

Vous pouvez essayer la commande suivante: p> xxx pré>

... Mais il est peu probable que ce qui précède ait tout ce que vous recherchez. P >

Un moyen de garantir essentiellement que vous obtenez toutes les propriétés possibles consiste à effectuer réellement une installation, une réparation ou une désinstallation avec le fichier MSI et connectez-vous le processus comme mentionné dans La réponse de Jon Heese . P>

Si vous souhaitez que moins de texte tamillez dans le fichier journal, vous pouvez définir le paramètre de journal pour enregistrer uniquement les propriétés: p> xxx pré>

ou P>

cmd /C "FOR /F delims^=^| %G IN ('DIR /B/S ""%DirToSearch%\*.msi""') DO msiexec /a ""%G"" /qr /lp! ""%~nG_log.txt"" TARGETDIR=""%~dpnG_extract"" && RD /S/Q ""%~dpnG_extract"""


1 commentaires

Merci pour votre décision! Grand programme! La tâche semblait installer uacoresvcsetup.msi en mode silencieux et transmettez la valeur du nom d'hôte et du port. Ces paramètres ne sont pas inclus dans la documentation officielle !!! Exécuter Lesmsi , sélectionnez la vue Fichier, TABLE VIEW et Personnalisation Tables. MSIEXEC / I UACORESVCSETUP.MSI UAVR_SERVERNAME = "SERVERNAME" UAVR_SERVORTPORT = "123"