markus2016
Goto Top

Cmd Befehle in Powershell GUI aufrufen

Hallo zusammen,

ich brauche etwas Hilfe.

In meiner erstellten GUI möchte ich ein paar Funktionen mit cmd Befehlen aufrufen.
Leider funktioniert dies nicht und ich habe gerade keine Ahnung woran es liegt.

Vielen Dank für Eure Unterstützung.

Schöne Grüße

Markus 2016

z.B.
Function rename_Image {

$Global:RenameImageButton = New-Object System.Windows.Forms.Button
$Global:RenameImageButton.Location = New-Object System.Drawing.Size(560,320)
$Global:RenameImageButton.Size = New-Object System.Drawing.Size(120,25)
$Global:RenameImageButton.ImageAlign = "MiddleLeft"      
$Global:RenameImageButton.TextAlign = "MiddleCenter"  
$Global:RenameImageButton.Image = [System.Drawing.Image]::FromFile($Global:Bild[7])
$Global:RenameImageButton.Font = $Global:Schrift[2]                                   
$Global:RenameImageButton.ForeColor = "red" #$Global:Farbe[1]  
$Global:RenameImageButton.FlatStyle = $Global:ButtonSyle
$Global:RenameImageButton.FlatAppearance.BorderColor = $Global:Farbe[2]
$Global:RenameImageButton.FlatAppearance.BorderSize = 1
$Global:RenameImageButton.FlatAppearance.MouseDownBackColor = $Global:Farbe
$Global:RenameImageButton.FlatAppearance.MouseOverBackColor = $Global:Farbe[2]
$Global:RenameImageButton.FlatAppearance.CheckedBackColor = $Global:Farbe[2]  
$Global:RenameImageButton.Text = "Image"  
$Global:RenameImageButton.Add_Click({

Imagex /flags Professional /info "$Global:Projekt\Image_windows\sources\install.wim" "$Global:WindowsIndex" "$Global:WindowsEdition" "$Global:WindowsBeschreibung" "Version:" $Global:WindowsVersion "Build:" $Global:WindowsBuild  

})
$Global:Window.Controls.Add($Global:RenameImageButton)
}

Trotz dass ich das ADK als Modul eingebunden habe.

Function ADK {

Import-Module "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\$env:Processor_Architecture\DISM"  
$env:path = "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\$env:Processor_Architecture\DISM"  

} ADK

Wenn ich den $env:path definiere, passiert garnichts.
Ohne $env:path wird folgende Meldung ausgegeben.

Imagex : Die Benennung "Imagex" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines  
ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern
enthalten), und wiederholen Sie den Vorgang.
In C:\Windows_Home\Windows-Image erstellen\Windows-Image erstellen.ps1:1527 Zeichen:1
+ Imagex /flags Professional /info "$Global:Projekt\Image_windows\sourc ...  
+ ~~~~~~
    + CategoryInfo          : ObjectNotFound: (Imagex:String) , CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Content-Key: 321512

Url: https://administrator.de/contentid/321512

Printed on: April 24, 2024 at 01:04 o'clock

Mitglied: 131381
Solution 131381 Nov 19, 2016 updated at 16:26:42 (UTC)
Goto Top
$env:path = "C:\ .........
Das ist der erste Fehler die PATH komplett zu überschreiben.
deswegen dann auch der Folgefehler
Wenn ich den $env:path definiere, passiert garnichts.

Gebe beim Aufruf einfach den kompletten Pfad zur ImageX Exe an oder schreibe ihn in eine Variable und Starte den Befehl dann mit führendem Punkt
. $ImageXPath "Parameter1" "Parameter2" "ParameterX"
Gruß
Member: Markus2016
Markus2016 Nov 20, 2016 at 09:59:23 (UTC)
Goto Top
Hallo mikrotik,

danke für den Hinweis,

Aber auch dann funktioniert es nicht.

$ImagexPath = "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\$env:Processor_Architecture\DISM"  

.$ImagexPath\imagex /flags Professional /info "$Global:Projekt\Image_windows\sources\install.wim" $Global:WindowsIndex $Global:WindowsEdition $Global:WindowsBeschreibung "Version:" $Global:WindowsVersion "Build:" $Global:WindowsBuild  

. : Die Benennung "\imagex" wurde nicht als Name eines Cmdlet, einer Funktion, einer Skriptdatei oder eines  
ausführbaren Programms erkannt. Überprüfen Sie die Schreibweise des Namens, oder ob der Pfad korrekt ist (sofern
enthalten), und wiederholen Sie den Vorgang.
In C:\Windows_Home\Windows-Image erstellen\Windows-Image erstellen.ps1:1529 Zeichen:2
+ .$ImagexPath\imagex /flags Professional /info "$Global:Projekt\Image_ ...  
+  ~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (\imagex:String) , CommandNotFoundException
    + FullyQualifiedErrorId : CommandNotFoundException

Schöne Grüße

Markus2016
Mitglied: 131381
131381 Nov 20, 2016 updated at 10:29:56 (UTC)
Goto Top
Du hast das .exe vergessen ...
$ImagexPath = "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\$env:Processor_Architecture\DISM\imagex.exe"  
. $ImagexPath /flags Professional ............
Und bedenke das die Parameter hier einer bestimmten Abfolge folgen müssen manche müssen mit Anführungszeichen eingefasst sein da ansonsten die PS einen weiteren Parameter übergibt den die cmd als neuen Parameter interpretiert!
Deine Parameter für ImageX sind so nämlich falsch.
Member: Markus2016
Markus2016 Nov 20, 2016 at 22:58:45 (UTC)
Goto Top
Hallo mikrotik,

ich habe mal meine Parameter korrigiert.
Danke für den Hinweis.

$ImagexPath = "C:\Program Files (x86)\Windows Kits\10\Assessment and Deployment Kit\Deployment Tools\$env:Processor_Architecture\DISM\imagex.exe"  

.$ImagexPath /flags Professional /info """$Global:Projekt\Image_windows\sources\install.wim""" "$Global:WindowsIndex" """$Global:WindowsEdition"""  $("""$Global:WindowsBeschreibung" + ' Version: ' + "$Global:WindowsVersion" + ' Build: ' + "$Global:WindowsBuild""")  

Mittels Write-Host Zeigt PS mir die Parameter jetzt so an.

/flags Professional /info "C:\Windows_Home\Windows 10 (Lenovo)\Image_windows\sources\install.wim" 1 "Windows 10 Pro" "Windows 10 Professional 64-Bit de-DE Version: 1607 Build: 10.0.14393.447"  

Das sollte jetzt passen.

Von der Konsole bekommen ich jetzt aber folgende Meldung.

Der Ausdruck nach "." in einem Pipelineelement hat ein ungültiges Objekt erzeugt. Der Ausdruck muss einen  
Befehlsnamen, Skriptblock oder ein CommandInfo-Objekt ergeben.
In C:\Windows_Home\Windows-Image erstellen\Windows-Image erstellen.ps1:1535 Zeichen:2
+ .$ImagexPath /flags Professional /info """$Global:Projekt\Image_windo ...  
+  ~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (:) , RuntimeException
    + FullyQualifiedErrorId : BadExpression

Hast Du vielleicht nochmal einen Tipp?

Vielen Dank

Schöne Grüße

Markus2016
Member: Markus2016
Markus2016 Nov 21, 2016 at 18:36:47 (UTC)
Goto Top
Hab es jetzt gelöst.

.$env:path\imagex /flags Professional /info ....

Danke nochmal lag wohl doch nur an den Parametern.

Schöne Grüße

Markus