[PowerShell] Installer un EXE depuis program files (X86)

Installer un EXE depuis program files (X86) [PowerShell] - Shell/Batch - Programmation

Marsh Posté le 26-04-2017 à 12:03:18    

Hello, nouvelle question, histoire de pas polluer plusieurs thread je réutilise le même
 
En powershell, je souhaite lancer une app déjà stockée :   C:\Program Files (x86)\Microsoft OneDrive\OneDriveSetup.exe
Cependant le x86 semble lui poser problème, vous auriez une idée svp ?
Merci !
 

Code :
  1. $Fichierinstall = "C:\Program Files (x86)\Microsoft OneDrive\OneDriveSetup.exe"
  2. Invoke-Expression $Fichierinstall


Voici le retour du coup  

Code :
  1. x86 : The term 'x86' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was
  2. included, verify that the path is correct and try again.
  3. At line:1 char:19
  4. + C:\Program Files (x86)\Microsoft OneDrive\OneDriveSetup.exe
  5. +                   ~~~
  6.     + CategoryInfo          : ObjectNotFound: (x86:String) [], CommandNotFoundException
  7.     + FullyQualifiedErrorId : CommandNotFoundException


 
 
 
 
 
 
Anciennes questions :
 
En Powershell, je souhaite voir si OneDrive est installé sur la machine du coup j'en suis à  

Code :
  1. #Vérification de la présence de OneDrive sur la machine
  2. Set-Location HKCU:\Software\Microsoft
  3. Get-ChildItem | Where-Object {$_.name -cmatch "OneDrive"}


Du coup j'ai bien un objet quand j'ai le dossier OneDrive
Si je le nomme patate, rien ne remonte, ok
mais si je nommes le dossier OneDrive.old il remonte quand même, comment faire pour limiter strictement au dossier appelé "OneDrive" svp ?
Merci


Message édité par clads92 le 27-04-2017 à 10:01:27

---------------
RVLP  ~ Mes Mod console ~ NewGame+ (Podcast)
Reply

Marsh Posté le 26-04-2017 à 12:03:18   

Reply

Marsh Posté le 26-04-2017 à 13:09:18    

J'y connais rien à Powershell mais comme il semble que ce soit des regexp:

Code :
  1. Get-ChildItem | Where-Object {$_.name -cmatch "^OneDrive$"}


---------------
sheep++
Reply

Marsh Posté le 26-04-2017 à 13:11:07    

Bonjour !
 
Si j'ai bien compris la façon dont le Where-Object fonctionne, pour faire une recherche exacte, remplacer le -cmatch par -eq, (ou -ceq pour la version "case sensitive" ).
 
Bonne continuation.


---------------
On n'est jamais très fort pour ce calcul !
Reply

Marsh Posté le 26-04-2017 à 13:18:03    

h3bus a écrit :

J'y connais rien à Powershell mais comme il semble que ce soit des regexp:

Code :
  1. Get-ChildItem | Where-Object {$_.name -cmatch "^OneDrive$"}



 
Merci, cependant je n'ai aucun retour avec cette commande
 

Farian a écrit :

Bonjour !
 
Si j'ai bien compris la façon dont le Where-Object fonctionne, pour faire une recherche exacte, remplacer le -cmatch par -eq, (ou -ceq pour la version "case sensitive" ).
 
Bonne continuation.


 
Bonjour, Pareil, aucun retour, que la clef existe ou pas :(
 
Merci à vous :)
 


---------------
RVLP  ~ Mes Mod console ~ NewGame+ (Podcast)
Reply

Marsh Posté le 26-04-2017 à 13:29:26    

Tu peux nous afficher ce que retourne $_.name ?
 
Le nom iclue peut-être le chemin d'accès, essaye l'une de ces lignes

Code :
  1. Get-ChildItem | Where-Object {$_.name -cmatch "OneDrive$"}
  2. Get-ChildItem | Where-Object {$_.name -cmatch "[\\/]OneDrive$"}


Message édité par h3bus le 26-04-2017 à 13:29:40

---------------
sheep++
Reply

Marsh Posté le 26-04-2017 à 13:34:24    

trouvé en parallèle, il faut le chemin d'accès complet du coup
 
ce qui donne  

Code :
  1. Get-ChildItem | Select-Object -property Name | ? {$_.name -clike 'HKEY_CURRENT_USER\Software\Microsoft\OneDrive'}



---------------
RVLP  ~ Mes Mod console ~ NewGame+ (Podcast)
Reply

Marsh Posté le 26-04-2017 à 17:29:42    

Nouvelle question en 1er post svp :)


---------------
RVLP  ~ Mes Mod console ~ NewGame+ (Podcast)
Reply

Marsh Posté le 27-04-2017 à 08:40:11    

Pour ta deuxième question, tu connais google?


---------------
sheep++
Reply

Marsh Posté le 27-04-2017 à 09:34:29    

Oui, j'ai même essayé plusieurs solutions avant de poster ici, tu m'as aidé plus haut et je t'en remercie, mais si tu ne veux pas m'aider plus, pas de problèmes je comprends mais répondre "tu connais google" ce n'est pas très constructif.

 

Pour le coup je suis en train de me former sur PS, c'est normal que je galère, je ne demande pas une solution toute cuite mais juste être mis sur la voie

 

Edit : J'ai finalement trouvé, pour lancer un exécutable contenant un chemin à espace, il faut utiliser & avant les guillemets
du coup fonctionnel avec

 
Code :
  1. $Fichierinstall = &"C:\Program Files (x86)\Microsoft OneDrive\OneDriveSetup.exe"
  2. Invoke-Expression $Fichierinstall


Message édité par clads92 le 27-04-2017 à 10:00:56

---------------
RVLP  ~ Mes Mod console ~ NewGame+ (Podcast)
Reply

Marsh Posté le 27-04-2017 à 10:24:46    

J'y connais rien à Powershell, mais en cherchant "powershell run exe" je tombe sur plein d'infos donc http://stackoverflow.com/questions [...] and-quotes

 

Du coup il semble que la commande soit

Code :
  1. & <executable>
 

Edit: bah voilà


Message édité par h3bus le 27-04-2017 à 10:25:14

---------------
sheep++
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed