Powershell – клонирование локальной группы


Задача: скопировать членов одной локальной группы в другую локальную группу на клиентском компьютере Windows

Собственно задача возникла в продолжении лечения SCCM Remote Connection Profiles – исправляем глюк с именем группы. Поэтому ниже скрипт приведён в виде для решения именно той задачи.

Казалось бы, можно просто включить одну группу в другую, но на локальной SAM это не работает!

Скопировать членов одной группы в другую звучит достаточно просто, но внезапно оказалось, что всё просто при работе с группами в Active Directory с помощью стандартного модуля Powershell, а вот в случае работы с локальной базой SAM возможности Powershell остались на уровне версии 1.0. В попытках сделать как-то попроще, перепробовал несколько API: ADSI, WMI, .Net – и решил, что первый наиболее простой.


##############
#

$Computer = $env:COMPUTERNAME

# Get localized name of well-known "Remote Desktop Users" group
#

$a=Get-WmiObject -Query "Select * From Win32_Group Where LocalAccount = TRUE And SID = 'S-1-5-32-555' "

$LocalGroup1 = $a.Name


# Get members of "Remote Desktop Users" group
#

$g1 = [ADSI]"WinNT://$Computer/$LocalGroup1,group"


$members1 = $g1.psbase.Invoke("Members")
$members111 = $members1 | % {  ([System.DirectoryServices.DirectoryEntry]$_).Path }



# Get members of "Remote PC Connect" group
#

$LocalGroup2 = "Remote PC Connect"
$g2 = [ADSI]"WinNT://$Computer/$LocalGroup2,group"

$members2 = $g2.psbase.Invoke("Members")
$members222 = $members2 | % {  ([System.DirectoryServices.DirectoryEntry]$_).Path }



#  Find users who is in "Remote PC Connect" group and not in "Remote Desktop Users" group
# and add them to "Remote Desktop Users" group
#

[array]$members3 = $members222 | ? { $members111 -notcontains $_ }


# Unconmment for remediate phase (Add members to group)
#$members3 | % { $g1.psbase.Invoke("Add", $_)  }


# Unconmment for check phase
#$members3.Count -eq 0

Реклама

Добавить комментарий

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход /  Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход /  Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход /  Изменить )

Connecting to %s

%d такие блоггеры, как: