Поделиться через


Использование API параметров Windows в Microsoft Graph

API параметров Windows позволяет пользователям и авторизованным третьим лицам, действующим от имени пользователей, получать данные параметров операционной системы Windows, хранящиеся в облаке Майкрософт. Данные параметров Windows доступны в облаке Майкрософт только тогда, когда пользователи активируют эту функцию. Область данных, доступных для каждого пользователя, зависит от выбранных параметров резервного копирования. Значения по умолчанию для любых параметров остаются локальными и не передаются в облако. API параметров Windows предоставляет доступ только к данным параметров, которые пользователь отправляет в облако.

Параметры Windows

Ресурс windowsSetting представляет различные параметры операционной системы Windows, которые хранятся в облаке для конкретного пользователя. Параметры Windows бывают двух типов: roaming и backup. Свойство settingType объекта windowsSetting указывает тип параметра.

Тип параметра Описание
Роуминг Параметр Windows связан с учетной записью пользователя. Параметр согласован на всех устройствах, и все изменения значения параметра синхронизируются или применяются ко всем устройствам Windows, принадлежащим пользователю.
Резервного копирования Параметр Windows не перемещается или не синхронизируется между устройствами. Этот тип параметров используется в сценариях резервного копирования и восстановления устройств.

Объект windowsSetting типа backup может иметь свойство windowsDeviceId , которое связывает параметр с определенным устройством.

API перечисления параметров Windows возвращает коллекцию объектов windowsSetting и их свойства. Результаты можно фильтровать по свойствам windowsDeviceId и settingType .

API get windowsSetting позволяет передать идентификатор windowsSetting в URL-адресе для чтения определенного объекта параметров Windows.

В следующем представлении JSON показан пример типа ресурса windowsSetting . Коллекция экземпляров представляет объекты windowsSettingInstance .

{
  "@odata.type": "#microsoft.graph.windowsSetting",
  "id": "{67585f9f-ee4b-4dd8-808e-d88375d66ef7}$windows.data.apps.devicemetadata",
  "windowsDeviceId": "67585f9f-ee4b-4dd8-808e-d88375d66ef7",
  "settingType": "backup",
  "payloadType": "windows.data.apps.devicemetadata",
  "instances": [
            {
                "id": "14b50191-10e5-4da5-9099-8c909b8458bd",
                "payload": "VGhpcyBpcyBqdXN0IGFuIGV4YW1wbGUh",
                "lastModifiedDateTime": "2024-10-31T23:30:41Z",
                "createdDateTime": "2024-02-12T19:34:35.223Z",
                "expirationDateTime": "2034-02-09T19:34:33.771Z"
            }
        ]
}

Предупреждение

Структура идентификатора объекта windowsSetting не гарантируется, и вызывающий объект не должен зависеть от него. Идентификатор должен рассматриваться как непрозрачная строка.

Экземпляры параметров Windows

WindowsSettingInstance представляет экземпляр параметра из операционной системы Windows, который хранится в облаке для данного пользователя. Объект windowsSettingInstance принадлежит windowsSetting.

В следующем представлении JSON показан пример типа ресурса windowsSettingInstance .

{
  "@odata.type": "#microsoft.graph.windowsSettingInstance",
  "id": "6984732f-86b0-8e31-dc02-37fce0df6d61",
  "payload": "VGhpcyBpcyBhbm90aGVyIGp1c3QgYW4gZXhhbXBsZSE=",
  "lastModifiedDateTime": "2024-10-31T23:30:41Z",
  "createdDateTime": "2024-02-12T19:34:35.223Z",
  "expirationDateTime": "2034-02-09T19:34:33.771Z"
}

API перечисления экземпляров параметров Windows возвращает коллекцию объектов windowsSettingInstance и их свойства. Api требует идентификатор windowsSetting в URL-адресе для чтения экземпляров параметров.

API получения экземпляра параметра Windows позволяет передать идентификатор windowsSetting и windowsSettingInstance в URL-адресе для чтения определенного объекта экземпляра параметра Windows.

Свойство полезных данныхобъекта windowsSettingInstance содержит фактическое значение параметра. Полезные данные — это строка в формате Base64. Свойство payloadType объекта windowsSetting указывает тип значения параметра. Полезные данные при декодировании — это объект JSON, который отличается от параметра к параметру и связан с полезным типом.

свойство payloadType

PayloadType определяет структуру полезных данных windowsSettingInstance. Windows включает ряд типов полезных данных, которые представляют различные структуры параметров, используемые различными операционными системами. По мере развития Windows создаются и подключены к облаку дополнительные типы полезных данных. Запрос API и изучение доступных параметров — лучший способ узнать о различных типах полезных данных. Пользователи и администраторы имеют контроль над параметрами, которые передаются в облако, а большинство компонентов не передают параметры по умолчанию, которые пользователь не настроил.

В следующем примере показан объект windowsSettingsInstance, возвращенный API.

