Contenidos
Formulario que abre una conexión UDP y permite ejecutar comandos que se envían desde otro equipo
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
#Crear un formulario, añadir una etiqueta, dos botones y una caja de texto #Funcionalidad para el formulario: #Pulsar la tecla Enter almacena en una variable el contenido de la caja de texto y se muestra #Pulsar la tecla Escape sale del formulario #Formulario $Form = New-Object System.Windows.Forms.Form $Form.Text="Formulario" $Form.Size=New-Object System.Drawing.Size(500,500) $Form.StartPosition="CenterScreen" #Etiqueta $Label=New-Object System.Windows.Forms.Label $Label.Text="Etiqueta de ejemplo" $Label.AutoSize=$True $Label.Location=New-Object System.Drawing.Size(160,160) #Caja de texto $TextBox = New-Object System.Windows.Forms.TextBox $TextBox.Location = New-Object System.Drawing.Size(100,180) $TextBox.Size = New-Object System.Drawing.Size(260,20) #Botón1 $Button1=New-Object System.Windows.Forms.Button $Button1.Size=New-Object System.Drawing.Size(75,23) $Button1.Text="Botón OK" $Button1.Location=New-Object System.Drawing.Size(120,220) #Botón2 $Button2=New-Object System.Windows.Forms.Button $Button2.Size=New-Object System.Drawing.Size(75,23) $Button2.Text="Botón Cancelar" $Button2.Location=New-Object System.Drawing.Size(220,220) #Funcionalidad para el formulario: #Pulsar la tecla Enter almacena en una variable el contenido de la caja de texto y se muestra #Pulsar la tecla Escape sale del formulario $Form.KeyPreview = $True $Form.Add_KeyDown({if ($_.KeyCode -eq "Enter"){Write-Host $Var}}) $Form.Add_KeyDown({if ($_.KeyCode -eq "Escape"){$Form.Close()}}) #Funcionalidad para el botón: #Pulsar Enter almacena en una variable el contenido de la caja de texto y se muestra #Pulsar Escape sale del formulario $Button1.Add_Click({ $Var=$TextBox.Text; Start-Process powershell { ##Server $port=2020 $endpoint = new-object System.Net.IPEndPoint ([IPAddress]::Any,$port) $udpclient=new-Object System.Net.Sockets.UdpClient $port $content=$udpclient.Receive([ref]$endpoint) [Text.Encoding]::ASCII.GetString($content) | iex $udpclient.Dispose() pause } Write-Host $Var }) $Button2.Add_Click({$Form.Close()}) #Añadir etiqueta $Form.Controls.Add($Label) #Añadir botones $Form.Controls.Add($Button1) $Form.Controls.Add($Button2) #Añadir caja de texto $Form.Controls.Add($TextBox) $Form.ShowDialog() |
Conexión al equipo que tiene abierto el puerto UDP
1 2 3 4 5 6 7 |
##Client $port=2020 $endpoint = new-object System.Net.IPEndPoint ([IPAddress]::Loopback,$port) $udpclient=new-Object System.Net.Sockets.UdpClient $b=[Text.Encoding]::ASCII.GetBytes('ps') $bytesSent=$udpclient.Send($b,$b.length,$endpoint) $udpclient.Close() |