ドメインツール nltest を Windows 2000で使う

C:\>nltest /sc_VERIFY:mofmof.or.jp
フラグ: b0 HAS_IP  HAS_TIMESERV
信頼された DC 名 \\ad1.mofmof.or.jp
信頼された DC 接続状態 Status = 0 0x0 NERR_Success
信頼の確認 Status = 0 0x0 NERR_Success
コマンドは正常に完了しました

C:\>nltest /DSGETFTI:mofmof.or.jp
フォレストの信頼情報の取得に失敗しました: Status = 1745 0x6d1 RPC_S_PROCNUM_OUT_OF_RANGE

C:\>nltest /SC_QUERY:mofmof.or.jp
フラグ: 30 HAS_IP  HAS_TIMESERV
信頼された DC 名 \\ad1.mofmof.or.jp
信頼された DC 接続状態 Status = 0 0x0 NERR_Success
コマンドは正常に完了しました

C:\>

Vista 版は nltest.exe のほかに nltest.exe.mui を同じフォルダにコピーする必要がありますが日本語になるので使いやすいと思います ・ω・

nltest.exe を Windows 2000で使おうと思ったら欠陥エクスポートがあるわけですが
netapi32.dll の XP バージョンを拾ってきて nltest.exe のフォルダに置いておくと実は実行できます
RPC コールは通常 2000/XP で互換性がないのですが、 XPの netapi32.dll でコールされている RCPコールは
どうやら Windows 2000互換のもののようです
なので、Windows XP の netapi32.dll を 2000のものと入れ替えても悪影響はほとんどありません。

ほとんどといったのは XP版には以下の関数がないのです
DsGetDcClose
DsGetDcNext
DsGetDcOpen
NetpAllocStrFromStr
NetpAllocTStrFromString
NetpDbgDisplayServerInfo
NetpSetConfigBool
NetpSetConfigDword
NetpSetConfigTStrArray

最初の3つの関数は
DsGetDcCloseW
DsGetDcNextA
DsGetDcOpenA
と同じもの
NetpAllocStrFromStr
NetpAllocTStrFromString
は非常に簡単な実装
NetpDbgDisplayServerInfo
は何もしない関数
NetpSetConfigBool
NetpSetConfigDword
NetpSetConfigTStrArray
はレジストリに書き込むだけの関数というのが分かっています

ちなみに、標準インストールした Windows 2000ではこれらの関数を使っているのは
wldap32.dll だけです。

なお、XP の最新版は  KB2705219-v2 / 5.1.2600.6260 です。

おすすめ

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です