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-ID: 321512

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

Ausgedruckt am: 27.11.2024 um 13:11 Uhr

131381
Lösung 131381 19.11.2016 aktualisiert um 17:26:42 Uhr
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ß
Markus2016
Markus2016 20.11.2016 um 10:59:23 Uhr
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
131381
131381 20.11.2016 aktualisiert um 11:29:56 Uhr
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.
Markus2016
Markus2016 20.11.2016 um 23:58:45 Uhr
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
Markus2016
Markus2016 21.11.2016 um 19:36:47 Uhr
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