CSP de DynamicManagement

En la tabla siguiente se muestra la aplicabilidad de Windows:

Edición Windows 10 Windows 11
Inicio No No
Pro No No
Windows SE No No
Negocios No No
Empresa
Educación

Windows 10 o Windows 11 le permite administrar dispositivos de forma diferente en función de la ubicación, la red o el tiempo.  Añadido en Windows 10, versión 1703, el enfoque se centra en las áreas más comunes de preocupación expresadas por las organizaciones. Por ejemplo, los dispositivos administrados pueden tener cámaras deshabilitadas cuando se encuentran en una ubicación de trabajo, el servicio de telefonía móvil se puede deshabilitar cuando está fuera del país o región para evitar cargos por itinerancia, o la red inalámbrica se puede deshabilitar cuando el dispositivo no está dentro del edificio corporativo o campus. Una vez configuradas, esta configuración se aplicará incluso si el dispositivo no puede llegar al servidor de administración cuando cambia la ubicación o la red. El CSP de Administración dinámica permite la configuración de directivas que cambian el modo en que el dispositivo se administra además de establecer las condiciones en las que se produce el cambio.

Este CSP se agregó en Windows 10, versión 1703.

En el ejemplo siguiente se muestra el proveedor de servicios de configuración DynamicManagement en formato de árbol.

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

DynamicManagement Nodo raíz del proveedor de servicios de configuración DynamicManagement.

NotificationsEnabled Valor booleano para enviar una notificación al usuario de un cambio de contexto.

El valor predeterminado es False.

Las operaciones admitidas son Obtener y Reemplazar.

Ejemplo para activar 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 Cadena que contiene la lista de todos los ContextID activos en el dispositivo. El delimitador es 0xF000 de caracteres Unicode.

La operación admitida es Obtener.

Contextos Nodo para información de contexto.

La operación admitida es Obtener.

ContextID Nodo creado por el servidor para definir un contexto. El número máximo de caracteres permitidos es 38.

Las operaciones admitidas son Agregar, Obtener y Eliminar.

SignalDefinition XML de definición de señal.

El tipo de valor es cadena.

Las operaciones admitidas son Agregar, Obtener, Eliminar y Reemplazar.

SettingsPack Configuración que se aplica cuando el contexto está activo.

El tipo de valor es cadena.

Las operaciones admitidas son Agregar, Obtener, Eliminar y Reemplazar.

SettingsPackResponse Respuesta de la aplicación de un paquete de configuración que contiene información sobre cada acción individual.

El tipo de valor es cadena.

La operación admitida es Obtener.

ContextStatus Notifica el estado del contexto. Si se produjo un error, se debe comprobar SettingsPackResponse para saber qué es exactamente lo que se ha producido un error.

El tipo de valor es entero.

La operación admitida es Obtener.

Altitud Valor que determina cómo controlar la resolución de conflictos de la aplicación de varios contextos en el dispositivo. Esto es necesario y debe ser distinto de otras prioridades.

El tipo de valor es entero.

Las operaciones admitidas son Agregar, Obtener, Eliminar y Reemplazar.

AlertsEnabled Valor booleano para enviar una alerta al servidor cuando se produce un error en un contexto. Las operaciones admitidas son Obtener y Reemplazar.

Ejemplos

Deshabilite Cortana en función de la ubicación geográfica y la hora, de 9:00 a 17:00, cuando se encuentra en el radio de 100 metros de la latitud/longitud especificada.

    <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>

Deshabilitar la cámara mediante el desencadenador de red con desencadenador de tiempo, del 9 al 5, cuando la puerta de enlace ip4 es 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>

Eliminar un contexto:

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

Obtenga ContextStatus y SignalDefinition desde un contexto específico:

<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>

Referencia de proveedor de servicios de configuración