Add-Type -AssemblyName System.Windows.Forms Add-Type -AssemblyName PresentationFramework # Creation of form object $form = New-Object System.Windows.Forms.Form $form.Text = 'Software Forwarder' $form.Size = New-Object System.Drawing.Size(300,240) $form.StartPosition = 'CenterScreen' # OK button object $OKButton = New-Object System.Windows.Forms.Button $OKButton.Location = New-Object System.Drawing.Point(75,140) $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) # Cancel Button object $CancelButton = New-Object System.Windows.Forms.Button $CancelButton.Location = New-Object System.Drawing.Point(150,140) $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 object $label = New-Object System.Windows.Forms.Label $label.Location = New-Object System.Drawing.Point(10,20) $label.Size = New-Object System.Drawing.Size(280,20) $label.Text = 'Please enter Asset Number (Original):' $form.Controls.Add($label) # TextBox object $textBox = New-Object System.Windows.Forms.TextBox $textBox.Location = New-Object System.Drawing.Point(10,40) $textBox.Size = New-Object System.Drawing.Size(260,20) $form.Controls.Add($textBox) # Label object $label2 = New-Object System.Windows.Forms.Label $label2.Location = New-Object System.Drawing.Point(10,80) $label2.Size = New-Object System.Drawing.Size(280,20) $label2.Text = 'Please enter Asset Number (New):' $form.Controls.Add($label2) # TextBox object $textBox2 = New-Object System.Windows.Forms.TextBox $textBox2.Location = New-Object System.Drawing.Point(10,100) $textBox2.Size = New-Object System.Drawing.Size(260,20) $form.Controls.Add($textBox2) $form.Topmost = $true $form.Add_Shown({$textBox.Select()}) #Do/While loop while looking for a correct APRA usrename Do { $SelectedBox = $null #Show Dialog box $result = $form.ShowDialog() Try { #if 'Ok' is clicked if ($result -eq [System.Windows.Forms.DialogResult]::OK){ $inputText = $textBox.Text.Trim() $inputText2 = $textBox2.Text.Trim() if ($textBox.Text.Trim().Contains('-') -and $textBox2.Text.Trim().Contains('-') -and $textBox.Text.Trim() -notcontains $textBox2.Text.Trim()){ $getAssetNumber = $inputText.ToUpper() $ComputerObject = Get-ADComputer $getAssetNumber $getNewAssetNumber = $inputText2.ToUpper() $ComputerObjectNew = Get-ADComputer $getNewAssetNumber }else{ [System.Windows.MessageBox]::Show('Cannot find Computers') } } # if 'Cancel' is clicked if($result -eq [System.Windows.Forms.DialogResult]::Cancel){ Exit } } Catch { # Couldn't be found the user, Display message: [System.Windows.MessageBox]::Show('Cannot find Computer for ' + $SelectedBox) # restart loop $getAssetNumber = $null $getNewAssetNumber = $null } } While ($getAssetNumber -eq $null) $List = (Get-adcomputer $ComputerObject.DistinguishedName –Properties MemberOf).MemberOf #Write-Warning -Message "Could not find a user with the username: $List. Please check the spelling and try again." if ($List -eq ''){ [System.Windows.MessageBox]::Show('No Assigned Software for ' + $textBox.Text) }else{ foreach($item in $List){ $name = ($item -split ',*..=')[1] Write-Output $name Add-ADGroupMember -Identity $name -Members $ComputerObjectNew.DistinguishedName } foreach($item in $List){ $name = ($item -split ',*..=')[1] Write-Output $name remove-adgroupmember -Identity $name -Members $ComputerObject.DistinguishedName } [System.Windows.MessageBox]::Show('Software(s) moved from ' + $textBox.Text + ' to ' + $textBox2.Text) }