更新 printerShare
命名空间:microsoft.graph
更新打印机共享的属性。 此方法可用于交换 打印机。
例如,如果物理打印机设备中断,管理员可以注册新的打印机设备,并更新此 printerShare以指向新打印机,而无需用户执行任何操作。
权限
要调用此 API,需要以下权限之一。要了解详细信息,包括如何选择权限的信息,请参阅权限。
除了以下权限之外,用户或应用的租户还必须具有活动的通用打印订阅。 登录的用户必须是打印机 管理员。
| 权限类型 |
权限(从最低特权到最高特权) |
| 委派(工作或学校帐户) |
PrinterShare.ReadWrite.All |
| 委派(个人 Microsoft 帐户) |
不支持。 |
| 应用程序 |
不支持。 |
HTTP 请求
PATCH /print/shares/{printerShareId}
| 名称 |
说明 |
| Authorization |
Bearer {token}。必需。 |
| Content-Type |
application/json. Required. |
请求正文
在请求正文中,提供相关 printer 的值共享 应更新的字段。 请求正文中不包括的现有属性将保留其以前的值,或根据对其他属性值的更改重新计算。 为了获得最佳性能,请勿加入尚未更改的现有值。
可以更新以下属性:
| 属性 |
类型 |
说明 |
| 打印机 |
microsoft.graph.printer |
此打印机共享相关的打印机。 使用 printer@odata.bind 以下示例中所示的语法更新与此打印机共享关联的打印机。 |
| displayName |
String |
打印客户端应显示的打印机共享的名称。 |
| allowAllUsers |
布尔 |
如果为 true,将授予所有用户和组对此打印机共享的访问权限。 这将取代 allowedUsers 和 allowedGroups 导航属性定义的允许列表。 |
响应
如果成功,此方法在响应 200 OK 正文中返回 响应代码和更新的 printerShare 对象。
示例
请求
PATCH https://graph.microsoft.com/v1.0/print/shares/{printerShareId}
Content-Type: application/json
{
"displayName": "PrinterShare Name",
"printer@odata.bind": "https://graph.microsoft.com/v1.0/print/printers/{printerId}",
"allowAllUsers": false
}
GraphServiceClient graphClient = new GraphServiceClient( authProvider );
var printerShare = new PrinterShare
{
DisplayName = "PrinterShare Name",
AllowAllUsers = false,
AdditionalData = new Dictionary<string, object>()
{
{"printer@odata.bind", "https://graph.microsoft.com/v1.0/print/printers/{printerId}"}
}
};
await graphClient.Print.Shares["{printerShare-id}"]
.Request()
.UpdateAsync(printerShare);
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
const options = {
authProvider,
};
const client = Client.init(options);
const printerShare = {
displayName: 'PrinterShare Name',
'printer@odata.bind': 'https://graph.microsoft.com/v1.0/print/printers/{printerId}',
allowAllUsers: false
};
await client.api('/print/shares/{printerShareId}')
.update(printerShare);
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
MSHTTPClient *httpClient = [MSClientFactory createHTTPClientWithAuthenticationProvider:authenticationProvider];
NSString *MSGraphBaseURL = @"https://graph.microsoft.com/v1.0/";
NSMutableURLRequest *urlRequest = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:[MSGraphBaseURL stringByAppendingString:@"/print/shares/{printerShareId}"]]];
[urlRequest setHTTPMethod:@"PATCH"];
[urlRequest setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
MSGraphPrinterShare *printerShare = [[MSGraphPrinterShare alloc] init];
[printerShare setDisplayName:@"PrinterShare Name"];
[printerShare setAllowAllUsers: false];
NSError *error;
NSData *printerShareData = [printerShare getSerializedDataWithError:&error];
[urlRequest setHTTPBody:printerShareData];
MSURLSessionDataTask *meDataTask = [httpClient dataTaskWithRequest:urlRequest
completionHandler: ^(NSData *data, NSURLResponse *response, NSError *nserror) {
//Request Completed
}];
[meDataTask execute];
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
GraphServiceClient graphClient = GraphServiceClient.builder().authenticationProvider( authProvider ).buildClient();
PrinterShare printerShare = new PrinterShare();
printerShare.displayName = "PrinterShare Name";
printerShare.additionalDataManager().put("printer@odata.bind", new JsonPrimitive("https://graph.microsoft.com/v1.0/print/printers/{printerId}"));
printerShare.allowAllUsers = false;
graphClient.print().shares("{printerShareId}")
.buildRequest()
.patch(printerShare);
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
//THE GO SDK IS IN PREVIEW. NON-PRODUCTION USE ONLY
graphClient := msgraphsdk.NewGraphServiceClient(requestAdapter)
requestBody := msgraphsdk.NewPrinterShare()
displayName := "PrinterShare Name"
requestBody.SetDisplayName(&displayName)
allowAllUsers := false
requestBody.SetAllowAllUsers(&allowAllUsers)
requestBody.SetAdditionalData(map[string]interface{}{
"printer@odata.bind": "https://graph.microsoft.com/v1.0/print/printers/{printerId}",
}
printerShareId := "printerShare-id"
graphClient.Print().SharesById(&printerShareId).Patch(requestBody)
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
Import-Module Microsoft.Graph.Devices.CloudPrint
$params = @{
DisplayName = "PrinterShare Name"
"Printer@odata.bind" = "https://graph.microsoft.com/v1.0/print/printers/{printerId}"
AllowAllUsers = $false
}
Update-MgPrintShare -PrinterShareId $printerShareId -BodyParameter $params
有关如何将 SDK 添加 到项目并 创建 authProvider 实例的 详细信息,请参阅 SDK 文档。
响应
注意: 为了提高可读性,可能缩短了此处显示的响应对象。
HTTP/1.1 200 OK
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/v1.0/$metadata#print/shares/$entity",
"id": "d837c17b-3296-4384-a053-828d56e10f50",
"displayName": "PrinterShare Name",
"createdDateTime": "2020-02-04T00:00:00.0000000Z",
"isAcceptingJobs": true,
"allowAllUsers": false,
"status": {
"state": "stopped",
"details": ["disconnected"],
"description": ""
}
}