Voici ce que je suis en train de faire:Escapaing problème entre guillemets dans le script de lots mixtes/powershell en cours d'exécution
@ECHO OFF
CALL powershell -ExecutionPolicy RemoteSigned -Command "$sh = new-object -com 'Shell.Application'; $sh.ShellExecute('powershell', '-NoExit -Command "$path = """HKLM:\SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}""";echo $path"', '', 'runas')"
PAUSE
Fondamentalement, je veux avoir un fichier de commandes que je peux double-clic, qui se déroulera un script PowerShell qui appelle un autre script PowerShell mais demande des privilèges d'administrateur et exécute cette commande en tant qu'administrateur.
Je vais avoir des problèmes si, avec les doubles guillemets, je pense ... J'ai essayé beaucoup de choses, mais ne peut pas sembler le fixer, voici le message d'erreur powershell:
Bad numeric constant: 4D.
At line:1 char:57
+ $path = HKLM:\SYSTEM\CurrentControlSet\Control\Class\{4D <<<< 36E972-E325-11C
E-BFC1-08002BE10318};echo $path
+ CategoryInfo : ParserError: (4D:String) [], ParentContainsError
RecordException
+ FullyQualifiedErrorId : BadNumericConstant
PS C:\Windows\system32>
Quelle est la différence entre l'utilisation de Start-Process ou la création d'un objet shell? Je préfère avoir un seul fichier à exécuter ... –
Moins de travail IMO pour utiliser une fonctionnalité intégrée que d'avoir à échapper à des objets COM et c'est moins de type je pense. :-) –