Creating the NTResourceManagement Class Module

   

Creating the NTResourceManagement Class Module

In this section, you will continue the creation of the NTAdmin.DLL COM server application started in Chapter 3.

Example 7.1 Continuing the Creation of the NTAdmin.DLL COM Server Application: The NTResourceManagement Module
  1. Open the NTAdmin ActiveX DLL Visual Basic project that was started in Chapter 3. You can also download the project from http://www.newriders.com/adsi.

  2. If you are adding to the NTAdmin project, add a new class module to the project. If this is a new project, make sure to set a reference to Active DS Type Library.

  3. Name the new module NTResourceManagement .

  4. Enter the following code into the General Declarations section of the class module:

    Public Function EnumerateShares(ByVal TargetComputerDomain As String, ByVal  graphics/ccc.gifTargetComputerName As String) As Variant      On Error Resume Next      Dim FileService As IADsFileService      Dim FileShare As IADsFileShare      Dim NewElement() As Variant      Dim i As Integer      Set FileService = GetObject("WinNT://"&TargetComputerDomain&"/"&TargetComputerName&"/ graphics/ccc.gifLanmanServer")      For Each FileShare In FileService           i = UBound(NewElement) + 1           ReDim Preserve NewElement(i)           NewElement(i) = FileShare.Name      Next      EnumerateShares = NewElement End Function Public Function ManageShareProperty(ByVal TargetComputerDomain As String, ByVal  graphics/ccc.gifTargetComputerName As String, ByVal TargetShareName As String, ByVal Action As String,  graphics/ccc.gifByVal ShareProperty As String, Optional ByVal NewValue As Variant) As Variant      Dim FileShare As IADsFileShare      Set FileShare = GetObject("WinNT://"&TargetComputerDomain&"/"& TargetComputerName&"/ graphics/ccc.gifLanmanServer/"&TargetShareName)      Select Case UCase(Action)           Case "QUERY"                Select Case UCase(ShareProperty)                     Case "CURRENTUSERCOUNT"                          ManageShareProperty = FileShare.CurrentUserCount                     Case "DESCRIPTION"                          ManageShareProperty = FileShare.Description                     Case "HOSTCOMPUTER"                          ManageShareProperty = FileShare.HostComputer                     Case "MAXUSERCOUNT"                          ManageShareProperty = FileShare.MaxUserCount                     Case "PATH"                          ManageShareProperty = FileShare.Path                End Select           Case "SET"                If NewValue <> " Then                     Select Case UCase(ShareProperty)                          Case "DESCRIPTION"                               FileShare.Description = NewValue                          Case "MAXUSERCOUNT"                               FileShare.MaxUserCount = NewValue                     End Select                     FileShare.SetInfo                     If Err.Number = 0 Then ManageShareProperty = True                End If      End Select End Function Public Function ManageShares(ByVal TargetComputerDomain As String, ByVal   graphics/ccc.gifTargetComputerName As String, ByVal TargetShareName As String, ByVal Action As String,  graphics/ccc.gifOptional ByVal SharePath As String, Optional ByVal ShareComment As String) As Boolean      Dim Container As IADsContainer      Dim FileShare As IADsFileShare      Set Container = GetObject("WinNT://"&TargetComputerDomain&"/"& TargetComputerName&"/ graphics/ccc.gifLanmanServer")      Select Case UCase(Action)           Case "CREATE"                If SharePath <> " Then                     Set FileShare = Container.Create("fileshare", TargetShareName)                     FileShare.Path = SharePath                     FileShare.Description = ShareComment                     FileShare.MaxUserCount = -1                     FileShare.SetInfo                End If           Case "REMOVE"                Call Container.Delete("fileshare", TargetShareName)      End Select      If Err.Number = 0 Then ManageShares = True End Function Public Function EnumerateSessions(ByVal TargetComputerDomain As String, ByVal   graphics/ccc.gifTargetComputerName As String) As Variant      On Error Resume Next      Dim FileService As IADsFileServiceOperations      Dim Session As IADsSession      Dim NewElement() As Variant      Dim i As Integer      Set FileService = GetObject("WinNT://"&TargetComputerDomain&"/"&  graphics/ccc.gifTargetComputerName&"/LanmanServer")      For Each Session In FileService.Sessions           i = UBound(NewElement) + 1           ReDim Preserve NewElement(i)           NewElement(i) = "Session Name:"&Session.Name&" established by User:  graphics/ccc.gif"&Session.User&_           " from Computer: "&Session.Computer&" Connect Time: "& Session.ConnectTime&_           " Idle Time: "&Session.IdleTime      Next      EnumerateSessions = NewElement End Function Public Function DisconnectSession(ByVal TargetComputerDomain As String, ByVal  graphics/ccc.gifTargetComputerName As String, ByVal TargetUserSession As String) As Boolean      Dim FileService As IADsFileServiceOperations      Dim Session As IADsSession      Dim Collection As IADsCollection      Set FileService = GetObject("WinNT://"&TargetComputerDomain&"/"&  graphics/ccc.gifTargetComputerName&"/LanmanServer")      Set Collection = FileService.Sessions      If UCase(TargetUserSession) <> "ALL" Then           Collection.Remove (TargetUserSession)      Else           For Each Session In Collection                Collection.Remove (Session.Name)           Next      End If      If Err.Number = 0 Then DisconnectSession = True End Function Public Function EnumerateOpenResources(ByVal TargetComputerDomain As String, ByVal  graphics/ccc.gifTargetComputerName As String) As Variant      On Error Resume Next      Dim FileService As IADsFileServiceOperations      Dim Resource As IADsResource      Dim NewElement() As Variant      Dim i As Integer      Set FileService = GetObject("WinNT://"&TargetComputerDomain&"/"&  graphics/ccc.gifTargetComputerName&"/LanmanServer")      For Each Resource In FileService.Resources           i = UBound(NewElement) + 1           ReDim Preserve NewElement(i)           NewElement(i) = "ResourceID: "&Resource.Name&" Resource: "& Resource.Path&"  graphics/ccc.gifOpened by: "&_           Resource.User&" Lock Count: "&Resource.LockCount      Next EnumerateOpenResources = NewElement End Function Public Function EnumeratePrintQueues(ByVal TargetComputerDomain As String, ByVal  graphics/ccc.gifTargetComputerName As String) As Variant      On Error Resume Next      Dim Container As IADsContainer      Dim PrintQueue As IADsPrintQueue      Dim NewElement() As Variant      Dim i As Integer      Set Container = GetObject("WinNT://"&TargetComputerDomain&"/"& TargetComputerName)      Container.Filter = Array("PrintQueue")      For Each PrintQueue In Container         Debug.Print PrintQueue.Name           i = UBound(NewElement) + 1           ReDim Preserve NewElement(i)           NewElement(i) = PrintQueue.Name      Next      EnumeratePrintQueues = NewElement End Function Public Function ManagePrintQueueProperty(ByVal TargetComputerDomain As String, ByVal  graphics/ccc.gifTargetComputerName As String, TargetPrintQueue As String, ByVal QueuePropertyName As  graphics/ccc.gifString, ByVal Action As String, Optional ByVal NewValue As Variant) As Variant      'On Error Resume Next      Dim PrintQueue As IADsPrintQueue      Dim NewElement() As Variant      Dim i As Integer      Dim Item As Variant      Set PrintQueue = GetObject("WinNT://"&TargetComputerDomain&"/"& TargetComputerName&"/ graphics/ccc.gif"&TargetPrintQueue)      Select Case UCase(Action)           Case "QUERY"                Select Case UCase(QueuePropertyName)                     Case "BANNERPAGE"                          ManagePrintQueueProperty = PrintQueue.BannerPage                     Case "DATATYPE"                          ManagePrintQueueProperty = PrintQueue.Datatype                     Case "DEFAULTJOBPRIORITY"                          ManagePrintQueueProperty = PrintQueue.DefaultJobPriority                     Case "DESCRIPTION"                          ManagePrintQueueProperty = PrintQueue.Description                     Case "LOCATION"                          ManagePrintQueueProperty = PrintQueue.Location                     Case "MODEL"                          ManagePrintQueueProperty = PrintQueue.Model                     Case "NAME"                          ManagePrintQueueProperty = PrintQueue.Name                     Case "PRINTDEVICES"                          If IsArray(PrintQueue.PrintDevices) Then                               For Each Item In PrintQueue.PrintDevices                                    i = UBound(NewElement) + 1                                    ReDim Preserve NewElement(i)                                    NewElement(i) = PrintQueue.Name                               Next                               ManagePrintQueueProperty = NewElement                          Else                               ManagePrintQueueProperty = PrintQueue.PrintDevices                          End If                     Case "PRINTERPATH"                          ManagePrintQueueProperty = PrintQueue.PrinterPath                     Case "PRINTPROCESSOR"                          ManagePrintQueueProperty = PrintQueue.PrintProcessor                     Case "PRIORITY"                          ManagePrintQueueProperty = PrintQueue.Priority                     Case "STARTTIME"                          ManagePrintQueueProperty = PrintQueue.StartTime                     Case "UNTILTIME"                          ManagePrintQueueProperty = PrintQueue.UntilTime                End Select           Case "SET"                If NewValue <> " Then                     Select Case UCase(QueuePropertyName)                          Case "BANNERPAGE"                               PrintQueue.BannerPage = NewValue                          Case "DATATYPE"                               PrintQueue.Datatype = NewValue                          Case "DEFAULTJOBPRIORITY"                               PrintQueue.DefaultJobPriority = NewValue                          Case "DESCRIPTION"                               PrintQueue.Description = NewValue                          Case "LOCATION"                               PrintQueue.Location = NewValue                          Case "MODEL"                               PrintQueue.Model = NewValue                          Case "PRINTDEVICES"                               If IsArray(NewValue) Then                                    For Each Item In NewValue                                         i = UBound(NewElement) + 1                                         ReDim Preserve NewElement(i)                                         NewElement(i) = Item                                    Next                                    PrintQueue.PrintDevices = NewElement                               Else                                    PrintQueue.PrintDevices = NewValue                               End If                          Case "PRINTPROCESSOR"                               PrintQueue.PrintProcessor = NewValue                          Case "PRIORITY"                               PrintQueue.Priority = NewValue                          Case "STARTTIME"                               PrintQueue.StartTime = NewValue                          Case "UNTILTIME"                               PrintQueue.UntilTime = NewValue                     End Select                End If                PrintQueue.SetInfo                If Err.Number = 0 Then ManagePrintQueueProperty = True      End Select End Function Public Function ManagePrintQueueOperations(ByVal TargetComputerDomain As String, ByVal  graphics/ccc.gifTargetComputerName As String, TargetPrintQueue As String, ByVal Action As String) As  graphics/ccc.gifVariant      Dim PrintQueue As IADsPrintQueueOperations      Set PrintQueue = GetObject("WinNT://"&TargetComputerDomain&"/"& TargetComputerName&"/ graphics/ccc.gif"&TargetPrintQueue)      Select Case UCase(Action)           Case "STATUS"                Select Case PrintQueue.Status                     Case 0                          ManagePrintQueueOperations = "Ready"                     Case 1                          ManagePrintQueueOperations = "Paused"                     Case 2                          ManagePrintQueueOperations = "Pending Deletion"                     Case 3                          ManagePrintQueueOperations = "Error"                     Case 4                          ManagePrintQueueOperations = "Paper Jam"                     Case 5                          ManagePrintQueueOperations = "Paper Out"                     Case 6                          ManagePrintQueueOperations = "Manual Feed"                     Case 7                          ManagePrintQueueOperations = "Paper Problem"                     Case 8                          ManagePrintQueueOperations = "Offline"                     Case 100                          ManagePrintQueueOperations = "IO Active"                     Case 200                          ManagePrintQueueOperations = "Busy"                     Case 400                          ManagePrintQueueOperations = "Printing"                     Case 800                          ManagePrintQueueOperations = "Output Bin Full"                     Case 1000                          ManagePrintQueueOperations = "Not Available"                     Case 2000                          ManagePrintQueueOperations = "Waiting"                     Case 4000                          ManagePrintQueueOperations = "Processing"                     Case 8000                          ManagePrintQueueOperations = "Initializing"                     Case 10000                          ManagePrintQueueOperations = "Warming Up"                     Case 20000                          ManagePrintQueueOperations = "Toner Low"                     Case 40000                          ManagePrintQueueOperations = "No Toner"                     Case 80000                          ManagePrintQueueOperations = "Page Punt"                     Case 100000                          ManagePrintQueueOperations = "User Intervention"                     Case 200000                          ManagePrintQueueOperations = "Out of Memory"                     Case 400000                          ManagePrintQueueOperations = "Door Open"                     Case 800000                          ManagePrintQueueOperations = "Server Unknown"                     Case 1000000                          ManagePrintQueueOperations = "Power Save"                End Select           Case "PAUSE"                PrintQueue.Pause                If Err.Number = 0 Then ManagePrintQueueOperations = True           Case "RESUME"                PrintQueue.Resume                If Err.Number = 0 Then ManagePrintQueueOperations = True           Case "PURGE"                PrintQueue.Purge                If Err.Number = 0 Then ManagePrintQueueOperations = True      End Select End Function Public Function EnumeratePrintJobs(ByVal TargetComputerDomain As String, ByVal  graphics/ccc.gifTargetComputerName As String, TargetPrintQueue As String) As Variant      On Error Resume Next      Dim PrintQueue As IADsPrintQueueOperations      Dim PrintJob As IADsPrintJob      Dim NewElement() As Variant      Dim i As Integer      Set PrintQueue = GetObject("WinNT://"&TargetComputerDomain&"/"& TargetComputerName&"/ graphics/ccc.gif"&TargetPrintQueue)      For Each PrintJob In PrintQueue.PrintJobs           i = UBound(NewElement) + 1           ReDim Preserve NewElement(i)           NewElement(i) = PrintJob.Name&" "&PrintJob.Description&" "& PrintJob.User&"  graphics/ccc.gif"&PrintJob.TotalPages      Next      EnumeratePrintJobs = NewElement End Function Public Function ManagePrintJob(ByVal TargetComputerDomain As String, ByVal  graphics/ccc.gifTargetComputerName As String, TargetPrintQueue As String, ByVal TargetPrintJob As String,  graphics/ccc.gifByVal Action As String, Optional ByVal PrintJobProperty As String, Optional ByVal  graphics/ccc.gifNewValue As Variant) As Variant      Dim PrintQueue As IADsPrintQueueOperations      Dim PrintJob As IADsPrintJob      Dim PrintJobOperation As IADsPrintJobOperations      Dim PJCollection As IADsCollection      Set PrintQueue = GetObject("WinNT://"&TargetComputerDomain&"/"& TargetComputerName&"/ graphics/ccc.gif"&TargetPrintQueue)      Select Case UCase(Action)           Case "QUERY"                Select Case UCase(PrintJobProperty)                     Case "DESCRIPTION"                          For Each PrintJob In PrintQueue.PrintJobs                               If PrintJob.Name = TargetPrintJob Then                                    ManagePrintJob = PrintJob.Description                               End If                           Next                     Case "HOSTPRINTQUEUE"                          For Each PrintJob In PrintQueue.PrintJobs                               If PrintJob.Name = TargetPrintJob Then                                    ManagePrintJob = PrintJob.HostPrintQueue                               End If                          Next                     Case "NOTIFY"                          For Each PrintJob In PrintQueue.PrintJobs                               If PrintJob.Name = TargetPrintJob Then                                    ManagePrintJob = PrintJob.Notify                               End If                          Next                     Case "PRIORITY"                          For Each PrintJob In PrintQueue.PrintJobs                               If PrintJob.Name = TargetPrintJob Then                                    ManagePrintJob = PrintJob.Priority                               End If                          Next                     Case "SIZE"                          For Each PrintJob In PrintQueue.PrintJobs                               If PrintJob.Name = TargetPrintJob Then                                    ManagePrintJob = PrintJob.Size                               End If                          Next                     Case "STARTTIME"                          For Each PrintJob In PrintQueue.PrintJobs                               If PrintJob.Name = TargetPrintJob Then                                    ManagePrintJob = PrintJob.StartTime                               End If                          Next                     Case "TIMESUBMITTED"                          For Each PrintJob In PrintQueue.PrintJobs                               If PrintJob.Name = TargetPrintJob Then                                    ManagePrintJob = PrintJob.TimeSubmitted                               End If                          Next                     Case "TOTALPAGES"                          For Each PrintJob In PrintQueue.PrintJobs                               If PrintJob.Name = TargetPrintJob Then                                    ManagePrintJob = PrintJob.TotalPages                               End If                          Next                     Case "UNTILTIME"                          For Each PrintJob In PrintQueue.PrintJobs                               If PrintJob.Name = TargetPrintJob Then                                    ManagePrintJob = PrintJob.UntilTime                               End If                          Next                     Case "USER"                          For Each PrintJob In PrintQueue.PrintJobs                               If PrintJob.Name = TargetPrintJob Then                                    ManagePrintJob = PrintJob.User                               End If                          Next                     Case "PAGESPRINTED"                          For Each PrintJobOperation In PrintQueue.PrintJobs                               If PrintJobOperation.Name = TargetPrintJob Then                                    ManagePrintJob = PrintJobOperation.PagesPrinted                               End If                          Next                     Case "POSITION"                          For Each PrintJobOperation In PrintQueue.PrintJobs                               If PrintJobOperation.Name = TargetPrintJob Then                                    ManagePrintJob = PrintJobOperation.Position                               End If                          Next                     Case "STATUS"                          For Each PrintJobOperation In PrintQueue.PrintJobs                               If PrintJobOperation.Name = TargetPrintJob Then                                    Select Case PrintJobOperation.Status                                         Case 1                                              ManagePrintJob = "Paused"                                         Case 2                                              ManagePrintJob = "Error"                                         Case 4                                              ManagePrintJob = "Deleting"                                         Case 10                                              ManagePrintJob = "Printing"                                         Case 20                                              ManagePrintJob = "Offline"                                         Case 40                                              ManagePrintJob = "Paper Out"                                         Case 80                                              ManagePrintJob = "Printed"                                         Case 100                                              ManagePrintJob = "Deleted"                                    End Select                               End If                          Next                     Case "TIMEELAPSED"                          For Each PrintJobOperation In PrintQueue.PrintJobs                               If PrintJobOperation.Name = TargetPrintJob Then                                    ManagePrintJob = PrintJobOperation.TimeElapsed                               End If                          Next                End Select           Case "SET"                Select Case UCase(PrintJobProperty)                     Case "DESCRIPTION"                          For Each PrintJob In PrintQueue.PrintJobs                               If PrintJob.Name = TargetPrintJob And NewValue <> " Then                                    PrintJob.Description = NewValue                                    PrintJob.SetInfo                               End If                          Next                     Case "NOTIFY"                          For Each PrintJob In PrintQueue.PrintJobs                               If PrintJob.Name = TargetPrintJob And NewValue <> " Then                                    PrintJob.Notify = NewValue                                    PrintJob.SetInfo                               End If                          Next                     Case "PRIORITY"                          For Each PrintJob In PrintQueue.PrintJobs                               If PrintJob.Name = TargetPrintJob And NewValue <> " Then                                    PrintJob.Priority = NewValue                                    PrintJob.SetInfo                               End If                          Next                     Case "STARTTIME"                          For Each PrintJob In PrintQueue.PrintJobs                               If PrintJob.Name = TargetPrintJob And NewValue <> " Then                                    PrintJob.StartTime = NewValue                                    PrintJob.SetInfo                               End If                          Next                     Case "UNTILTIME"                          For Each PrintJob In PrintQueue.PrintJobs                               If PrintJob.Name = TargetPrintJob And NewValue <> " Then                                    PrintJob.UntilTime = NewValue                                    PrintJob.SetInfo                               End If                          Next                     Case "POSITION"                          For Each PrintJobOperation In PrintQueue.PrintJobs                               If PrintJobOperation.Name = TargetPrintJob And NewValue <>  graphics/ccc.gif" Then                                    PrintJobOperation.Position = NewValue                                    PrintJobOperation.SetInfo                               End If                          Next                End Select                If Err.Number = 0 Then ManagePrintJob = True           Case "REMOVE"                Set PJCollection = PrintQueue.PrintJobs                For Each PrintJob In PrintQueue.PrintJobs                     If PrintJob.Name = TargetPrintJob Then                          PJCollection.Remove (CStr(PrintJob.Name))                     End If                Next                If Err.Number = 0 Then ManagePrintJob = True      End Select End Function 
  5. Compile the code as NTAdmin.DLL.

  6. Save and close the NTAdmin project.

