Поставщик служб конфигурации DynamicManagement

В таблице ниже показано применимость Windows:

Выпуск Windows 10 Windows 11
Домашняя Нет Нет
Pro Нет Нет
Windows SE Нет Нет
Для бизнеса Нет Нет
Корпоративная Да Да
Для образовательных учреждений Да Да

Windows 10 или Windows 11 позволяет управлять устройствами по-разному в зависимости от расположения, сети или времени.  В Windows 10 версии 1703 основное внимание уделяется наиболее распространенным областям, вызывающим озабоченность, выраженным организациями. Например, на управляемых устройствах могут быть отключены камеры на рабочем месте, служба сотовой связи может быть отключена за пределами страны или региона, чтобы избежать платы за роуминг, или беспроводная сеть может быть отключена, если устройство не находится в корпоративном здании или кампусе. После настройки эти параметры будут применяться, даже если устройство не может связаться с сервером управления при изменении расположения или сети. DynamicManagement CSP позволяет настраивать политики, которые меняют тип управления устройством и определяют условия, когда происходят эти изменения.

Этот поставщик служб CSP был добавлен в Windows 10 версии 1703.

В следующем примере показан поставщик службы конфигурации DynamicManagement в формате дерева.

./Device/Vendor/MSFT
DynamicManagement
----NotificationsEnabled
----ActiveList
----Contexts
--------ContextID
------------SignalDefinition
------------SettingsPack
------------SettingsPackResponse
------------ContextStatus
------------Altitude
----AlertsEnabled

DynamicManagement Корневой узел для поставщика службы конфигурации DynamicManagement.

УведомленияEnabled Логическое значение для отправки пользователю уведомления об изменении контекста.

Значение по умолчанию — False.

Поддерживаются операции Get и Replace.

Пример включения notificationsEnabled:

<Replace>
      <CmdID>100</CmdID>
      <Item>
        <Target>
          <LocURI>./Vendor/MSFT/DynamicManagement/NotificationsEnabled</LocURI>
        </Target>
        <Meta>
          <Type xmlns="syncml:metinf">text/plain</Type>
          <Format xmlns="syncml:metinf">bool</Format>
        </Meta>
          <Data>true</Data>
      </Item>
</Replace>

ActiveList Строка, содержащая список всех активных идентификаторов ContextID на устройстве. Разделитель — это символ юникода 0xF000.

Поддерживаемая операция — Get.

Контекстах Узел для сведений о контексте.

Поддерживаемая операция — Get.

ContextID Узел, созданный сервером для определения контекста. Максимально допустимое число символов — 38.

Поддерживаемые операции: Add, Get и Delete.

SignalDefinition XML-код определения сигнала.

Тип значения - строка.

Поддерживаемые операции: Add, Get, Delete и Replace.

SettingsPack Параметры, применяемые при активном контексте.

Тип значения - строка.

Поддерживаемые операции: Add, Get, Delete и Replace.

SettingsPackResponse Ответ от применения пакета параметров, содержащего сведения о каждом отдельном действии.

Тип значения - строка.

Поддерживаемая операция — Get.

ContextStatus Сообщает о состоянии контекста. Если произошел сбой, необходимо проверить параметрыPackResponse на наличие сбоя.

Тип значения - целое число.

Поддерживаемая операция — Get.

Высоте Значение , определяющее способ обработки разрешения конфликтов при применении нескольких контекстов на устройстве. Это необходимо и должно отличаться от других приоритетов.

Тип значения - целое число.

Поддерживаемые операции: Add, Get, Delete и Replace.

AlertsEnabled Логическое значение для отправки оповещения на сервер при сбое контекста. Поддерживаются операции Get и Replace.

Примеры:

