Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit

gelöst PowerShell GUI Skript ausführen durch "Start" Knopf

Mitglied: 135531

135531 (Level 1)

12.03.2018 um 14:43 Uhr, 277 Aufrufe, 2 Kommentare

Hi @all,

ich bin absoluter Neuling im Thema PowerShell. Ich versuche derzeit eine GUI für DDA (Discrete Device Assignment) zu bauen, bin auch schon soweit, dass das Skript die VMs und PCI-Geräte ausliest. Der nächste Schritt wäre nun das DDA Skript in das "GUI Skript" einzubauen, sprich wenn ich auf "Start" drücke soll das DDA skript ausgeführt werden und die vorher ausgewählte VM und das PCI-Gerät übernehmen. Leider habe ich nicht mal einen Ansatz wie das funktionieren könnte.

Ich bin natürlich auch offen für andere Lösungsvorschläge, hauptsache durch das "Start" drücken wird das PCI-Gerät in die VM übernommen (Discrete Device Assignment).

Mein Skript sieht derzeit wie folgt aus:
01.
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Drawing") 
02.
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms") 
03.
$objForm = New-Object System.Windows.Forms.Form 
04.
$objForm.Backcolor="White" 
05.
$objForm.StartPosition = "CenterScreen" 
06.
$objForm.Size = New-Object System.Drawing.Size(400,400) 
07.
$objForm.Text = "Discrete Device Assignment" 
08.
 
09.
#VM Namen eingeben 
10.
 
11.
$objForm.Add_Load({ 
12.
    $objComboBox1.Items.AddRange((Get-VM | select -Expand Name)) 
13.
}) 
14.
$objComboBox1.Add_SelectedIndexChanged({ 
15.
    [System.Windows.Forms.MessageBox]::Show((Get-VM -Name $objComboBox1.SelectedItem | fl * | out-string)) 
16.
}) 
17.
$objLabel = New-Object System.Windows.Forms.Label 
18.
$objLabel.Location = New-Object System.Drawing.Size(50,50) 
19.
$objLabel.Size = New-Object System.Drawing.Size(250,50) 
20.
$objLabel.Text = "Bitte wählen sie eine VM aus:" 
21.
$objForm.Controls.Add($objLabel) 
22.
 
23.
$objComboBox1 = New-Object System.Windows.Forms.Combobox 
24.
$objComboBox1.Location = New-Object System.Drawing.Size(50,100) 
25.
$objComboBox1.Size = New-Object System.Drawing.Size(250,50) 
26.
$objComboBox1.Height = 70 
27.
$objForm.Controls.Add($objComboBox1) 
28.
$objForm.TopMost = $True 
29.
 
30.
 
31.
#PCI-Gerät Location Path angeben 
32.
 
33.
$objForm.Add_Load({ 
34.
    $objComboBox2.Items.AddRange((gwmi cim_controller | select -Expand Name)) 
35.
}) 
36.
$objComboBox2.Add_SelectedIndexChanged({ 
37.
    [System.Windows.Forms.MessageBox]::Show((gwmi cim_controller | select -Expand Name)) 
38.
}) 
39.
 
40.
$objLabel = New-Object System.Windows.Forms.Label 
41.
$objLabel.Location = New-Object System.Drawing.Size(50,150) 
42.
$objLabel.Size = New-Object System.Drawing.Size(300,50) 
43.
$objLabel.Text = "Wählen sie ein PCI-Gerät aus:" 
44.
$objForm.Controls.Add($objLabel) 
45.
 
46.
$objComboBox2 = New-Object System.Windows.Forms.Combobox 
47.
$objComboBox2.Location = New-Object System.Drawing.Size(50,200) 
48.
$objComboBox2.Size = New-Object System.Drawing.Size(300,50) 
49.
$objComboBox2.Height = 70 
50.
$objForm.Controls.Add($objComboBox2) 
51.
$objForm.TopMost = $True 
52.
 
53.
#Abbrechen-Button 
54.
 
55.
$CancelButton = New-Object System.Windows.Forms.Button 
56.
$CancelButton.Location = New-Object System.Drawing.Size(250,300) 
57.
$CancelButton.Size = New-Object System.Drawing.Size(75,25) 
58.
$CancelButton.Text = "Abbrechen" 
59.
$CancelButton.Name = "Abbrechen" 
60.
$CancelButton.DialogResult = "Cancel" 
61.
$CancelButton.Add_Click({$objForm.Close()}) 
62.
$objForm.Controls.Add($CancelButton) 
63.
 
64.
#Start-Button 
65.
 
66.
$StartButton = New-Object System.Windows.Forms.Button 
67.
$StartButton.Location = New-Object System.Drawing.Size(50,300) 
68.
$StartButton.Size = New-Object System.Drawing.Size(75,25) 
69.
$StartButton.Text = "Start" 
70.
$StartButton.Add_Click( 
71.
72.
        $Script:x = $objComboBox1.selectedItems 
73.
        $objComboBox1.Text = $Script:x | out-string 
74.
    }) 
75.
 
76.
 
77.
$objForm.Controls.Add($StartButton) 
78.
 
