コンピューターでローカル管理者権限を持っている会社内のすべての人のリストを取得する必要があります。各マシンには「管理者」と呼ばれるグループがあります。次のコマンドを使用して、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 です。
ありがとう!