Tip

You can download the Visual Basic 6.0 project or a pre-compiled version of NTAdmin.DLL from http://www.newriders.com/adsi.


Using the Functions in NTResourceManagement

With the NTResourceManagement class module created, you can access this function from any programming language that supports OLE automation, including Visual Basic, VBScript, and JavaScript.

Tip

To instantiate the object, follow the appropriate syntax found in Chapter 3.

Substitute the NTResourceManagement class name where necessary.


Use Table 7.5 to help you use the proper syntax for each of the methods of the NTResourceManagement interface.

Table 7.5. NTResourceManagement Method Syntax
Action Syntax
Enumerate Shares
 For Each Share In EnumerateShares ("Computer_Domain", "Computer_Name")      Debug.Print Share Next 
Query Current User Count for a Share
 Debug.Print ManageShareProperty ("Computer_Domain", "Computer_Name", "Share_Name", "Query", "CurrentUserCount") 
Query Description/Comment for a Share
 Debug.Print ManageShareProperty ("Computer_Domain", "Computer_Name", "Share_Name", "Query", "Description") 
Query the Host Computer for a Share
 Debug.Print ManageShareProperty ("Computer_Domain", "Computer_Name", "Share_Name", "Query", "HostComputer") 
Query the Maximum User Count for a Share
 Debug.Print ManageShareProperty ("Computer_Domain", "Computer_Name", "Share_Name", "Query", "MaxUserCount") 
