Robmantuto 1 Geschrieben 9. November 2016 Autor Melden Teilen Geschrieben 9. November 2016 (bearbeitet) So habe ich es gemacht: $btn4 = MakeButton "[4] Computernamen umbenennen" 100 50 $btn4.Add_Click({& 'E:\Skripte\03.A.Computernamen umbenennen.ps1' }) Das Script, das gestartet wird: Write-Output "---------------------" Write-Output "Wählen Sie bitte aus"; Write-Output "---------------------" Write-Output "Computer (bei einem Computer-Rechner)"; Write-Output "Computer001-010 (bei mehreren Computern)"; Write-Output "---------------------" [string]$Computername = Read-Host "Bitte geben Sie den Computernamen, der vergeben werden soll?" Rename-Computer -NewName $Computername Write-Output "_____________________________________________________"; Write-Output "Der Computername $Computername wurde zugewiesen." Write-Output "_____________________________________________________"; Write-Output "Bitte führen Sie einen Neustart des Computers durch"; Write-Output "_____________________________________________________"; Start-Sleep -s 5 Mit dem absoluten Pfad funktioniert es. Zwei Probleme habe ich: Das Fenster des Computername-Umbenennen-Scriptes geht nicht von alleine zu, wenn ich es schliesse, schließt sich auch mein Auswahlfenster. Das möchte verhindern. Zweites Problem: Die Write-Outputs werden nicht angezeigt, nur die Abfrage: "Bitte geben Sie den Computernamen, der vergeben werden soll?" Starte ich das Script alleine, dann funktioniert es. Eine andere Möglichkeit, wie hier schon erwähnt, wäre das separate Script in meinem Hauptscript einzubauen, leider weiß ich nicht wie ich unter AddClick einbauen soll. Einfügen des Inhalts hat nicht funktioniert. bearbeitet 9. November 2016 von Robmantuto Zitieren Link zu diesem Kommentar
Beste Lösung Cybquest 36 Geschrieben 9. November 2016 Beste Lösung Melden Teilen Geschrieben 9. November 2016 (bearbeitet) Ich hätte gesagt, wenn schon mit Forms gearbeitet wird, dann alles ;-) Bsp. für Dein "Problem": clear [void][Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") $MainForm = New-Object System.Windows.Forms.Form $MainForm.width=250 $MainForm.height=200 $MainForm.Text = "PS Testformular" Function MakeButton($Form,[string]$btext,[int]$btop,[int]$bleft){ $btn = New-Object System.Windows.Forms.Button $btn.Text = $btext $btn.Top = $btop $btn.Left= $bleft $Form.Controls.Add($btn) return $btn } Function MakeTextbox($Form,[string]$tcaption,[int]$ttop,[int]$tleft) { $tbox = new-object System.Windows.Forms.Textbox $tblabel = new-object System.Windows.Forms.Label $tblabel.Text=$tcaption $tbox.Top = $ttop $tbox.Left= $tleft $tblabel.Top = $ttop -25 $tblabel.Left= $tleft $Form.Controls.Add($tblabel) $Form.Controls.Add($tbox) return $tbox } Function RenComputer() { $SubForm = New-Object System.Windows.Forms.Form $SubForm.width=250 $SubForm.height=200 $myNewName = MakeTextbox $SubForm "Neuer Name:" 40 10 $subbtn1 = MakeButton $SubForm "OK" 100 10 $subbtn1.Add_Click({ [System.Windows.Forms.MessageBox]::Show($myNewName.Text,"Rename to",0) # Rename-Computer -NewName $myNewName.Text }) $subbtn2 = MakeButton $SubForm "Schliessen" 100 100 $subbtn2.Add_Click({ $SubForm.Close() }) $SubForm.ShowDialog() } $btn1 = MakeButton $MainForm "Cmd" 30 10 $btn1.Add_Click({ [Diagnostics.Process]::Start("cmd.exe") }) $btn2 = MakeButton $MainForm "Rename" 60 10 $btn2.Add_Click({ RenComputer }) $btn3 = MakeButton $MainForm "ENDE" 120 10 $btn3.Add_Click({ $MainForm.Close() }) $MainForm.ShowDialog() ... musst im Prinzip "nur noch" das Kommentar-# vor "Rename-Comupter" weg machen :) ... und ggf. die "Messagebox"-Zeile rausharzen... bearbeitet 9. November 2016 von Cybquest Zitieren Link zu diesem Kommentar
Robmantuto 1 Geschrieben 30. November 2016 Autor Melden Teilen Geschrieben 30. November 2016 Gibt es eine Möglichkeit zwei Befehle hintereinander mit einem Klick auszuführen? Z.B. einmal ein Programm starten und gleich danach etwas in die Registry eintragen oder ein anderes Programm starten. Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 30. November 2016 Melden Teilen Geschrieben 30. November 2016 ?!?... ist die Frage ernst gemeint? $btnx.Add_Click({ [Diagnostics.Process]::Start("cmd.exe") [Diagnostics.Process]::Start("notepad.exe") MeineCooleFunktion }) Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.