Пытается скопировать группы безопасности для пользователя с помощью утилиты группы dsmod в AD
Я пытаюсь создать командный файл, который просит ввести исходный samid и целевой samid. Затем с помощью dsquery
а также dsget
выясните, для каких групп безопасности назначен исходный samid, и назначьте samid назначения для этих групп безопасности, используя dsmod.
Все работает, кроме команды dsmod group. Это ничего не делает и пакетный файл останавливается. Если я буквально положил "CN=marketing,OU=test group,DC=abc,DC=com"
вместо %%g
а также "CN=test1,OU=test group,DC=abc,DC=com"
вместо %dusercn%
работает нормально.
любая помощь будет потрясающей!!!
благодарю вас.
echo off
echo %date% at %time%
set /p susername=enter source user name:
set /P dusername=enter destination user name:
echo %susername%
echo %dusername%
set dusercn=
%dusercn%=dsquery user -samid %dusername%
echo %dusercn%
for /f "tokens=*" %%g in ('dsquery user -samid %susername% ^|dsget user -memberof') do (
dsmod group %%g -addmbr %dusercn%
)
echo completed
pause
1 ответ
Я публикую ответ, который работал для меня. Надеюсь, это поможет другим новичкам, как я.
echo off
echo %date% at %time%
set /p susername=enter source user name:
set /P dusername=enter destination user name:
rem echo+ is used for new line. echo+
echo entered source user name: %susername%
echo entered destination user name: %dusername%
echo+
set dusercn=0
set lines=0
for /f "tokens=*" %%g in ('dsquery user -samid %susername% ^|dsget user -memberof') do (
echo %%g
dsquery user -samid %dusername% | dsmod group %%g -addmbr -c
set /a lines=lines+1
)
echo+
echo+
echo **************
echo number of lines processed %lines%
echo script completed
echo **************
pause