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, 318 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 ...

Windows 10

Powershell GUI Skript Filehash

gelöst Frage von BaphometWindows 104 Kommentare

Hallo Community, da ich mich erst sehr kurzzeitig mit der PS befasse tauchen immer wieder Fragen auf. > Ich ...

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 ...

Neue Wissensbeiträge
Windows Netzwerk

CGM Praxisarchiv funktioniert auf Clients nach Update auf 4.14 nicht mehr

Tipp von MOS6581 vor 3 StundenWindows Netzwerk

Moin, ein Kunde setzt das CGM-Praxisarchiv ein. Mehrplatzinstallation mit SQL-Server. Nachdem letzte Woche auf die 4.14 aktualisiert wurde, funktionierte ...

Windows 10

Win 10 - Storage Sense - neues herstellerseitiges Cleaning-Tool statt cleanmgr

Tipp von mathu vor 10 StundenWindows 101 Kommentar

Vermutlich ab dem Oktoberrelease wird eine neue Speicherbereinigungssuftware ausgeliefert von Microsoft. Cleanmgr.exe soll angeblich aber noch weiter parallel verfügbar ...

E-Mail
Neueste Masche der Bad Guys: Offene Erpressung
Information von the-buccaneer vor 1 TagE-Mail14 Kommentare

"Warum den komplizierten Weg über einen Kryptotrojaner nehmen, wenn man die Leute auch direkt erpressen kann?" haben sich wohl ...

Viren und Trojaner
Neues ct-desinfect 2018 erschienen
Information von Lochkartenstanzer vor 1 TagViren und Trojaner

Moin, heise hat eine neues Sonderheft Desinfect veröffentlicht (9,90€/12,90€) . Falls jemand öfter mal Kisten "säubern" muß ist das ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
Kombiniere mehrere 4G Router zu einem Netzwerk - Anwendung kleine LAN (10-20 Leute)
Frage von HulkTheHeroLAN, WAN, Wireless22 Kommentare

Guten Mittag liebes Administrator - Fourm, ich hoffe ich habe das richtige Thema ausgewählt - ansonsten bitte gerne verschieben ...

Firewall
Blocken illegaler Film-Streams
gelöst Frage von CoreknabeFirewall20 Kommentare

Moin Wissende, unsere kleine Hochschule möchte gern das illegale Streaming von Kinofilmen und Serien unterbinden. Wir sperren bisher alle ...

Windows Server
2012 R2 Server Keine Anmeldung möglich Meldung: Laut den Sicherheitsrichtlinien auf diesem PC sollen informationen zur letzten interaktiven Anmeldung angezeigt werden
Frage von Speedy18A4Windows Server19 Kommentare

Hallo, ich habe vor einigen Wochen einen zweiten Domain Controller zu meiner Domain hinzugefügt. Funktionierte alles wunderbar. Auch die ...

iOS
Virus auf iphone
Frage von jensgebkeniOS17 Kommentare

hallo gemeinschaft, habe einen virus auf meinem iphone es kommen zwei meldungsfenster 1. online-2018-software-free.win 2. wpform.com - please click ...