{
    "id": "default$windows.data.fileexplorerclassic.advancedsettings",
    "settingType": "roaming",
    "payloadType": "windows.data.fileexplorerclassic.advancedsettings",
    "instances": [
        {
            "id": "d9a7f6e2-8c4b-4e3a-bf7c-1e5a9d8c6f4b",
            "payload": "eyJtaWdyYXRlZEZyb21TU0YiOmZhbHNlLCJhbHdheXNTaG93TWVudXMiOmZhbHNlLCJmb2xkZXJDb250ZW50c0luZm9UaXAiOmZhbHNlLCJoaWRlRHJpdmVzV2l0aE5vTWVkaWEiOmZhbHNlLCJuYXZQYW5lRXhwYW5kVG9DdXJyZW50Rm9sZGVyIjpmYWxzZSwibmF2UGFuZVNob3dBbGxGb2xkZXJzIjpmYWxzZSwibmF2UGFuZVNob3dGYXZvcml0ZXMiOmZhbHNlLCJwZXJzaXN0QnJvd3NlcnMiOmZhbHNlLCJzaGFyaW5nV2l6YXJkT24iOmZhbHNlLCJzaG93RHJpdmVMZXR0ZXJzIjpmYWxzZSwic2hvd1ByZXZpZXdIYW5kbGVycyI6ZmFsc2UsInR5cGVBaGVhZCI6ZmFsc2UsInNob3dTdGF0dXNCYXIiOmZhbHNlLCJzaG93TGlicmFyaWVzIjpmYWxzZSwic2hvd0NvbXBDb2xvciI6ZmFsc2V9",
            "lastModifiedDateTime": "2022-06-27T00:53:00Z",
            "createdDateTime": "2024-02-13T19:51:15.8217101Z",
            "expirationDateTime": "2034-02-10T19:51:14.813Z"
        }
    ]
}

В этом примере payloadTypewindows.data.fileexplorerclassic.advancedsettings представляет некоторые параметры, которые проводник резервное копирование в облако. Полезные данные Base64 можно декодировать в строку UTF-8, чтобы увидеть представление этого объекта в формате JSON.

В следующем примере показаны полезные данные, декодированные.

{
    "migratedFromSSF": false,
    "alwaysShowMenus": false,
    "folderContentsInfoTip": false,
    "hideDrivesWithNoMedia": false,
    "navPaneExpandToCurrentFolder": false,
    "navPaneShowAllFolders": false,
    "navPaneShowFavorites": false,
    "persistBrowsers": false,
    "sharingWizardOn": false,
    "showDriveLetters": false,
    "showPreviewHandlers": false,
    "typeAhead": false,
    "showStatusBar": false,
    "showLibraries": false,
    "showCompColor": false
}

Свойства в объекте обычно являются подмножеством свойств, доступных в пользовательском интерфейсе компонента, так как владельцы компонентов определяют, какие параметры предоставляют наибольшее значение при отправке в облако.

Типы полезных данных

Типы полезных данных, описанные в этом разделе, имеют особую роль в процессе резервного копирования параметров Windows.

windows.data.platform.backuprestore.deviceprofile

Тип полезных данных windows.data.platform.backuprestore.deviceprofile не является параметром, примененным пользователем; этот тип записывает сведения об устройствах, которые выбрали функции резервного копирования параметров. Следующие свойства этого объекта полезны для понимания остальных параметров:

  • deviceDisplayName — имя компьютера. Этот параметр находится в системных параметрах Windows в разделе "Пуск>системы параметров>".
  • profileId — идентификатор, используемый для связывания элементов windowsSetting с устройством, которое их отправило. Это свойство соответствует windowsSetting.windowsDeviceId и может использоваться в качестве фильтра для получения параметров для определенного устройства из API перечисления параметров Windows .

В следующем примере показан этот тип ресурса.

{
    "id": "default$windows.data.platform.backuprestore.deviceprofile$deviceprofiles",
    "settingType": "backup",
    "payloadType": "windows.data.platform.backuprestore.deviceprofile",
    "instances": [
        {
            "id": "73b1a0b8-262a-4804-592a-b82a3a2a0c0d",
            "payload": "ewogICAgInByb2ZpbGVJZCI6ICJ7OTViM2EyYzgtNDgyYS00YTA2LTdiM2EtZGEyYTVhNGIyYzBmfSIsCiAgICAiZGV2aWNlRGlzcGxheU5hbWUiOiAiRVhBTVBMRVVTRVJERVNLVE9QIiwKICAgICJjcmVhdGVkQnkiOiAid2luZG93cyIsCiAgICAic291cmNlUHJvZmlsZUlkIjogIiIsCiAgICAiY3JlYXRlZFRpbWUiOiAxNjY0NjgwNTg5LAogICAgIm1vZGlmaWVkVGltZSI6IDE2OTg3OTUwNDAsCiAgICAiaXNBY3RpdmUiOiB0cnVlLAogICAgImxhc3RGdWxsQmFja3VwQ29tcGxldGVkVGltZSI6IDE2OTgzMzIxMzcsCiAgICAib3NWZXJzaW9uIjogIjE4MDQ1LjM3NTAudmJfcmVsZWFzZSIKfQ==",
            "lastModifiedDateTime": "2023-10-31T23:30:40Z",
            "createdDateTime": "2024-02-13T22:49:02.376Z",
            "expirationDateTime": "2034-02-10T22:49:03.365Z"
        }
    ]
}

В следующем примере показаны полезные данные, декодированные.

{
    "profileId": "{95b3a2c8-482a-4a06-7b3a-da2a5a4b2c0f}",
    "deviceDisplayName": "EXAMPLEUSERDESKTOP",
    "createdBy": "windows",
    "sourceProfileId": "",
    "createdTime": 1664680589,
    "modifiedTime": 1698795040,
    "isActive": true,
    "lastFullBackupCompletedTime": 1698332137,
    "osVersion": "18045.3750.vb_release"
}

windows.data.platform.settingsbackup.backupunitstore

Параметры типа полезных данных backupUnitStore уникальны тем, что фактическое значение параметров — это большой двоичный объект в свойстве данных. Это связано с тем, что параметры backupUnitStore собираются непосредственно из реестра Windows, в файлах на диске или в других неактивных расположениях в Windows. Эти параметры не были разработаны для взаимодействия с интерфейсами, кроме компонентов, которые их создали. Они предоставляются в этом API для полного охвата всех параметров Windows, хранящихся в облаке.