PrintJob.Manage.All
Allows the application to perform advanced operations like redirecting a print job to another printer without a signed-in user. Also allows the application to read and update the metadata of print jobs.
Permission Details
Perform advanced operations on print jobs
Allows the application to perform advanced operations like redirecting a print job to another printer without a signed-in user. Also allows the application to read and update the metadata of print jobs.
58a52f47-9e36-4b17-9ebe-ce4ef7f3e6c8
Properties
Properties is shown from stable Microsoft Graph v1.0 metadata.
| Property | Type | Description |
|---|---|---|
configuration |
printJobConfiguration |
A group of settings that a printer should use to print a job. |
createdBy |
userIdentity |
Read-only. Nullable. |
createdDateTime |
DateTimeOffset |
The DateTimeOffset when the job was created. Read-only. |
id |
String |
The ID of the print job. Read-only. |
isFetchable |
Edm.Boolean |
If true, document can be fetched by printer. |
redirectedFrom |
Edm.StringNullable |
Contains the source job URL, if the job has been redirected from another printer. |
redirectedTo |
Edm.StringNullable |
Contains the destination job URL, if the job has been redirected to another printer. |
status |
printJobStatus |
The status of the print job. Read-only. |
errorCode |
Int32Nullable |
The error code of the print job. Read-only. |
acknowledgedDateTime |
DateTimeOffsetNullable |
The dateTimeOffset when the job was acknowledged. Read-only. |
documents |
printDocument collection |
|
tasks |
printTask collection |
A list of printTasks that were triggered by this print job. |
JSON Representation
JSON representation is shown from stable Microsoft Graph v1.0 metadata.
{
"@odata.type": "#microsoft.graph.printJob",
"id": "String (identifier)",
"createdDateTime": "String (timestamp)",
"status": {
"@odata.type": "microsoft.graph.printJobStatus"
},
"createdBy": {
"@odata.type": "microsoft.graph.userIdentity"
},
"configuration": {
"@odata.type": "microsoft.graph.printJobConfiguration"
},
"redirectedTo": "String",
"redirectedFrom": "String",
"isFetchable": "Boolean"
}
Relationships
Relationships is shown from stable Microsoft Graph v1.0 metadata.
| Relationship | Type | Description |
|---|---|---|
documents |
printDocument collection |
Read-only. |
tasks |
printTask collection |
A list of printTasks that were triggered by this print job. |
configuration |
printJobConfiguration |
Related configuration data exposed by this resource. |
status |
printJobStatus |
Related status data exposed by this resource. |
Graph Methods
Microsoft Graph v1.0 endpoints are mapped directly from refreshed Microsoft Learn permissions tables.
| Methods |
|---|
POST
/print/printers/{printerId}/jobs/{printJobId}/abort
|
POST
/print/printers/{printerId}/jobs/{printJobId}/redirect
|
PATCH
/print/printers/{printerId}/jobs/{printJobId}
|
Microsoft Graph beta endpoints are mapped directly from refreshed Microsoft Learn permissions tables.
| Methods |
|---|
POST
/print/printers/{id}/jobs/{id}/abort
|
POST
/print/printers/{id}/jobs/{id}/redirect
|
PATCH
/print/printers/{id}/jobs/{id}
|
Microsoft Graph PowerShell v1.0 commands are mapped directly from refreshed Microsoft Learn PowerShell snippets.
Microsoft Graph PowerShell beta commands are mapped directly from refreshed Microsoft Learn PowerShell snippets.
Code Examples
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Print.Printers.Item.Jobs.Item.Redirect;
using Microsoft.Graph.Models;
var requestBody = new RedirectPostRequestBody
{
DestinationPrinterId = "9a3b3956-ce5b-4d06-a605-5b0bd3e9ddea",
Configuration = new PrintJobConfiguration
{
FeedOrientation = PrinterFeedOrientation.LongEdgeFirst,
PageRanges = new List<IntegerRange>
{
new IntegerRange
{
Start = 1L,
End = 1L,
},
},
Quality = PrintQuality.Medium,
Dpi = 600,
Orientation = PrintOrientation.Landscape,
Copies = 1,
DuplexMode = PrintDuplexMode.OneSided,
ColorMode = PrintColorMode.BlackAndWhite,
InputBin = "by-pass-tray",
OutputBin = "output-tray",
MediaSize = "A4",
Margin = new PrintMargin
{
Top = 0,
Bottom = 0,
Left = 0,
Right = 0,
},
MediaType = "stationery",
Finishings = null,
PagesPerSheet = 1,
MultipageLayout = PrintMultipageLayout.ClockwiseFromBottomLeft,
Collate = false,
Scaling = PrintScaling.ShrinkToFit,
FitPdfToPage = false,
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Print.Printers["{printer-id}"].Jobs["{printJob-id}"].Redirect.PostAsync(requestBody);
const options = {
authProvider,
};
const client = Client.init(options);
const printJob = {
destinationPrinterId: '9a3b3956-ce5b-4d06-a605-5b0bd3e9ddea',
configuration: {
feedOrientation: 'longEdgeFirst',
pageRanges: [
{
start: 1,
end: 1
}
],
quality: 'medium',
dpi: 600,
orientation: 'landscape',
copies: 1,
duplexMode: 'oneSided',
colorMode: 'blackAndWhite',
inputBin: 'by-pass-tray',
outputBin: 'output-tray',
mediaSize: 'A4',
margin: {
top: 0,
bottom: 0,
left: 0,
right: 0
},
mediaType: 'stationery',
finishings: null,
pagesPerSheet: 1,
multipageLayout: 'clockwiseFromBottomLeft',
collate: false,
scaling: 'shrinkToFit',
fitPdfToPage: false
}
};
await client.api('/print/printers/{printerId}/jobs/{printJobId}/redirect')
.post(printJob);
Import-Module Microsoft.Graph.Devices.CloudPrint
$params = @{
destinationPrinterId = "9a3b3956-ce5b-4d06-a605-5b0bd3e9ddea"
configuration = @{
feedOrientation = "longEdgeFirst"
pageRanges = @(
@{
start = 1
end = 1
}
)
quality = "medium"
dpi = 600
orientation = "landscape"
copies = 1
duplexMode = "oneSided"
colorMode = "blackAndWhite"
inputBin = "by-pass-tray"
outputBin = "output-tray"
mediaSize = "A4"
margin = @{
top = 0
bottom = 0
left = 0
right = 0
}
mediaType = "stationery"
finishings = $null
pagesPerSheet = 1
multipageLayout = "clockwiseFromBottomLeft"
collate = $false
scaling = "shrinkToFit"
fitPdfToPage = $false
}
}
Invoke-MgRedirectPrintPrinterJob -PrinterId $printerId -PrintJobId $printJobId -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph import GraphServiceClient
from msgraph.generated.print.printers.item.jobs.item.redirect.redirect_post_request_body import RedirectPostRequestBody
from msgraph.generated.models.print_job_configuration import PrintJobConfiguration
from msgraph.generated.models.printer_feed_orientation import PrinterFeedOrientation
from msgraph.generated.models.integer_range import IntegerRange
from msgraph.generated.models.print_quality import PrintQuality
from msgraph.generated.models.print_orientation import PrintOrientation
from msgraph.generated.models.print_duplex_mode import PrintDuplexMode
from msgraph.generated.models.print_color_mode import PrintColorMode
from msgraph.generated.models.print_margin import PrintMargin
from msgraph.generated.models.print_multipage_layout import PrintMultipageLayout
from msgraph.generated.models.print_scaling import PrintScaling
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = RedirectPostRequestBody(
destination_printer_id = "9a3b3956-ce5b-4d06-a605-5b0bd3e9ddea",
configuration = PrintJobConfiguration(
feed_orientation = PrinterFeedOrientation.LongEdgeFirst,
page_ranges = [
IntegerRange(
start = 1,
end = 1,
),
],
quality = PrintQuality.Medium,
dpi = 600,
orientation = PrintOrientation.Landscape,
copies = 1,
duplex_mode = PrintDuplexMode.OneSided,
color_mode = PrintColorMode.BlackAndWhite,
input_bin = "by-pass-tray",
output_bin = "output-tray",
media_size = "A4",
margin = PrintMargin(
top = 0,
bottom = 0,
left = 0,
right = 0,
),
media_type = "stationery",
finishings = None,
pages_per_sheet = 1,
multipage_layout = PrintMultipageLayout.ClockwiseFromBottomLeft,
collate = False,
scaling = PrintScaling.ShrinkToFit,
fit_pdf_to_page = False,
),
)
result = await graph_client.print.printers.by_printer_id('printer-id').jobs.by_print_job_id('printJob-id').redirect.post(request_body)
App Registration
Navigate to Azure Portal
Go to App registrations in Microsoft Entra admin center
Add API Permission
Select your app → API permissions → Add a permission → Microsoft Graph
Select Permission Type
Choose Application permissions and search for PrintJob.Manage.All
Grant Admin Consent
Application permissions always require admin consent.