RDP by selecting list of systems

I was looking for a way to select from a list of systems to RDP into and came up with a combo box inside of a form. Simple form display


Add-Type -AssemblyName System.Windows.Forms
# Create the form
$form = New-Object System.Windows.Forms.Form
$form.Text = "RDP Connection"
$form.Size = New-Object System.Drawing.Size(600,250)
$form.StartPosition = "CenterScreen"
# Create the ComboBox
$comboBox = New-Object System.Windows.Forms.ComboBox
$comboBox.Location = New-Object System.Drawing.Point(50,50)
$comboBox.Size = New-Object System.Drawing.Size(200,20)
$comboBox.font = New-Object System.Drawing.Font("Lucida Console",14,[System.Drawing.FontStyle]::Regular)
# Add server list to ComboBox
$servers = @("BAT1", "BAT2", "BAT3") # Replace with your server list
$comboBox.Items.AddRange($servers)
# Create the button
$button = New-Object System.Windows.Forms.Button
$button.Location = New-Object System.Drawing.Point(100,100)
$button.Size = New-Object System.Drawing.Size(100,30)
$button.Text = "Connect"
# Add event to button
$button.Add_Click({
$selectedServer = $comboBox.SelectedItem
if ($selectedServer) {
mstsc /v:$selectedServer
} else {
[System.Windows.Forms.MessageBox]::Show("Please select a server.")
}
})
# Add controls to the form
$form.Controls.Add($comboBox)
$form.Controls.Add($button)
# Show the form
$form.Add_Shown({$form.Activate()})
[void]$form.ShowDialog()
Added update to use a text file with a list of servers, and just update the list to get the servers that you want to RDP into remotely.
Add-Type -AssemblyName System.Windows.Forms
# Create the form
$form = New-Object System.Windows.Forms.Form
$form.Text = "RDP Connection"
$form.Size = New-Object System.Drawing.Size(600,250)
$form.StartPosition = "CenterScreen"
# Create the ComboBox
$comboBox = New-Object System.Windows.Forms.ComboBox
$comboBox.Location = New-Object System.Drawing.Point(50,50)
$comboBox.Size = New-Object System.Drawing.Size(200,20)
$comboBox.font = New-Object System.Drawing.Font("Lucida Console",14,[System.Drawing.FontStyle]::Regular)
# Read servers from file location
$serverFile = "D:\Lists\servers.txt"
if (Test-Path $serverFile) {
$servers = Get-Content $serverFile
foreach ($server in $servers) {
$combobox.Items.Add($server)
}
}
# Add server list to ComboBox
#$servers = @("BAT1", "BAT2", "BAT3") # Replace with your server list
#$comboBox.Items.AddRange($servers)
# Create the button
$button = New-Object System.Windows.Forms.Button
$button.Location = New-Object System.Drawing.Point(100,100)
$button.Size = New-Object System.Drawing.Size(100,30)
$button.Text = "Connect"
# Add event to button
$button.Add_Click({
$selectedServer = $comboBox.SelectedItem
if ($selectedServer) {
mstsc /v:$selectedServer
} else {
[System.Windows.Forms.MessageBox]::Show("Please select a server.")
}
})
# Add controls to the form
$form.Controls.Add($comboBox)
$form.Controls.Add($button)
# Show the form
$form.Add_Shown({$form.Activate()})
[void]$form.ShowDialog()