命名空间:microsoft.graph
重要
Microsoft Graph /beta 版本下的 API 可能会发生更改。 不支持在生产应用程序中使用这些 API。 若要确定 API 是否在 v1.0 中可用,请使用 版本 选择器。
创建新的 updatePolicy 对象。
此 API 可用于以下国家级云部署。
| 全局服务 |
美国政府 L4 |
美国政府 L5 (DOD) |
由世纪互联运营的中国 |
| ✅ |
✅ |
✅ |
❌ |
权限
为此 API 选择标记为最低特权的权限。
只有在应用需要它时,才使用更高的特权权限。 有关委派权限和应用程序权限的详细信息,请参阅权限类型。 要了解有关这些权限的详细信息,请参阅 权限参考。
| 权限类型 |
最低特权权限 |
更高特权权限 |
| 委派(工作或学校帐户) |
WindowsUpdates.ReadWrite.All |
不可用。 |
| 委派(个人 Microsoft 帐户) |
不支持。 |
不支持。 |
| 应用程序 |
WindowsUpdates.ReadWrite.All |
不可用。 |
重要
在具有工作或学校帐户的委托方案中,登录用户必须是组的所有者或成员,或者分配有受支持的Microsoft Entra角色或具有支持的角色权限的自定义角色。
Intune管理员或Windows 更新部署管理员是此作支持的最低特权角色。
HTTP 请求
POST /admin/windows/updates/updatePolicies
| 名称 |
说明 |
| Authorization |
持有者 {token}。 必填。 详细了解 身份验证和授权。 |
| Content-Type |
application/json. 必需。 |
请求正文
在请求正文中,提供 updatePolicy 对象的 JSON 表示形式。
创建 updatePolicy 时,可以指定以下属性。
响应
如果成功,此方法在 201 Created 响应正文中返回响应代码和 microsoft.graph.windowsUpdates.updatePolicy 对象。
示例
请求
以下示例显示了一个请求。
POST https://graph.microsoft.com/beta/admin/windows/updates/updatePolicies
Content-Type: application/json
Content-length: 835
{
"@odata.type": "#microsoft.graph.windowsUpdates.updatePolicy",
"audience": {
"id": "8c4eb1eb-d7a3-4633-8e2f-f926e82df08e"
},
"complianceChanges": [
{
"@odata.type": "#microsoft.graph.windowsUpdates.contentApproval"
}
],
"complianceChangeRules": [
{
"@odata.type": "#microsoft.graph.windowsUpdates.contentApprovalRule",
"contentFilter": {
"@odata.type": "#microsoft.graph.windowsUpdates.driverUpdateFilter"
},
"durationBeforeDeploymentStart": "P7D"
}
],
"deploymentSettings": {
"@odata.type": "microsoft.graph.windowsUpdates.deploymentSettings",
"schedule": {
"gradualRollout": {
"@odata.type": "#microsoft.graph.windowsUpdates.rateDrivenRolloutSettings",
"durationBetweenOffers": "P1D",
"devicePerOffer": 1000
}
}
}
}
// Code snippets are only available for the latest version. Current version is 5.x
// Dependencies
using Microsoft.Graph.Beta.Models.WindowsUpdates;
var requestBody = new UpdatePolicy
{
OdataType = "#microsoft.graph.windowsUpdates.updatePolicy",
Audience = new DeploymentAudience
{
Id = "8c4eb1eb-d7a3-4633-8e2f-f926e82df08e",
},
ComplianceChanges = new List<ComplianceChange>
{
new ContentApproval
{
OdataType = "#microsoft.graph.windowsUpdates.contentApproval",
},
},
ComplianceChangeRules = new List<ComplianceChangeRule>
{
new ContentApprovalRule
{
OdataType = "#microsoft.graph.windowsUpdates.contentApprovalRule",
ContentFilter = new DriverUpdateFilter
{
OdataType = "#microsoft.graph.windowsUpdates.driverUpdateFilter",
},
DurationBeforeDeploymentStart = TimeSpan.Parse("P7D"),
},
},
DeploymentSettings = new DeploymentSettings
{
OdataType = "microsoft.graph.windowsUpdates.deploymentSettings",
Schedule = new ScheduleSettings
{
GradualRollout = new RateDrivenRolloutSettings
{
OdataType = "#microsoft.graph.windowsUpdates.rateDrivenRolloutSettings",
DurationBetweenOffers = TimeSpan.Parse("P1D"),
AdditionalData = new Dictionary<string, object>
{
{
"devicePerOffer" , 1000
},
},
},
},
},
};
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=csharp
var result = await graphClient.Admin.Windows.Updates.UpdatePolicies.PostAsync(requestBody);
// Code snippets are only available for the latest major version. Current major version is $v0.*
// Dependencies
import (
"context"
msgraphsdk "github.com/microsoftgraph/msgraph-beta-sdk-go"
graphmodelswindowsupdates "github.com/microsoftgraph/msgraph-beta-sdk-go/models/windowsupdates"
//other-imports
)
requestBody := graphmodelswindowsupdates.NewUpdatePolicy()
audience := graphmodelswindowsupdates.NewDeploymentAudience()
id := "8c4eb1eb-d7a3-4633-8e2f-f926e82df08e"
audience.SetId(&id)
requestBody.SetAudience(audience)
complianceChange := graphmodelswindowsupdates.NewContentApproval()
complianceChanges := []graphmodelswindowsupdates.ComplianceChangeable {
complianceChange,
}
requestBody.SetComplianceChanges(complianceChanges)
complianceChangeRule := graphmodelswindowsupdates.NewContentApprovalRule()
contentFilter := graphmodelswindowsupdates.NewDriverUpdateFilter()
complianceChangeRule.SetContentFilter(contentFilter)
durationBeforeDeploymentStart , err := abstractions.ParseISODuration("P7D")
complianceChangeRule.SetDurationBeforeDeploymentStart(&durationBeforeDeploymentStart)
complianceChangeRules := []graphmodelswindowsupdates.ComplianceChangeRuleable {
complianceChangeRule,
}
requestBody.SetComplianceChangeRules(complianceChangeRules)
deploymentSettings := graphmodelswindowsupdates.NewDeploymentSettings()
schedule := graphmodelswindowsupdates.NewScheduleSettings()
gradualRollout := graphmodelswindowsupdates.NewRateDrivenRolloutSettings()
durationBetweenOffers , err := abstractions.ParseISODuration("P1D")
gradualRollout.SetDurationBetweenOffers(&durationBetweenOffers)
additionalData := map[string]interface{}{
"devicePerOffer" : int32(1000) ,
}
gradualRollout.SetAdditionalData(additionalData)
schedule.SetGradualRollout(gradualRollout)
deploymentSettings.SetSchedule(schedule)
requestBody.SetDeploymentSettings(deploymentSettings)
// To initialize your graphClient, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=go
updatePolicies, err := graphClient.Admin().Windows().Updates().UpdatePolicies().Post(context.Background(), requestBody, nil)
// Code snippets are only available for the latest version. Current version is 6.x
GraphServiceClient graphClient = new GraphServiceClient(requestAdapter);
com.microsoft.graph.beta.models.windowsupdates.UpdatePolicy updatePolicy = new com.microsoft.graph.beta.models.windowsupdates.UpdatePolicy();
updatePolicy.setOdataType("#microsoft.graph.windowsUpdates.updatePolicy");
com.microsoft.graph.beta.models.windowsupdates.DeploymentAudience audience = new com.microsoft.graph.beta.models.windowsupdates.DeploymentAudience();
audience.setId("8c4eb1eb-d7a3-4633-8e2f-f926e82df08e");
updatePolicy.setAudience(audience);
LinkedList<com.microsoft.graph.beta.models.windowsupdates.ComplianceChange> complianceChanges = new LinkedList<com.microsoft.graph.beta.models.windowsupdates.ComplianceChange>();
com.microsoft.graph.beta.models.windowsupdates.ContentApproval complianceChange = new com.microsoft.graph.beta.models.windowsupdates.ContentApproval();
complianceChange.setOdataType("#microsoft.graph.windowsUpdates.contentApproval");
complianceChanges.add(complianceChange);
updatePolicy.setComplianceChanges(complianceChanges);
LinkedList<com.microsoft.graph.beta.models.windowsupdates.ComplianceChangeRule> complianceChangeRules = new LinkedList<com.microsoft.graph.beta.models.windowsupdates.ComplianceChangeRule>();
com.microsoft.graph.beta.models.windowsupdates.ContentApprovalRule complianceChangeRule = new com.microsoft.graph.beta.models.windowsupdates.ContentApprovalRule();
complianceChangeRule.setOdataType("#microsoft.graph.windowsUpdates.contentApprovalRule");
com.microsoft.graph.beta.models.windowsupdates.DriverUpdateFilter contentFilter = new com.microsoft.graph.beta.models.windowsupdates.DriverUpdateFilter();
contentFilter.setOdataType("#microsoft.graph.windowsUpdates.driverUpdateFilter");
complianceChangeRule.setContentFilter(contentFilter);
PeriodAndDuration durationBeforeDeploymentStart = PeriodAndDuration.ofDuration(Duration.parse("P7D"));
complianceChangeRule.setDurationBeforeDeploymentStart(durationBeforeDeploymentStart);
complianceChangeRules.add(complianceChangeRule);
updatePolicy.setComplianceChangeRules(complianceChangeRules);
com.microsoft.graph.beta.models.windowsupdates.DeploymentSettings deploymentSettings = new com.microsoft.graph.beta.models.windowsupdates.DeploymentSettings();
deploymentSettings.setOdataType("microsoft.graph.windowsUpdates.deploymentSettings");
com.microsoft.graph.beta.models.windowsupdates.ScheduleSettings schedule = new com.microsoft.graph.beta.models.windowsupdates.ScheduleSettings();
com.microsoft.graph.beta.models.windowsupdates.RateDrivenRolloutSettings gradualRollout = new com.microsoft.graph.beta.models.windowsupdates.RateDrivenRolloutSettings();
gradualRollout.setOdataType("#microsoft.graph.windowsUpdates.rateDrivenRolloutSettings");
PeriodAndDuration durationBetweenOffers = PeriodAndDuration.ofDuration(Duration.parse("P1D"));
gradualRollout.setDurationBetweenOffers(durationBetweenOffers);
HashMap<String, Object> additionalData = new HashMap<String, Object>();
additionalData.put("devicePerOffer", 1000);
gradualRollout.setAdditionalData(additionalData);
schedule.setGradualRollout(gradualRollout);
deploymentSettings.setSchedule(schedule);
updatePolicy.setDeploymentSettings(deploymentSettings);
com.microsoft.graph.models.windowsupdates.UpdatePolicy result = graphClient.admin().windows().updates().updatePolicies().post(updatePolicy);
const options = {
authProvider,
};
const client = Client.init(options);
const updatePolicy = {
'@odata.type': '#microsoft.graph.windowsUpdates.updatePolicy',
audience: {
id: '8c4eb1eb-d7a3-4633-8e2f-f926e82df08e'
},
complianceChanges: [
{
'@odata.type': '#microsoft.graph.windowsUpdates.contentApproval'
}
],
complianceChangeRules: [
{
'@odata.type': '#microsoft.graph.windowsUpdates.contentApprovalRule',
contentFilter: {
'@odata.type': '#microsoft.graph.windowsUpdates.driverUpdateFilter'
},
durationBeforeDeploymentStart: 'P7D'
}
],
deploymentSettings: {
'@odata.type': 'microsoft.graph.windowsUpdates.deploymentSettings',
schedule: {
gradualRollout: {
'@odata.type': '#microsoft.graph.windowsUpdates.rateDrivenRolloutSettings',
durationBetweenOffers: 'P1D',
devicePerOffer: 1000
}
}
}
};
await client.api('/admin/windows/updates/updatePolicies')
.version('beta')
.post(updatePolicy);
<?php
use Microsoft\Graph\Beta\GraphServiceClient;
use Microsoft\Graph\Beta\Generated\Models\WindowsUpdates\UpdatePolicy;
use Microsoft\Graph\Beta\Generated\Models\WindowsUpdates\DeploymentAudience;
use Microsoft\Graph\Beta\Generated\Models\WindowsUpdates\ComplianceChange;
use Microsoft\Graph\Beta\Generated\Models\WindowsUpdates\ContentApproval;
use Microsoft\Graph\Beta\Generated\Models\WindowsUpdates\ComplianceChangeRule;
use Microsoft\Graph\Beta\Generated\Models\WindowsUpdates\ContentApprovalRule;
use Microsoft\Graph\Beta\Generated\Models\WindowsUpdates\DriverUpdateFilter;
use Microsoft\Graph\Beta\Generated\Models\WindowsUpdates\DeploymentSettings;
use Microsoft\Graph\Beta\Generated\Models\WindowsUpdates\ScheduleSettings;
use Microsoft\Graph\Beta\Generated\Models\WindowsUpdates\RateDrivenRolloutSettings;
$graphServiceClient = new GraphServiceClient($tokenRequestContext, $scopes);
$requestBody = new UpdatePolicy();
$requestBody->setOdataType('#microsoft.graph.windowsUpdates.updatePolicy');
$audience = new DeploymentAudience();
$audience->setId('8c4eb1eb-d7a3-4633-8e2f-f926e82df08e');
$requestBody->setAudience($audience);
$complianceChangesComplianceChange1 = new ContentApproval();
$complianceChangesComplianceChange1->setOdataType('#microsoft.graph.windowsUpdates.contentApproval');
$complianceChangesArray []= $complianceChangesComplianceChange1;
$requestBody->setComplianceChanges($complianceChangesArray);
$complianceChangeRulesComplianceChangeRule1 = new ContentApprovalRule();
$complianceChangeRulesComplianceChangeRule1->setOdataType('#microsoft.graph.windowsUpdates.contentApprovalRule');
$complianceChangeRulesComplianceChangeRule1ContentFilter = new DriverUpdateFilter();
$complianceChangeRulesComplianceChangeRule1ContentFilter->setOdataType('#microsoft.graph.windowsUpdates.driverUpdateFilter');
$complianceChangeRulesComplianceChangeRule1->setContentFilter($complianceChangeRulesComplianceChangeRule1ContentFilter);
$complianceChangeRulesComplianceChangeRule1->setDurationBeforeDeploymentStart(new \DateInterval('P7D'));
$complianceChangeRulesArray []= $complianceChangeRulesComplianceChangeRule1;
$requestBody->setComplianceChangeRules($complianceChangeRulesArray);
$deploymentSettings = new DeploymentSettings();
$deploymentSettings->setOdataType('microsoft.graph.windowsUpdates.deploymentSettings');
$deploymentSettingsSchedule = new ScheduleSettings();
$deploymentSettingsScheduleGradualRollout = new RateDrivenRolloutSettings();
$deploymentSettingsScheduleGradualRollout->setOdataType('#microsoft.graph.windowsUpdates.rateDrivenRolloutSettings');
$deploymentSettingsScheduleGradualRollout->setDurationBetweenOffers(new \DateInterval('P1D'));
$additionalData = [
'devicePerOffer' => 1000,
];
$deploymentSettingsScheduleGradualRollout->setAdditionalData($additionalData);
$deploymentSettingsSchedule->setGradualRollout($deploymentSettingsScheduleGradualRollout);
$deploymentSettings->setSchedule($deploymentSettingsSchedule);
$requestBody->setDeploymentSettings($deploymentSettings);
$result = $graphServiceClient->admin()->windows()->updates()->updatePolicies()->post($requestBody)->wait();
Import-Module Microsoft.Graph.Beta.WindowsUpdates
$params = @{
"@odata.type" = "#microsoft.graph.windowsUpdates.updatePolicy"
audience = @{
id = "8c4eb1eb-d7a3-4633-8e2f-f926e82df08e"
}
complianceChanges = @(
@{
"@odata.type" = "#microsoft.graph.windowsUpdates.contentApproval"
}
)
complianceChangeRules = @(
@{
"@odata.type" = "#microsoft.graph.windowsUpdates.contentApprovalRule"
contentFilter = @{
"@odata.type" = "#microsoft.graph.windowsUpdates.driverUpdateFilter"
}
durationBeforeDeploymentStart = "P7D"
}
)
deploymentSettings = @{
"@odata.type" = "microsoft.graph.windowsUpdates.deploymentSettings"
schedule = @{
gradualRollout = @{
"@odata.type" = "#microsoft.graph.windowsUpdates.rateDrivenRolloutSettings"
durationBetweenOffers = "P1D"
devicePerOffer =
}
}
}
}
New-MgBetaWindowsUpdatesPolicy -BodyParameter $params
# Code snippets are only available for the latest version. Current version is 1.x
from msgraph_beta import GraphServiceClient
from msgraph_beta.generated.models.windows_updates.update_policy import UpdatePolicy
from msgraph_beta.generated.models.windows_updates.deployment_audience import DeploymentAudience
from msgraph_beta.generated.models.windows_updates.compliance_change import ComplianceChange
from msgraph_beta.generated.models.windows_updates.content_approval import ContentApproval
from msgraph_beta.generated.models.windows_updates.compliance_change_rule import ComplianceChangeRule
from msgraph_beta.generated.models.windows_updates.content_approval_rule import ContentApprovalRule
from msgraph_beta.generated.models.windows_updates.driver_update_filter import DriverUpdateFilter
from msgraph_beta.generated.models.windows_updates.deployment_settings import DeploymentSettings
from msgraph_beta.generated.models.windows_updates.schedule_settings import ScheduleSettings
from msgraph_beta.generated.models.windows_updates.rate_driven_rollout_settings import RateDrivenRolloutSettings
# To initialize your graph_client, see https://learn.microsoft.com/en-us/graph/sdks/create-client?from=snippets&tabs=python
request_body = UpdatePolicy(
odata_type = "#microsoft.graph.windowsUpdates.updatePolicy",
audience = DeploymentAudience(
id = "8c4eb1eb-d7a3-4633-8e2f-f926e82df08e",
),
compliance_changes = [
ContentApproval(
odata_type = "#microsoft.graph.windowsUpdates.contentApproval",
),
],
compliance_change_rules = [
ContentApprovalRule(
odata_type = "#microsoft.graph.windowsUpdates.contentApprovalRule",
content_filter = DriverUpdateFilter(
odata_type = "#microsoft.graph.windowsUpdates.driverUpdateFilter",
),
duration_before_deployment_start = "P7D",
),
],
deployment_settings = DeploymentSettings(
odata_type = "microsoft.graph.windowsUpdates.deploymentSettings",
schedule = ScheduleSettings(
gradual_rollout = RateDrivenRolloutSettings(
odata_type = "#microsoft.graph.windowsUpdates.rateDrivenRolloutSettings",
duration_between_offers = "P1D",
additional_data = {
"device_per_offer" : 1000,
}
),
),
),
)
result = await graph_client.admin.windows.updates.update_policies.post(request_body)
响应
以下示例显示了相应的响应。
注意:为了提高可读性,可能缩短了此处显示的响应对象。
HTTP/1.1 201 Created
Content-Type: application/json
{
"@odata.context": "https://graph.microsoft.com/beta/$metadata#admin/windows/updates/updatePolicies/$entity",
"id": "1b35b81b-f839-4951-882a-1fbfc6446409",
"createdDateTime": "String (timestamp)",
"autoEnrollmentUpdateCategories": [],
"complianceChangeRules": [
{
"@odata.type": "#microsoft.graph.windowsUpdates.contentApprovalRule",
"createdDateTime": "String (timestamp)",
"lastEvaluatedDateTime": "String (timestamp)",
"lastModifiedDateTime": "String (timestamp)",
"durationBeforeDeploymentStart": "P7D",
"contentFilter": {
"@odata.type": "#microsoft.graph.windowsUpdates.driverUpdateFilter"
}
}
],
"deploymentSettings": {
"monitoring": null,
"contentApplicability": null,
"userExperience": null,
"expedite": null,
"schedule": {
"startDateTime": "String (timestamp)",
"gradualRollout": {
"@odata.type": "#microsoft.graph.windowsUpdates.rateDrivenRolloutSettings",
"durationBetweenOffers": "P1D",
"devicesPerOffer": 0
}
}
}
}