/ / Comment “ouvrir avec” dans un fichier batch - windows, powershell

Comment “ouvrir avec” dans un fichier batch - windows, powershell

J'ai un script windows powershell qui seradisponible sur un serveur pour mes utilisateurs. Je ne veux pas qu’ils aient à chercher le script PS, cliquez avec le bouton droit de la souris et cliquez sur «Exécuter avec Powershell» ou effectuez une «ouverture avec». Le programme par défaut de Windows (au moins la version 7) est le bloc-notes.

Je veux faire un fichier de commandes pour le faire. J'ai essayé:

start "c:myfile.ps1" powershell.exe

et quelques autres variantes, mais tout ce que j’ai pu faire, c’est soit de démarrer PowerShell, soit d’ouvrir mon fichier dans son programme par défaut, le bloc-notes

Tout conseil est apprécié! Merci!

Question bonus: Si je lance mon fichier de commandes en tant qu'administrateur, mon script PS sera-t-il également exécuté en tant qu'administrateur?

Réponses:

6 pour la réponse № 1

Il suffit d'utiliser le -file argument pour PowerShell.exe dans votre fichier de commandes:

PowerShell.exe -file c:MyFile.ps1

En outre, la stratégie d'exécution de certains utilisateurs peut être configurée de manière à empêcher l'exécution des scripts. Vous souhaiterez donc peut-être effectuer les opérations suivantes:

PowerShell.exe -ExecutionPolicy Bypass -file c:MyFile.ps1

Si vous souhaitez utiliser start pour le lancer, vous pouvez le faire comme l’a noté Ansgar Wiechers en exécutant:

start "" PowerShell.exe -ExecutionPolicy Bypass -file c:MyFile.ps1

Quelques notes concernant l’utilisation start: Par défaut, PowerShell sera lancé dans unfenêtre séparée et continuez à exécuter le reste du fichier de commandes sans attendre la fermeture de la fenêtre PowerShell. Si cela n'est pas souhaitable, vous avez deux options. Vous pouvez spécifier /wait qui attendra que la fenêtre PowerShellfermer avant de continuer le fichier de commandes, ou vous pouvez utiliser l'option / B ne sera pas ouvrir une nouvelle fenêtre, et exécutera PowerShell dans la fenêtre de la console en cours.

Et enfin, oui, si votre fichier de commandes est exécuté dans le contexte Administrateur, PowerShell le sera également.