0

CSVDE を使用して、AD から一部のユーザー情報をエクスポートしています。複数のドメイン コントローラーをループして、それぞれのデータを別の csv ファイルにエクスポートする必要があります。そのために、次のバッチ スクリプトを使用しています (わかりやすくするために、1 つのドメイン コントローラー/ファイルのみが表示されます)。

ECHO %time%

@ECHO OFF

SET userName=SomeLogin
SET pass=SomePassword
SET domain=SomeDomain

SET columnName=-l givenname,lastLogon,userAccountControl,lastLogonTimestamp,sn,userPrincipalName,displayname,mail,samaccountname,pwdLastSet,whenCreated,whenChanged SET filter="(&(objectClass=User)(objectCategory=Person))"

SET len=1
SET data[0].file=some_file.csv
SET data[0].DC=someIP

SET i=0
:LOOP
IF %i% equ %len% GOTO :EOF

SET cur.file=
SET cur.DC=
FOR /f "usebackq delims==. tokens=1" %%j IN (`SET data[%i%]`) DO (
    SET cur.%%k=%%l
)
csvde -f %cur.file% -r %filter% %columnName% -s %cur.DC% -b %userName% %domain% %pass% -u

SET /a i = %i% + 1

@ECHO ON
ECHO %time%

このスクリプトを実行すると、次のエラーが表示されます。

無効なパラメータ: 不正な引数 '(&(objectClass=User)(objectCategory=Person))'

このスクリプトの外側 (つまり、ループの外側) で CSVDE を実行すると、正常に実行されます。したがって、ループしているという事実と何らかの関係があるに違いありません。しかし、その理由と解決方法がわかりません。この問題を解決するには、何を変更する必要がありますか?

4

0 に答える 0