In this section, you will continue the creation of the NTAdmin.DLL COM server application started in Chapter 3.
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.
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.
Name the new module NTResourceManagement .
Enter the following code into the General Declarations section of the class module:
Public Function EnumerateShares(ByVal TargetComputerDomain As String, ByVal TargetComputerName 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&"/ LanmanServer") 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 TargetComputerName As String, ByVal TargetShareName As String, ByVal Action As String, ByVal ShareProperty As String, Optional ByVal NewValue As Variant) As Variant Dim FileShare As IADsFileShare Set FileShare = GetObject("WinNT://"&TargetComputerDomain&"/"& TargetComputerName&"/ LanmanServer/"&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 TargetComputerName As String, ByVal TargetShareName As String, ByVal Action As String, Optional 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&"/ LanmanServer") 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 TargetComputerName 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&"/"& TargetComputerName&"/LanmanServer") For Each Session In FileService.Sessions i = UBound(NewElement) + 1 ReDim Preserve NewElement(i) NewElement(i) = "Session Name:"&Session.Name&" established by User: "&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 TargetComputerName 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&"/"& TargetComputerName&"/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 TargetComputerName 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&"/"& TargetComputerName&"/LanmanServer") For Each Resource In FileService.Resources i = UBound(NewElement) + 1 ReDim Preserve NewElement(i) NewElement(i) = "ResourceID: "&Resource.Name&" Resource: "& Resource.Path&" Opened by: "&_ Resource.User&" Lock Count: "&Resource.LockCount Next EnumerateOpenResources = NewElement End Function Public Function EnumeratePrintQueues(ByVal TargetComputerDomain As String, ByVal TargetComputerName 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 TargetComputerName As String, TargetPrintQueue As String, ByVal QueuePropertyName As String, 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&"/ "&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 TargetComputerName As String, TargetPrintQueue As String, ByVal Action As String) As Variant Dim PrintQueue As IADsPrintQueueOperations Set PrintQueue = GetObject("WinNT://"&TargetComputerDomain&"/"& TargetComputerName&"/ "&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 TargetComputerName 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&"/ "&TargetPrintQueue) For Each PrintJob In PrintQueue.PrintJobs i = UBound(NewElement) + 1 ReDim Preserve NewElement(i) NewElement(i) = PrintJob.Name&" "&PrintJob.Description&" "& PrintJob.User&" "&PrintJob.TotalPages Next EnumeratePrintJobs = NewElement End Function Public Function ManagePrintJob(ByVal TargetComputerDomain As String, ByVal TargetComputerName As String, TargetPrintQueue As String, ByVal TargetPrintJob As String, ByVal Action As String, Optional ByVal PrintJobProperty As String, Optional ByVal NewValue 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&"/ "&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 <> " 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
Compile the code as NTAdmin.DLL.
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.
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.
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 |