1 (изменено: VlhOwn, 2012-12-03 15:54:55)

Тема: python: Доступ к удаленному компу с помощью win32net

Пытаюсь удаленно с помощью win32net.NetUserGetInfo получить информацию с компов в сети.
Два рядом стоящих компьютера - один реагирует мгновенно, другой - pywintypes.error: (53, 'NetUserGetInfo', 'Не найден сетевой путь.'). При этом через WMI захожу на этот комп без проблем.
Компы настраивались одинаково, с одного образа.

Вопрос: от чего это зависит? что может мешать?

2

Re: python: Доступ к удаленному компу с помощью win32net

Отгадка:  445/tcp  open  microsoft-ds

Microsoft Directory Service, как я понимаю, это даже не одна служба, а несколько. Запускается при запуске службы сервера.
Поэтому механизм получается такой:
- коннектимся к удаленному компу через WMI
- запускаем службу сервера
- выполняем все необходимые действия с помощью win32net (в моем случае - смена локального админского пароля)
- восстанавливаем состояние службы сервера, которое было до запуска скрипта.

3

Re: python: Доступ к удаленному компу с помощью win32net

VlhOwn, в данном случае WMI ведь необязательно пользовать. Можно посредством ADSI сменить пароль: на VBScript это будет — GetObject("WinNT:")…

4

Re: python: Доступ к удаленному компу с помощью win32net

1. AD нет, домен самбовский.
2. Запуск GetObject("WinNT:")… даст все тот же Path not found, если на локальном компе не поднята служба сервера. WMI и нужен именно затем, чтобы ее поднять, а после обработки вернуть в исходное состояние.
python в этом отношении ничем от VBScript не отличается - оба действуют через win32API.

P.S. Я не уверен, что обязателно служба сервера должна быть поднята. Просто это единственный путь, которым мне удалось получить microsoft-ds на 445 порту.
Можно по-другому?

5

Re: python: Доступ к удаленному компу с помощью win32net

VlhOwn,
1. Провайдеру «WinNT:» наличие домена для доступа к локальной машине не обязательно.
2. Ясно.

OFF: Что ж так жестоко, что даже служба сервера отключена?