Jump to content

Computernamen per Powershell vergeben mit Abfrage


Direkt zur Lösung Gelöst von Cybquest,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Na denn los: 'Malen' könntest Du das Menü mit Write-Host.  Oder mit einem Here-String. Die Auswahl-Logik könnte Dir ein Switch-Statement bereitstellen. Die 'Sub-Scripte' könntest Du über Start-Process starten. Um Alles drumherum noch ein While-Loop, oder ein Do-Loop, wenn Du 'im Menü' bleiben möchtest

Jetzt hast ihn aber gefordert smile.gifsmile.gifsmile.gif

BTW: Du bist auch im Technet, oder?

Link zu diesem Kommentar

Soooo aufwändig und fehleranfällig ist ein einfaches Menü mit Buttons nun auch wieder nicht ;-)

 

Kl. Beispiel:

clear
[void][Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
$Form = New-Object System.Windows.Forms.Form
$Form.width=250
$form.height=200
$Form.Text = "PS Formular"

Function MakeButton([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
}

$btn1 = MakeButton "Notepad" 30 20
$btn1.Add_Click({
  [Diagnostics.Process]::Start("notepad.exe")
})
$btn2 = MakeButton "Cmd" 60 20
$btn2.Add_Click({
  [Diagnostics.Process]::Start("cmd.exe")
})
$btn3 = MakeButton "ENDE" 90 20
$btn3.Add_Click({
  $Form.Close()
})

$Form.ShowDialog()

Link zu diesem Kommentar

Wenn dir (und deinem AG) viel an einer GUI liegt, dann kauf dir Powershell Studio

https://www.sapien.com/software/powershell_studio

 

Damit klickst du eine grafische Oberfläche (Fenster, Menü, Buttons) ganz einfach zusammen und hängst an die grafischen Objekte deine eigenen PS-Skripte. Am Ende kannst du dann eine *.exe aus dem PS-Code compilieren.

Ich habe noch die Version von 2014, aber die ist auch schon sehr gut.

 

blub

Ja die Gui bei PS ist nicht sonderlich, auch die Gridausgabe ist mehr oder kaum brauchbar - Man kann leider keine Aktionen in der Grid hinterlegen.

Im Regelfall reicht aber die Konsolenausgabe aus - auch wenn es nicht toll aussieht...

Nachteilig (oder auch nicht) sehe ich dass du eine Anwendung aus dem Skript erzeugst, gerade wenn zügige Anpassungen gewünscht sind, ist das natürlich ungünstig.

 

Im Regelfall soll die PS Vorgänge automatisieren und verarbeiten, als Ergebnis erhalte ich dann eher einen Report via Mail, DB Zugriffe, oder auch Flatfiles usw... Hier und da wäre eine Gui schick, aber wirklichen Bedarf hatte ich noch nicht.

Für richtige Workflows würde ich eher auf eine passende Lösung setzen, wo dann vielleicht wieder die PowerShell im Hintergrund werkelt und dann z.B. als Job auf eine DB zugreift und entsprechende Benutzer anlegt usw...

 

Ja .Net kann der PS hier und da den ars*** retten, manchmal ist aber ehrlichweise dann die PowerShell auch das falsche Werkzeug was man nutzt ;)

bearbeitet von PowerShellAdmin
Link zu diesem Kommentar

@Cybquest

Danke.

Das ist ein nettes Script. Wie kann ich die Buttons vergrößern, falls ich einen längeren Text einsetzen will. Und wo setze ich z.B. Befehle ein, wenn ich z.B. unter Button 1 den Befehl: 

net user meinbenutzername /logonpasswordchg:no. 

einsetzen möchte?

 

So vielleicht:

$btn1.Add_Click({
  [Diagnostics.Process]::net user meinbenutzername /logonpasswordchg:no

@alle

Ich würde gerne noch einen Button mit dem Befehl einsetzen, wo ich z.B. einen bestehenden User umbenennen kann. Der alte Username steht bereits fest, der neue soll aus 10 Namen ausgefählt werden.

Abfolge wäre:

Usernamen ändern Button.

Dann kommt die Abfrage: Welcher Name soll es sein?

Auswahl der Namen:

while(($inp = Read-Host -Prompt "Wählen Sie einen Namen") -ne "Q"){
switch($inp){
1 {"Befehl für Umbenennung auf User1"}
2 {"Befehl für Umbenennung auf User2"}
3 {"Befehl für Umbenennung auf User3"}
4 {"Befehl für Umbenennung auf User4"}
default {"Ungültige Eingabe"}
}
}

Wenn Eingabe erfolgt, dann wieder zurück zur Auswahl bzw. das Fenster wird geschlossen, das Menü mit der Auswahl bleibt die ganze Zeit bestehen.

bearbeitet von Robmantuto
Link zu diesem Kommentar

Habe noch eine Frage zu dem Button-Script. Wie führe ich anderes .ps1-Script per Button aus? Bekomme es irgendwie nicht hin.

habe es mit powershell -command versucht, klappt aber nicht.

Beispiel

[Diagnostics.Process]::Start('C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe','"d:\Sciptpfad\meinscript.ps1"')

bearbeitet von Robmantuto
Link zu diesem Kommentar

Ich möchte mit dem einen Klick den Computernamen umbenennen, jedoch würde ich das in einem neuen Fenster tun. Dort werde ich gefragt, wie der Computer heissen soll. Das alles ist einer .ps1 Datei gespeichert. Natürlich könnte man es in einem Script packen, aber ich würde es gerne so machen. Und ja, wenn ich mein Script separat starte, dann geht es, nur über den Button geht es nicht obwohl auf die Datei verwiesen.

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...