0

ソース samid と宛先 samid の入力を要求するバッチ ファイルを作成しようとしています。次に、dsquery と dsget を使用して、ソース samid が割り当てられているセキュリティ グループを見つけ、dsmod を使用してそれらのセキュリティ グループに宛先 samid を割り当てます。

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
4

1 に答える 1

0

ご助力いただきありがとうございます。私のために働いた答えを投稿しています。うまくいけば、それは私のような他の初心者に役立ちます.

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
于 2012-06-13T12:38:06.460 に答える