尝试使用AD中的dsmod组实用程序将安全组复制到用户

我正在尝试创build一个batch file,要求input源samid和目标samid。 然后,使用dsquerydsget查找分配给samid的安全组,并将目标samid分配给使用dsmod的安全组。

除了dsmod组命令之外,一切正常。 它不会做任何事情和batch file停止。 如果我字面上把"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 

我发布的答案,为我工作。 希望它能帮助像我这样的其他新手。

 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