Usuario:Luis.perez/sistemaspyaytozgz/windows

De WikiEducator
Saltar a: navegación, buscar

Administración de Windows con python

Instalación de pywin32

a) versión 214 con pip (versión antigua de hace 3 años) b) versión reciente, 218, desde http://sourceforge.net/projects/pywin32/files/pywin32/Build%20218/pywin32-218.win32-py3.3.exe/download

  • Usaremos la versión más reciente, con python 3.3


WINSYS

https://github.com/tjguk/winsys

  • Wrapper alrededor de pywin32 para hacerla más "pythonic"

Instalación

 
   $ python distribute_setup.py
 
 
   $ python get-pip.py
 
  • Instalar PyWin32
  • Instalar Winsys
$ pip install WinSys-3.x

Características comunes del api

Api del registro de windows

obtener una key del registro
new_key = registry.registry (r"HKLM\Software\Vim\Gvim")
 
base = registry.registry(r"HKLM\Software")
gvim2 = base + "Gvim" # se puede usar el operador + para concatenar
obtener subkey
subk = base.gvim
iterator de keys
for key in base.keys():
	print(key) #key es de tipo registry
obtener padre:
parent = key.parent()
parent = registry.parent(key)
copiar una key del registro
new_key = registry.copy (r"HKLM\Software\Vim\Gvim", r"HKLM\Software\Vim\Gvim2")
crear una key
gvim2.create("subkey")
registry.create(gvim2, "subkey")
eliminar una key
gvim2.delete("subkey")
# alternativo: registry.delete(gvim2, "subkey")
gvim2.delete()
#alternativo: registry.delete(gvim2)
asignar valores del registro
new_key.myvalue = 5
new_key.set_value('myvalue', 2)
obtener valores del registro
print("Obteniendo valores dentro de una key")
avalue = new_key.myvalue
avalue = new_key.get_value('myvalue')
obtener valores del registro
for name, value in new_key.values():
	print("name: {}, value: {}".format(name, value))
 
values_dict = dict(new_key.values())
walk dentro de una clave (similar a lo que hace os.walk para ficheros y directorios
for key, subkeys, values in base.walk():
	#key es de tipo registry
	#subkeys es una iterator de tipo registry
	#values es un iterator de tuplas nombre-valor
	pass
Add permisos totales a un usuario
try:
	with new_key.security () as sec:
		sec.break_inheritance (copy_first=False)
		sec.dacl.append(accounts.user("luis", "F", "ALLOW"))
finally:
	new_key.security().dump ()