Change-LocalGroupMembers.ps1 (zpäť na zoznam) Pridávanie a odoberanie používateľov a skupiny v ktorejkoľvek lokálnej skupine.
			<#

    .SYNOPSIS
    Add or removing domain groups from local groups
    
    .DESCRIPTION
    Script will manipulating local groups, will add or remove domain groups from local group. It can handle several groups
    that are seperated with semicolon, see examples
    
    .PARAMETER lg
    Name of the local group you want to manipulate e.g. Administrators
    
    .PARAMETER gr
    Name(s) of domain group(s) you want to add or remove
    
    .PARAMETER func
    Functional parameter to detect action you want to take, add or remove are only allowed
    
    .EXAMPLE
    Add one group to local administrators
    mlg.ps1 -func add -lg Administrators -gr "DOM\test group"
    
    .EXAMPLE
    Remove multiple groups from Remote Desktop Users
    mlg.ps1 -func remove -lg "Remove Desktop Users" -gr "DOM\test group 1;DOM\test group 2"

#>

param(
    [parameter()][string]$lg, #local group you want to manipulate
    [parameter()][string]$gr, #group(s) name(s) you want to add/remove, more groups separated with semicolon ";"
    [parameter()][string]$func #manipulation function: add, remove
)

$hostname = $env:computername
$error.clear()

if(($func -eq $null) -or ($func -eq "")) {
    Write-Host "Functional parameter '-func' not found"
    exit(1)
}
if(($lg -eq $null) -or ($lg -eq "")) {
    Write-Host "Local group parameter '-lg' not found"
    exit(1)
}
if(($gr -eq $null) -or ($gr -eq "")) {
    Write-Host "Group to add/remove parameter '-gr' not found"
    exit(1)
}

function add {
    param($localGroup, $addGroup)

    $groups = $addGroup.Split(";")
    $groups | ForEach-Object {
        $domainGroup = $_.Split("`\")
        $domain = $domainGroup[0]
        $groupName = $domainGroup[1]

        $group = [ADSI]"WinNT://$script:hostname/$localGroup,group"
        try {
            $group.add("WinNT://$domain/$groupName,group")
            Write-host "Group $_ was successfully added on server $script:hostname"
        }
        catch {
            Write-host "Error: "$error[0].Exception.Message
        }
    }
}

function remove {
    param($localGroup, $remGroup)

    $groups = $remGroup.Split(";")
    $groups | ForEach-Object {
        $domainGroup = $_.Split("`\")
        $domain = $domainGroup[0]
        $groupName = $domainGroup[1]

        $group = [ADSI]"WinNT://$script:hostname/$localGroup,group"
        try {
            $group.remove("WinNT://$domain/$groupName,group")
            Write-host "Group $_ was successfully removed from server $script:hostname"
        }
        catch {
            Write-host "Error: "$error[0].Exception.Message
        }
    }
}

switch ($func) {
    add {
        add $lg $gr
    }
    remove {
        remove $lg $gr
    }
    default {
        Write-host "Wrong functional parameter used: $func, only add or remove possible"
    }
}