$userSource= "user1" - у кого берем группы
$userTarget="user2" - кому копируем группы
Этот скрипт предназначен для копирования групп Active Directory (AD) с одного пользователя на другого.
Он работает следующим образом:
- Определяется путь к файлу журнала ($logfile), в который будут записываться все действия.
- Задаются имена исходного ($userSource) и целевого ($userTarget) пользователей.
- Получается текущее время ($Time) и записывается в журнал.
- Записывается разделитель в журнал.
- Записывается сообщение о начале копирования групп AD с исходного пользователя на целевого.
- Получаются группы, в которых состоит исходный пользователь ($sourceGroups).
- Для каждой группы из списка групп исходного пользователя:
Записывается сообщение о добавлении целевого пользователя в группу.
Пытается добавить целевого пользователя в эту группу. Если это удается, результат записывается в журнал. Если возникает ошибка, сообщение об ошибке записывается в журнал и происходит переход к следующей итерации цикла. - Записывается разделитель в журнал.
В итоге, в журнал будут записаны все действия, выполняемые скриптом, включая время начала, группы, которые были скопированы, и любые ошибки, которые возникли во время копирования.
$logfile="c:\ps\CopyAdGroup.log"
$userSource= “user1"
$userTarget=”user2”
$Time = Get-Date
Add-content $logfile -value $Time -Encoding UTF8
Add-content $logfile -value "_______________"
Add-content $logfile -value "Копирование групп AD с пользователя $userSource на $userTarget" -Encoding UTF8
$sourceGroups = (Get-ADPrincipalGroupMembership -Identity $userSource).SamAccountName
foreach ($group in $sourceGroups)
{
Add-content $logfile -value "Добавление пользователя $userTarget в группу $group" -Encoding UTF8
try
{
$log=Add-ADPrincipalGroupMembership -Identity $userTarget -MemberOf $group
Add-content $logfile -value $log -Encoding UTF8
}
catch
{
Add-content $logfile $($Error[0].Exception.Message) -Encoding UTF8
Continue
}
}
Add-content $logfile -value "_______________"