| 1 |
## 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)
|