Отключите Кортану в зависимости от географического расположения и времени с 9:00 до 5 вечера, когда в радиусе 100 метров указанной широты и долготы

    <Replace>
      <CmdID>200</CmdID>
      <Item>
        <Target>
          <LocURI>./Vendor/MSFT/DynamicManagement/Contexts/Bldg109/SettingsPack</LocURI>
        </Target>
        <Meta>
          <Type xmlns="syncml:metinf">text/plain</Type>
          <Format xmlns="syncml:metinf">chr</Format>
        </Meta>
        <Data><SyncML>
  <SyncBody><Replace><CmdID>1001</CmdID><Item><Target><LocURI>./Vendor/MSFT/Policy/Config/Experience/AllowCortana</LocURI></Target><Meta><Format xmlns="syncml:metinf">int</Format></Meta><Data>0</Data></Item></Replace><Final/></SyncBody></SyncML></Data>
      </Item>
    </Replace>
    <Replace>
      <CmdID>201</CmdID>
      <Item>
        <Target>
          <LocURI>./Vendor/MSFT/DynamicManagement/Contexts/Bldg109/SignalDefinition</LocURI>
        </Target>
        <Meta>
          <Type xmlns="syncml:metinf">text/plain</Type>
          <Format xmlns="syncml:metinf">chr</Format>
        </Meta>
        <Data>
          <rule schemaVersion="1.0">

           <and>
                    <signal type="geoloc" latitude="47.6375" longitude="-122.1402" radiusInMeters="100"/>
                    <signal type="time">
                              <daily startTime="09:00:00" endTime="17:00:00"/>
                    </signal>
           </and>
          </rule>
        </Data>
      </Item>
    </Replace>
    <Replace>
      <CmdID>202</CmdID>
      <Item>
        <Target>
          <LocURI>./Vendor/MSFT/DynamicManagement/Contexts/Bldg109/Altitude</LocURI>
        </Target>
        <Meta>
          <Format xmlns="syncml:metinf">int</Format>
        </Meta>
        <Data>3</Data>
      </Item>
    </Replace>

Отключение камеры с помощью сетевого триггера с триггером времени от 9 до 5, если шлюз IP4 — 192.168.0.1

<Replace>
      <CmdID>300</CmdID>
      <Item>
        <Target>
          <LocURI>./Vendor/MSFT/DynamicManagement/Contexts/NetworkWithTime/SettingsPack</LocURI>
        </Target>
        <Meta>
          <Type xmlns="syncml:metinf">text/plain</Type>
          <Format xmlns="syncml:metinf">chr</Format>
        </Meta>
        <Data><SyncML>
  <SyncBody><Replace><CmdID>1002</CmdID><Item><Target><LocURI>./Vendor/MSFT/Policy/Config/Camera/AllowCamera</LocURI></Target><Meta><Format xmlns="syncml:metinf">int</Format></Meta><Data>0</Data></Item></Replace> <Final/></SyncBody></SyncML></Data>
      </Item>
    </Replace>
    <Replace>
      <CmdID>301</CmdID>
      <Item>
        <Target>
          <LocURI>./Vendor/MSFT/DynamicManagement/Contexts/NetworkWithTime/SignalDefinition</LocURI>
        </Target>
        <Meta>
          <Type xmlns="syncml:metinf">text/plain</Type>
          <Format xmlns="syncml:metinf">chr</Format>
        </Meta>
        <Data>
          <rule schemaVersion="1.0">
           <and>
             <signal type="ipConfig">
                   <ipv4Gateway>192.168.0.1</ipv4Gateway>
             </signal>
                    <signal type="time">
                              <daily startTime="09:00:00" endTime="17:00:00"/>
                    </signal>
           </and>
          </rule>
        </Data>
      </Item>
    </Replace>
    <Replace>
      <CmdID>302</CmdID>
      <Item>
        <Target>
          <LocURI>./Vendor/MSFT/DynamicManagement/Contexts/NetworkWithTime/Altitude</LocURI>
        </Target>
        <Meta>
          <Format xmlns="syncml:metinf">int</Format>
        </Meta>
        <Data>10</Data>
      </Item>
    </Replace>

Удаление контекста:

<Delete>
      <CmdID>400</CmdID>
      <Item>
        <Target>
          <LocURI>./Vendor/MSFT/DynamicManagement/Contexts/NetworkWithTime</LocURI>
        </Target>
      </Item>
</Delete>

Получите ContextStatus и SignalDefinition из определенного контекста:

<Get>
      <CmdID>400</CmdID>
      <Item>
        <Target>
          <LocURI>./Vendor/MSFT/DynamicManagement/Contexts/NetworkWithTime/ContextStatus</LocURI>
        </Target>
      </Item>
</Get>
<Get>
      <CmdID>401</CmdID>
      <Item>
        <Target>
          <LocURI>./Vendor/MSFT/DynamicManagement/Contexts/NetworkWithTime/SignalDefinition </LocURI>
        </Target>
      </Item>
</Get>

Справочник по поставщикам служб конфигурации