How do I change my powershell script to GUI

Viewed 10

I have recently started taking online Active Directory courses and in the process, I have developed a script for moving computers between OUs. The script is fine and running, but I was wondering if someone can help me change it to GUI(exe) file.

I have looked around and it does not seem there is a good place to provide a nice explanation. Code is below:

...script searches a computer given a keyword. user selects one of the computers listed after search. script then searches an OU based on a keyword input from user. Then, then uses chooses an option of the OUs listed after search. Script then moves the computer to that OU.

Import-Module ActiveDirectory

$computerName = Read-Host -Prompt 'Enter The Name of The Computer You Want To Move'

$temp = Get-ADComputer -filter "Name -like '*$computerName*'" -Properties DistinguishedName | Select-Object -Property DistinguishedName 

#$comp[0].DistinguishedName.Split("=").Split(",")[1]
Function Select-Computer
{
    $counter = 0
    Write-Host "Select Item"
    foreach ($c in $temp)
    {
        write-host "$counter :" $c.DistinguishedName.Split("=").Split(",")[1]
        $Counter++
    }
    [ValidateNotNullOrEmpty()]
    $Selection = Read-Host -Prompt 'Choose the computer you want to move'
    return $temp[$Selection]
}
$returned = Select-Computer
$computerLocation = $returned.DistinguishedName
$keyword = Read-Host -Prompt "Enter a keyword of the OU you want to move to"
$find = Get-ADOrganizationalUnit -Filter "Name -like '*$keyword*'" -Properties DistinguishedName | Select-Object -Property DistinguishedName

Function Select-OU
{
    $counter = 0
    Write-Host "Select the OU"
    foreach ($ou in $find)
    {
        $canonicalName = Get-ADOrganizationalUnit -Identity $ou.DistinguishedName -Properties CanonicalName | Select-Object CanonicalName
        write-host "$counter :" $ou.DistinguishedName.Split("=").Split(",")[1] in "$canonicalName".Split("=").Replace("@", "").Replace("{", "").Replace("}", "").Replace("CanonicalName", "")
        #DistinguishedName.Split("=").Replace("OU", "").Replace(",", "/")
        #
        $Counter++
    }
    [ValidateNotNullOrEmpty()]
    $Selection = Read-Host -Prompt 'Choose the target you OU'
    return $find[$Selection]
}
$return = Select-OU
$targetOU = $return.DistinguishedName
Move-ADObject -Identity "$computerLocation" -TargetPath "$targetOU" -Verbose
0 Answers
Related