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"
}
}