Ekrdp.psm1
function Ekrdp { param( [Parameter(Mandatory=$true)] [string]$path) $csv = Import-Csv $path foreach($cs in $csv){ $server = $cs.Server $ip = $cs.'Server IP' $user = $cs.Username $title = 'PASSWORD' $question = "Do yo want to connect $($server):$($ip)" $choices = '&Yes', '&No' $decision = $Host.UI.PromptForChoice($title, $question, $choices, 1) if ($decision -eq 0) { #Add-Type -AssemblyName System.Windows.Forms #Add-Type -AssemblyName System.Drawing $form = New-Object System.Windows.Forms.Form $form.Text = 'Enter Password' $form.Size = New-Object System.Drawing.Size(510,350) $form.StartPosition = 'CenterScreen' $Image = [system.drawing.image]::FromFile("D:\Ek-rdp\black.jpg") $form.BackgroundImage = $Image $okButton = New-Object System.Windows.Forms.Button $okButton.Location = New-Object System.Drawing.Point(150,100) $okButton.Size = New-Object System.Drawing.Size(75,23) $okButton.Text = 'OK' $okButton.DialogResult = [System.Windows.Forms.DialogResult]::OK $form.AcceptButton = $okButton $form.Controls.Add($okButton) $cancelButton = New-Object System.Windows.Forms.Button $cancelButton.Location = New-Object System.Drawing.Point(250,100) $cancelButton.Size = New-Object System.Drawing.Size(75,23) $cancelButton.Text = 'Cancel' $cancelButton.DialogResult = [System.Windows.Forms.DialogResult]::Cancel $form.CancelButton = $cancelButton $form.Controls.Add($cancelButton) $label = New-Object System.Windows.Forms.Label $label.ForeColor = "White" $label.Location = New-Object System.Drawing.Point(150,20) $label.Size = New-Object System.Drawing.Size(280,20) $label.BackColor = [System.Drawing.Color]::FromName("Transparent") $delaylabel.Font = [System.Drawing.Font]::new("Microsoft Sans Serif", 10, [System.Drawing.FontStyle]::Bold) $label.Text = 'Please enter the Password below:' $form.Controls.Add($label) $textBox = New-Object System.Windows.Forms.TextBox $textBox.Location = New-Object System.Drawing.Point(100,40) $textBox.Size = New-Object System.Drawing.Size(260,20) $textBox.PasswordChar = "*" $form.Controls.Add($textBox) $form.Topmost = $true $form.Add_Shown({$textBox.Select()}) $result = $form.ShowDialog() if ($result -eq [System.Windows.Forms.DialogResult]::OK) { $x = $textBox.Text | ConvertTo-SecureString -AsPlainText -Force | ConvertFrom-SecureString | Set-Content -Path D:\Ek-rdp\p.txt $secret = Get-Content -Path D:\Ek-rdp\p.txt | ConvertTo-SecureString #OLD .NET TECHNIQUE #[Runtime.InteropServices.Marshal]::PtrToStringAuto([Runtime.InteropServices.Marshal]::SecureStringToBSTR((($secretStuff)))) #NEW .NET TECHNIQUE $passwordplain = [System.Runtime.InteropServices.Marshal]::PtrToStringAnsi([System.Security.SecureStringMarshal]::SecureStringToCoTaskMemAnsi((ConvertTo-SecureString -String $($secret | ConvertFrom-SecureString) -Force))) cmdkey /generic:TERMSRV/$ip /user:$User /pass:$passwordplain mstsc /v:$ip #Add-Type -AssemblyName System.Windows.Forms #Add-Type -AssemblyName System.Drawing $delay = 10 $delayform = New-Object System.Windows.Forms.Form $delayform.Text = 'Please Wait' $delayform.Size = New-Object System.Drawing.Size(518,220) $delayform.StartPosition = 'CenterScreen' $delayImage = [system.drawing.image]::FromFile("D:\Ek-rdp\white.jpg") $delayform.BackgroundImage = $delayImage $delaylabel = New-Object System.Windows.Forms.Label $delaylabel.Location = New-Object System.Drawing.Point(10,20) $delaylabel.Size = New-Object System.Drawing.Size(280,20) $delaylabel.BackColor = [System.Drawing.Color]::FromName("Transparent") $delaylabel.Font = [System.Drawing.Font]::new("Microsoft Sans Serif", 12, [System.Drawing.FontStyle]::Bold) $delayform.Controls.Add($delaylabel) while ($delay -ge 0) { $delayform.Show() $delaylabel.Text = "Please wait for $($delay) Seconds" <#if ($delay -lt 5) { $delaylabel.ForeColor = "Red" $fontsize = 20-$delay $warningfont = New-Object System.Drawing.Font("Times New Roman",$fontsize,[System.Drawing.FontStyle]([System.Drawing.FontStyle]::Bold -bor [System.Drawing.FontStyle]::Underline)) $delaylabel.Font = $warningfont } #> start-sleep 1 $delay -= 1 } $delayform.Close() cmdkey /delete:TERMSRV/$ip cmdkey /list:TERMSRV/$ip } } } } |