| 1 |
ninoborges |
8 |
## This program will be a com server to the McGuireWoods intranet Firm Dir.
|
| 2 |
|
|
## It will allow for basic IO manipulation. E.i. Setting network shares, Assigning
|
| 3 |
|
|
## network printers...
|
| 4 |
|
|
#Eaborges
|
| 5 |
|
|
#06.15.02
|
| 6 |
|
|
|
| 7 |
|
|
import os
|
| 8 |
|
|
from win32net import NetUseGetInfo, NetUseAdd, NetUseDel, NetUseEnum
|
| 9 |
|
|
|
| 10 |
|
|
class ShareControll:
|
| 11 |
|
|
#_public_methods_ = ['QueryDrive','MapDrive','DeleteDrive','SplitString']
|
| 12 |
|
|
_public_methods_ = ['SplitString']
|
| 13 |
|
|
_reg_progid_ = "PythonDemos.MW_COM"
|
| 14 |
|
|
_reg_clsid_ = "{1CBECF27-89E4-4E5A-928B-92E11B11B0A9}"
|
| 15 |
|
|
def MapDrive(self, letter, share):
|
| 16 |
|
|
try:
|
| 17 |
|
|
share = u'%s'%share
|
| 18 |
|
|
letter = u'%s'%letter
|
| 19 |
|
|
NetUseAdd(None,1,{'remote': share, 'local': letter})
|
| 20 |
|
|
status = "sucess"
|
| 21 |
|
|
except:
|
| 22 |
|
|
status = "fail"
|
| 23 |
|
|
return status
|
| 24 |
|
|
|
| 25 |
|
|
def DeleteDrive(self, letter):
|
| 26 |
|
|
try:
|
| 27 |
|
|
NetUseDel(None,letter)
|
| 28 |
|
|
status = "sucess"
|
| 29 |
|
|
except:
|
| 30 |
|
|
status = "fail"
|
| 31 |
|
|
return status
|
| 32 |
|
|
|
| 33 |
|
|
def QueryDrive(self, letter):
|
| 34 |
|
|
try:
|
| 35 |
|
|
query = NetUseGetInfo(None,letter)
|
| 36 |
|
|
except:
|
| 37 |
|
|
query = "Drive not in use"
|
| 38 |
|
|
return query
|
| 39 |
|
|
|
| 40 |
|
|
def SplitString(self, val, item=None):
|
| 41 |
|
|
import string
|
| 42 |
|
|
if item != None: item = str(item)
|
| 43 |
|
|
return string.split(str(val), item)
|
| 44 |
|
|
|
| 45 |
|
|
if __name__ == "__main__":
|
| 46 |
|
|
#os.system('cls')
|
| 47 |
|
|
#print "What would you like to do?"
|
| 48 |
|
|
#print "1. Query a drive mapping."
|
| 49 |
|
|
#print "2. Delete a drive mapping."
|
| 50 |
|
|
#print "3. Add a new drive mapping."
|
| 51 |
|
|
#print "4. Add a printer mapping."
|
| 52 |
|
|
#print
|
| 53 |
|
|
#menuSelect = raw_input(">>? ")
|
| 54 |
|
|
#if menuSelect == "1":
|
| 55 |
|
|
# test = raw_input("give me a letter: ")
|
| 56 |
|
|
# print ShareControll.QueryDrive(test)['remote']
|
| 57 |
|
|
#if menuSelect == "2":
|
| 58 |
|
|
# remove = raw_input("What drive would you like to remove? ")
|
| 59 |
|
|
# print ShareControll.DeleteDrive(remove)
|
| 60 |
|
|
# print remove,"has now been deleted."
|
| 61 |
|
|
#if menuSelect == "3":
|
| 62 |
|
|
# drive = raw_input("give me a letter: ")
|
| 63 |
|
|
# share = raw_input("Now what share would you like to give it? ")
|
| 64 |
|
|
# print ShareControll.MapDrive(drive,share)
|
| 65 |
|
|
#else:
|
| 66 |
|
|
# print "Sorry that option is not yet avalible..."
|
| 67 |
|
|
print "Registering COM server..."
|
| 68 |
|
|
import win32com.server.register
|
| 69 |
|
|
win32com.server.register.UseCommandLine(ShareControll)
|