2016-02-09 1 views
1

Je suis en train de compiler deux fichiers Powershell séparés en un seul .EXE en utilisant la solution PowerGUI. Il semble soutenir cette fonctionnalité car il a même un bouton appelé Dépendances à cet effet. Mais je ne pouvais pas trouver un exemple de la façon de se référer à un fichier de dépendance de tout autre fichier PowerShell inclus dans le même .EXEcomment faire référence à un fichier PowerShell de dépendance lors de la compilation en EXE en utilisant PowerGUI

Mon principal fichier PS ne contient la ligne suivante:

Start-Process powershell.exe -ArgumentList "-noexit -file C:\PGM\usbControl.ps1" 

I aimerait savoir comment encoder "C: \ PGM \ usbControl.ps1" comme chemin relatif dans le paquet .EXE et pointer vers la dépendance incluse.

Merci.

Répondre

0

Enfin, je n'ai pas eu besoin d'utiliser un IDE externe, le code PowerShell standard a fait l'affaire. Code intégré! :) le ScriptBlock était la clé.

$sb = { 

     $query = 'SELECT * FROM __InstanceOperationEvent WITHIN 5 WHERE TargetInstance ISA ''Win32_LogicalDisk'' AND TargetInstance.DriveType=2' 

     Register-WmiEvent -Query $query -SourceIdentifier RemovableDiskDetection -Action { 
      $class = $eventArgs.NewEvent.__CLASS 
      $device = $eventArgs.NewEvent.TargetInstance.DeviceID 

      $wshell = New-Object -ComObject Wscript.Shell 
      switch ($class) 
      { 
       __InstanceCreationEvent { 
        $path = $device + '\STAMP.kiosk\' 
        Write-Host '*** Checking the existence of the file $path' 
        if (Test-Path -Path $path) 
        { 
         $wshell.Popup('Inserted, device id: $device WITH STAMP.kiosk', 0, 'Done', 0x1) 

        } 
        else 
        { 
         $wshell.Popup('Inserted, device id: $device WITHOUT STAMP.kiosk', 0, 'Done', 0x1) 
        } 
       } 
       __InstanceDeletionEvent { 
        $wshell.Popup('Removed, device id: $device ', 0, 'Done', 0x1) 
       } 
      } 
     } 
} 

start-process powershell.exe -argument "-noexit -nologo -noprofile -windowstyle hidden -command $sb" 

Après cette belle solution, je viens d'utiliser l'outil PS2EXE pour le compiler.

.\ps2exe.ps1 -noConsole -inputFile .\magic.ps1 -outPutFile magic.exe