Мне нужно получить список всех людей в компании, у которых есть местные права администратора на своих компьютерах. У нас есть группа на каждой машине под названием «Администраторы». Я могу получить список всех компьютеров из активной директории с:.Как использовать Python для получения локальных администраторов с компьютера в сети?
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
Как объединить их, чтобы получить то, что мне нужно? Будут ли они работать вместе? Это лучший способ сделать это? Как только я получу это для работы, я могу понять, записывая его в файл и добавляя исключения, например, если компьютер не в сети, он пишет это, а затем переходит на следующий компьютер. Возможно, используйте win32security?
Я не знаю, какой ключ реестра использовать или даже если он будет работать. Сегодня я провел около 5 часов, и я все еще изучаю Python. Я не знаю VB, и это большая часть кода, который я вижу в сети.
Спасибо!