|
Server : Apache/2.4.58 (Win64) OpenSSL/3.1.3 PHP/8.2.12 System : Windows NT SERVER-PC 10.0 build 26200 (Windows 11) AMD64 User : ServerPC ( 0) PHP Version : 8.2.12 Disable Function : NONE Directory : C:/Windows/diagnostics/system/Printer/ |
Upload File : |
# Copyright © 2008, Microsoft Corporation. All rights reserved.
PARAM($printerName)
#
# Resume or cancel the print jobs of printer user selected
#
Import-LocalizedData -BindingVariable localizationString -FileName CL_LocalizationData
. .\CL_Utility.ps1
Write-DiagProgress -activity $localizationString.progress_rs_ProcessCurrentPrintJobs
$JOB_STATUS_PAUSED = 1
$JOB_STATUS_ERROR = 2
$JOB_STATUS_DELETING = 4
$JOB_STATUS_BLOCKED_DEVQ = 512
$JOB_STATUS_USER_INTERVENTION = 1024
$printJobs = @()
try
{
$printJobs = @(Get-WmiObject -Class Win32_PrintJob -ErrorAction Stop | Where-Object {$_.Name.Split(",")[0] -ieq $printerName -and `
($_.StatusMask -band $JOB_STATUS_PAUSED -or $_.StatusMask -band $JOB_STATUS_ERROR -or $_.StatusMask -band `
$JOB_STATUS_DELETING -or $_.StatusMask -band $JOB_STATUS_BLOCKED_DEVQ -or $_.StatusMask -band $JOB_STATUS_USER_INTERVENTION)})
if($printJobs.Count -gt 0)
{
#
# Resume the print jobs if it's paused, delete the rest of jobs
#
foreach ($job in $printJobs)
{
if ($job.StatusMask -band $JOB_STATUS_PAUSED)
{
$job.Resume()
}
else
{
$job.Delete()
}
}
}
}
catch [System.Exception]
{
Write-ExceptionTelemetry "MAIN" $_
}