0

コンピューターでローカル管理者権限を持っている会社内のすべての人のリストを取得する必要があります。各マシンには「管理者」と呼ばれるグループがあります。次のコマンドを使用して、Active Directory からすべてのコンピューターのリストを取得できます。

import active_directory

for computer in active_directory.search ("objectCategory='Computer'"):
  print computer.displayName

ここで、各コンピューター名を取得してフィードバックする必要があると思います。おそらく、各コンピューターのリモート レジストリを読み取り、SID を探していると考えていました。おそらく SID 'S-1-5-domain-500' がローカル管理者であるコンピューター上のユーザーのリストを表示します。やった:

import _winreg
COMPUTER_NAME = "FakeComputerName"
KEY_PATH = r"System\CurrentControlSet\Control\ComputerName\ComputerName"
HKLM_remote = _winreg.ConnectRegistry (r"\\%s" % COMPUTER_NAME, _winreg.HKEY_LOCAL_MACHINE)
hKeyRemote = _winreg.OpenKey (HKLM_remote, KEY_PATH, 0, _winreg.KEY_READ)
value, type = _winreg.QueryValueEx (hKeyRemote, "ComputerName")
print "Remote computer name is", value
Remote computer name is FakeComputerName

これらを組み合わせて必要なものを得るにはどうすればよいですか? これらは連携しますか?これが最善の方法ですか?これが機能するようになったら、それをファイルに書き込んで例外を追加することを理解できます。たとえば、コンピューターがネットワーク上にない場合は、それを書き込んでから次の PC に移動します。おそらくwin32securityを使用しますか?

どのレジストリ キーを使用すればよいか、それが機能するかどうかさえわかりません。今日はこれに約 5 時間費やしましたが、まだ Python を学んでいます。私は VB を知りません。ネット上で目にするコードの大部分は VB です。

ありがとう!

4

2 に答える 2

0

詳細はわかりませんが、WMIパッケージを確認することをお勧めします。

COMとWindowsレジストリで遊んでいて、それに出くわしたときのことです。見てから少し改善されたようです。

これがWindowsのリファレンスドキュメントです。WMIリファレンス

于 2010-01-12T09:24:58.090 に答える
0

これは、この操作からのデータが後で操作されるのでしょうか? これが手動スキャンで人間が確認するものである場合は、考えすぎです。

このようなネットワークスキャナーを使用して処理してください。

于 2010-01-12T07:31:25.510 に答える