Pythonを使用して、ネットワーク上のコンピューターからローカル管理者を取得する方法は?

active-directory python winreg
Pythonを使用して、ネットワーク上のコンピューターからローカル管理者を取得する方法は?

コンピューターのローカル管理者権限を持つ社内のすべてのユーザーのリストを取得する必要があります。 各マシンに「管理者」というグループがあります。次を使用して、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を知りません、そして、それは私がネットで見るコードの大部分です。

ありがとうございます。

  0  0


ベストアンサー

これは、この操作のデータが後で操作されるのでしょうか? これが人間に見られる手動スキャンである場合、あなたはそれを考え直しているでしょう。

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

0


詳細はわかりませんが、http://timgolden.me.uk/python/wmi/index.html [WMI]パッケージをご覧ください。

COMとWindowsレジストリで遊んでいたときに戻ってきました。 見たときから少し改善されているようです。

Windowsのリファレンスドキュメントを次に示します。 WMIリファレンス

0


タイトルとURLをコピーしました