Query the Path Associated with a Share
 Debug.Print ManageShareProperty ("Computer_Domain", "Computer_Name", "Share_Name", "Query", "Path") 
Set New Description for a Share
 Debug.Print ManageShareProperty ("Computer_Domain", "Computer_Name", "Share_Name", "Set", "Description", "New_Description") 
Set New Maximum User Count for a Share
 Debug.Print ManageShareProperty ("Computer_Domain", "Computer_Name", "Share_Name", "Set", "MaxUserCount", -1) 
Create a New File Share
 Debug.Print ManageShares ("Computer_Domain", "Computer_Name", "Share_Name", "Create", "C:\Path", "New Share Comment") 
Remove an Existing File Share
 Debug.Print ManageShares ("Computer_Domain", "Computer_Name", "Share_Name", "Remove") 
Enumerate Sessions
 For Each Session In EnumerateSessions ("Computer_Domain", "Computer_Name")      Debug.Print Session Next 
Disconnect a User Session
 Debug.Print DisconnectSession ("Computer_Domain", "Computer_Name", "Session_Name") 
Enumerate Open Resources on a Specific Machine
 For Each OpenResource In EnumerateOpenResources ("Computer_Domain", "Computer_Name")     Debug.Print OpenResource Next 
Enumerate Print Queues on a Specific Server
 For Each PrintQueue In EnumeratePrintQueues("Computer_Domain", "Computer_Name")      Debug.Print PrintQueue Next 