79.
#DDA Befehle ausführen 
80.
#$DDACommands = New-Object System.Windows.SystemCommands 
81.
 
82.
[void] $objForm.ShowDialog()
Mitglied: colinardo
LÖSUNG 12.03.2018, aktualisiert 15.03.2018
Servus,
alles was du brauchst findest du hier:
Passing through devices to Hyper-V VMs by using discrete device assignment

Im Eventhandler des Buttons dürftest du also hiermit klar kommen:
01.
$vm = Get-VM $objCombobox1.SelectedItem 
02.
$device = $objCombobox2.SelectedItem 
03.
$locationPath = Get-PnpDevice -PresentOnly | ?{$_.FriendlyName -eq $device} | Get-PnpDeviceProperty -KeyName DEVPKEY_Device_LocationPaths | select -Expand Data 
04.
if ($locationPath){ 
05.
    Dismount-VMHostAssignableDevice -LocationPath $locationPath -Force -Verbose 
06.
    Add-VMAssignableDevice -VM $vm -LocationPath $locationPath -Verbose 
07.
}else{ 
08.
    [System.Windows.Forms.MessageBox]::Show("Device not found.") 
09.
}
Grüße Uwe
Bitte warten ..
Mitglied: 135531
13.03.2018 um 16:20 Uhr
Der Link war Goldwert, Danke dir !
Bitte warten ..
Ähnliche Inhalte
Batch & Shell

PowerShell GUI "Start" Knopf, Befehl richtig zuweisen

gelöst Frage von 135531Batch & Shell3 Kommentare

Hi all, ich bin momentan dabei eine PowerShell GUI zu bauen um den Standardrucker zu ändern (Die Idee ist ...

Batch & Shell

PowerShell GUI, Cmdlet in ComboBox ausführen

gelöst Frage von 135531Batch & Shell6 Kommentare

Hi all, ich bin absoluter Neuling wenn es um die nutzung von PowerShell geht. Dennoch versuche ich im Moment ...

Batch & Shell

Powershell kann keine Skripte ausführen

gelöst Frage von MineralwasserBatch & Shell5 Kommentare

Ich habe eine Powershell Profile angelegt und Set-ExecutionPolicy -ExecutionPolicy Unrestricted gesetzt. Nun wenn ich die powershell via einen Link ...

Microsoft

Sysprep: Sofortiges Ausführen des Powershell-Skriptes

gelöst Frage von honeybeeMicrosoft1 Kommentar

Hallo, ich habe ein Powershell-Skript für eine VM mit installiertem XP geschrieben. Der Hostcomputer hat ein installiertes Windows 7. ...

Neue Wissensbeiträge
Windows 10

Mikrofon von Headset geht nach Update auf Windows 10 1803 nicht mehr

Tipp von Deepsys vor 1 TagWindows 101 Kommentar

Ich verwende ein Plantronics Headset das per USB mit dem Windows 10 PC verbunden ist. Damit kann ich auch ...

Video & Streaming

Ruckelfreies Fernsehen auf Smartphone oder Tablet - in SD oder gar HD - Eine Alternative zum Fritz DVB-C Receiver

Anleitung von power-user vor 2 TagenVideo & Streaming9 Kommentare

Wer kennt das nicht: Man möchte gemütlich auf dem Balkon sitzen und vielleicht grillen und dabei das WM-Spiel gucken ...

Erkennung und -Abwehr
Trendmicro WFBS 10 ist in deutsch verfügbar!
Tipp von VGem-e vor 2 TagenErkennung und -Abwehr4 Kommentare

Servus Kollegen, downloadbar unter

Windows Update

Microsoft Patchday Juni 2018 - BSOD, obwohl noch kein Patch freigegeben

Erfahrungsbericht von diemilz vor 2 TagenWindows Update8 Kommentare

Hallo zusammen, wir hatten hier letzte Woche ein massives Problem. Alles begann damit, dass ein Mitarbeiter kurz vor Feierabend ...

Heiß diskutierte Inhalte
Windows Userverwaltung
User Überwachung
gelöst Frage von YellowcakeWindows Userverwaltung38 Kommentare

Hey ich habe von unserem neuem Datenschutzbeauftragten ein kleines Horror Paket bekommen. Ich soll wenn es möglich ist, das ...

Windows Installation
Adobe Reader noch notwendig?
gelöst Frage von EitieOSWindows Installation26 Kommentare

Muss ich mir noch die Arbeit machen und den Adobe Reader installieren und aktuell halten, wenn doch in Win10 ...

Instant Messaging
Whats App Business am PC einsetzen
Frage von thomasreischerInstant Messaging15 Kommentare

Hallo zusammen, wir würden demnächst gerne WhatsApp Business verwenden um den Kontakt zwischen Kunden und Mitarbeitern zu erleichtern. Natürlich ...

Netzwerkmanagement
Druckprobleme bei Thin Clients und Netzwerkdruckern
Frage von hesperNetzwerkmanagement14 Kommentare

Morgen zusammen! Bei uns werden in den Außenstellen HP t520 Thin Clients an drei W2k16 Terminalserver mittels RDP eingesetzt. ...