CSP DynamicManagement

A tabela abaixo mostra a aplicabilidade do Windows:

Edição Windows 10 Windows 11
Home Não Não
Pro Não Não
Windows SE Não Não
Negócios Não Não
Enterprise Sim Sim
Educação Sim Sim

Windows 10 ou Windows 11 permite gerenciar dispositivos de forma diferente, dependendo da localização, rede ou hora.  Adicionado no Windows 10, versão 1703, o foco está nas áreas mais comuns de preocupação expressas pelas organizações. Por exemplo, dispositivos gerenciados podem ter câmeras desabilitadas quando em um local de trabalho, o serviço de celular pode ser desabilitado quando fora do país/região para evitar cobranças de roaming, ou a rede sem fio pode ser desabilitada quando o dispositivo não está dentro do prédio ou campus corporativo. Depois de configuradas, essas configurações serão impostas mesmo que o dispositivo não possa alcançar o servidor de gerenciamento quando o local ou a rede for alterado. O CSP de gerenciamento dinâmico habilita a configuração de políticas que alteram como o dispositivo é gerenciado além de definir as condições em que a alteração ocorre.

Este CSP foi adicionado no Windows 10, versão 1703.

O exemplo a seguir mostra o provedor de serviços de configuração DynamicManagement no formato de árvore.

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

DynamicManagement O nó raiz do provedor de serviços de configuração DynamicManagement.

Notificationsenabled Valor booliano para enviar notificação ao usuário de uma alteração de contexto.

O valor padrão é False.

As operações com suporte são Get e Replace.

Exemplo para ativar 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 Uma cadeia de caracteres que contém a lista de todos os ContextIDs ativos no dispositivo. Delimitador é 0xF000 de caractere unicode.

A operação com suporte é Get.

Contextos Nó para informações de contexto.

A operação com suporte é Get.

Contextid Nó criado pelo servidor para definir um contexto. O número máximo de caracteres permitidos é 38.

As operações com suporte são Adicionar, Obter e Excluir.

SignalDefinition Definição de sinal XML.

Tipo de valor é cadeia de caracteres.

As operações com suporte são Adicionar, Obter, Excluir e Substituir.

ConfiguraçõesPacote Configurações que são aplicadas quando o Contexto está ativo.

Tipo de valor é cadeia de caracteres.

As operações com suporte são Adicionar, Obter, Excluir e Substituir.

ConfiguraçõesPackResponse Resposta da aplicação de um Pacote de Configurações que contém informações sobre cada ação individual.

Tipo de valor é cadeia de caracteres.

A operação com suporte é Get.

ContextStatus Relatórios status do contexto. Se houve uma falha, configuraçõesPackResponse devem ser verificadas para o que exatamente está falhando.

Tipo de valor é número inteiro.

A operação com suporte é Get.

Altitude Um valor que determina como lidar com a resolução de conflitos da aplicação de vários contextos no dispositivo. Isso é necessário e deve ser distinto de outras prioridades.

Tipo de valor é número inteiro.

As operações com suporte são Adicionar, Obter, Excluir e Substituir.

AlertsEnabled Um valor booliano para enviar um alerta ao servidor quando um contexto falhar. As operações com suporte são Get e Replace.

Exemplos

Desabilitar a Cortana com base na localização geográfica e na hora, das 9h às 17h, quando no raio de 100 metros da latitude/longitude 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>

Desabilitar a câmera usando o gatilho de rede com gatilho de tempo, de 9 a 5, quando o gateway 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>

Excluir um contexto:

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

Obtenha ContextStatus e SignalDefinition de um 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>

Referência de provedor de serviços de configuração