Query Queue Properties
 Debug.Print ManagePrintQueueProperty ("Computer_Domain", "Computer_Name", "Printer_Name", "BannerPage", "Query") Debug.Print ManagePrintQueueProperty ("Computer_Domain", "Computer_Name", "Printer_Name", "Datatype", "Query") Debug.Print ManagePrintQueueProperty ("Computer_Domain", "Computer_Name", "Printer_Name", "DefaultJobPriority", "Query") Debug.Print ManagePrintQueueProperty ("Computer_Domain", "Computer_Name", "Printer_Name", "Description", "Query") Debug.Print ManagePrintQueueProperty ("Computer_Domain", "Computer_Name", "Printer_Name", "Location", "Query") Debug.Print ManagePrintQueueProperty ("Computer_Domain", "Computer_Name", "Printer_Name", "Model", "Query") Debug.Print ManagePrintQueueProperty ("Computer_Domain", "Computer_Name", "Printer_Name", "Name", "Query") If IsArray(ManagePrintQueueProperty ("Computer_Domain", "Computer_Name", "Printer_Name", "PrintDevices", "Query")) Then     For Each Device In ManagePrintQueueProperty("Computer_ Domain", "Computer_Name", "Printer_Name", "PrintDevices", "Query")           Debug.Print Device      Next Else      Debug.Print ManagePrintQueueProperty("Computer_ Domain", "Computer_Name", "Printer_Name", "PrintDevices", "Query") End If Debug.Print ManagePrintQueueProperty ("Computer_Domain", "Computer_Name", "Printer_Name", "PrinterPath", "Query") Debug.Print ManagePrintQueueProperty "Computer_Domain", "Computer_Name", "Printer_Name", "PrintProcessor", "Query") Debug.Print ManagePrintQueueProperty ("Computer_Domain", "Computer_Name", "Printer_Name", "Priority", "Query") Debug.Print ManagePrintQueueProperty ("Computer_Domain", "Computer_Name", "Printer_Name", "StartTime", "Query") Debug.Print ManagePrintQueueProperty ("Computer_Domain", "Computer_Name", "Printer_Name", "UntilTime", "Query") 
