Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 18, 2007 19:52:02

securelord
От:
Зарегистрирован: 2006-08-31
Сообщения: 129
Репутация: +  0  -
Профиль   Отправить e-mail  

win32.net

Есть задача - прочитать все рабочие станции в домене(win2003).
Версия python - 2.5
Домен - triest
Сервер - server
Я взял стандартный пример из документации по win32.


import sys
import win32file, win32net, win32wnet, win32netcon

def getall_boxes(domain='',server=''):
res=1
wrk_lst=
try:
while res: #loop until res2
(wrk_list2,total,res2)=win32net.NetServerEnum('',100,win32netcon.SV_TYPE_ALL,server,res,win32netcon.MAX_PREFERRED_LENGTH)
wrk_lst.extend(wrk_list2)
res=res2
except win32net.error:
print traceback.format_tb(sys.exc_info()),'\n',sys.exc_type,'\n',sys.exc_value

final_lst=
for i in wrk_lst:
final_lst.append(str(i))
return final_lst

print getall_boxes('triest',r'\\server')

Вывод интерпретатора:

<class ‘pywintypes.error’>
(87, ‘NetServerEnum’, ‘\xcf\xe0\xf0\xe0\xec\xe5\xf2\xf0 \xe7\xe0\xe4\xe0\xed \xed\xe5\xe2\xe5\xf0\xed\xee.’)


Я не понял вывод интерпретатора. Если кто сталкивался- поскажите где копать. В инете примеров не видел.



Офлайн

#2 Апрель 18, 2007 20:03:46

OlDer
От:
Зарегистрирован: 2006-07-19
Сообщения: 133
Репутация: +  0  -
Профиль   Отправить e-mail  

win32.net

securelord, посмотри вот тут:
http://www.microsoft.com/technet/scriptcenter/scripts/python/pyindex.mspx
возможно что-то подходящее найдется.



Офлайн

#3 Апрель 18, 2007 20:14:12

securelord
От:
Зарегистрирован: 2006-08-31
Сообщения: 129
Репутация: +  0  -
Профиль   Отправить e-mail  

win32.net

OlDer

Спасибо! Не ожидал что все так просто:)
Да и еще на микрософте…



Офлайн

#4 Апрель 18, 2007 21:40:35

j2a
От:
Зарегистрирован: 2006-06-29
Сообщения: 869
Репутация: +  1  -
Профиль   Отправить e-mail  

win32.net

Не сталкивался. Сообщение об ошибке вполне легко прочитать:

>>> print ‘\xcf\xe0\xf0\xe0\xec\xe5\xf2\xf0 \xe7\xe0\xe4\xe0\xed \xed\xe5\xe2\xe5\xf0\xed\xee.’.decode('cp1251')
Параметр задан неверно.



Отредактировано (Апрель 18, 2007 21:42:44)

Офлайн

#5 Апрель 22, 2007 15:29:50

securelord
От:
Зарегистрирован: 2006-08-31
Сообщения: 129
Репутация: +  0  -
Профиль   Отправить e-mail  

win32.net

import win32com.client
strComputer = “.”
objWMIService = win32com.client.Dispatch(“WbemScripting.SWbemLocator”)
objSWbemServices = objWMIService.ConnectServer(strComputer,“root\cimv2”)
colItems = objSWbemServices.ExecQuery(“Select * from CIM_DataFile”)
for objItem in colItems:
print “Access Mask: ”, objItem.AccessMask


Как в это скрипте задать не имя ПК, а Имя ПК и диск(по умолчанию сканируются все диски). Нужно задавать только один диск D.



Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version