Set Properties
 Debug.Print ManagePrintQueueProperty ("Computer_Domain", "Computer_Name", "Printer_Name", "BannerPage", "Set", "pscript.sep") Debug.Print ManagePrintQueueProperty ("Computer_Domain", "Computer_Name", "Printer_Name", "Datatype", "Set", "RAW") Debug.Print ManagePrintQueueProperty ("Computer_Domain", "Computer_Name", "Printer_Name", "DefaultJobPriority", "Set", 50) Debug.Print ManagePrintQueueProperty ("Computer_Domain", "Computer_Name", "Printer_Name", "Description", "Set", "Queue_Description") Debug.Print ManagePrintQueueProperty ("Computer_Domain", "Computer_Name", "Printer_Name", "Location", "Set", "Printer_Location") Debug.Print ManagePrintQueueProperty ("Computer_Domain", "Computer_Name", "Printer_Name", "Model", "Set", "Driver Description") Debug.Print ManagePrintQueueProperty ("Computer_Domain", "Computer_Name", "Printer_Name", "PrintDevices", "Set", "Port") Debug.Print ManagePrintQueueProperty ("Computer_Domain", "Computer_Name", "Printer_Name", "PrintProcessor", "Set", "WinPrint") Debug.Print ManagePrintQueueProperty ("Computer_Domain", "Computer_Name", "Printer_Name", "Priority", "Set", "Priority") Debug.Print ManagePrintQueueProperty ("Computer_Domain", "Computer_Name", "Printer_Name", "StartTime", "Set", #Start_Time#) Debug.Print ManagePrintQueueProperty ("Computer_Domain", "Computer_Name", "Printer_Name", "UntilTime", "Set", #End_Time#) 
Query Print Queue Status
 Debug.Print ManagePrintQueueOperations ("Computer_Domain", "Computer_Name", "Printer_Name", "Status") 
Pause a Print Queue
 Debug.Print ManagePrintQueueOperations ("Computer_Domain", "Computer_Name", "Printer_Name", "Pause") 
Resume a Print Queue
 Debug.Print ManagePrintQueueOperations ("Computer_Domain", "Computer_Name", "Printer_Name", "Resume") 
Purge All Jobs from Queue
 Debug.Print ManagePrintQueueOperations ("Computer_Domain", "Computer_Name", "Printer_Name", "Purge") 
Query Print Job Properties
 Debug.Print ManagePrintJob ("Computer_Domain", "Computer_Name", "Printer_Name", "Job_Number", "Query", "Description") Debug.Print ManagePrintJob("Computer_ Domain", "Computer_Name", "Printer_Name", "Job_Number", "Query", "HostPrintQueue") Debug.Print ManagePrintJob("Computer_ Domain", "Computer_Name", "Printer_Name", "Job_Number", "Query", "Notify") Debug.Print ManagePrintJob("Computer_Domain", "Computer_Name", "Printer_Name", "Job_Number", "Query", "Priority") Debug.Print ManagePrintJob("Computer_Domain", "Computer_Name", "Printer_Name", "Job_Number", "Query", "Size") Debug.Print ManagePrintJob("Computer_Domain", "Computer_Name", "Printer_Name", "Job_Number", "Query", "StartTime") Debug.Print ManagePrintJob("Computer_Domain", "Computer_Name", "Printer_Name", "Job_Number", "Query", "TimeSubmitted") Debug.Print ManagePrintJob("Computer_Domain", "Computer_Name", "Printer_Name", "Job_Number", "Query", "TotalPages") Debug.Print ManagePrintJob("Computer_Domain", "Computer_Name", "Printer_Name", "Job_Number", "Query", "UntilTime") Debug.Print ManagePrintJob("Computer_Domain", "Computer_Name", "Printer_Name", "Job_Number", "Query", "User") Debug.Print ManagePrintJob("Computer_Domain", "Computer_Name", "Printer_Name", "Job_Number", "Query", "PagesPrinted") Debug.Print ManagePrintJob("Computer_Domain", "Computer_Name", "Printer_Name", "Job_Number", "Query", "Position") Debug.Print ManagePrintJob("Computer_Domain", "Computer_Name", "Printer_Name", "Job_Number", "Query", "Status") Debug.Print ManagePrintJob("Computer_Domain", "Computer_Name", "Printer_Name", "Job_Number", "Query", "TimeElapsed") 
Set Print Job Property
 Debug.Print ManagePrintJob("Computer_Domain", "Computer_Name", "Printer_Name", "Job_Number", "Set", "Description", "New_Description") Debug.Print ManagePrintJob("Computer_Domain", "Computer_Name", "Printer_Name", "Job_Number", "Set", "Notify", "User_To_Notify") Debug.Print ManagePrintJob("Computer_Domain", "Computer_Name", "Printer_Name", "Job_Number", "Set", "Priority", New_Job_Priority) Debug.Print ManagePrintJob("Computer_Domain", "Computer_Name", "Printer_Name", "Job_Number", "Set", "StartTime", #StartTime#) Debug.Print ManagePrintJob("Computer_Domain", "Computer_Name", "Printer_Name", "Job_Number", "Set", "UntilTime", #EndTime#) Debug.Print ManagePrintJob("Computer_Domain", "Computer_Name", "Printer_Name", "Job_Number", "Set", "Position", PositionInQueue) 
Remove a Job from the Queue
 Debug.Print ManagePrintJob ("Computer_Domain", "Computer_Name", "Printer_Name", "Job_Number", "Remove") 

   
Top


Windows NT. 2000 ADSI Scripting for System Administration
Windows NT/2000 ADSI Scripting for System Administration
ISBN: 1578702194
EAN: 2147483647
Year: 2000
Pages: 194
Authors: Thomas Eck

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net