CSP DynamicManagement

A tabela abaixo mostra a aplicabilidade às versões 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

O Windows 10 ou Windows 11 permite gerenciar dispositivos de maneira diferente dependendo do local, rede ou hora.  Adicionado ao Windows 10, versão 1703, o foco está nas áreas mais comuns de preocupação expressas pelas organizações. Por exemplo, os dispositivos gerenciados podem ter câmeras desabilitadas quando estiverem em um local de trabalho, o serviço celular pode ser desabilitado quando estiver fora do país/região para evitar tarifas de roaming ou a rede sem fio pode ser desabilitada quando o dispositivo não estiver dentro do prédio corporativo ou campus. Depois de definidas, essas configurações serão impostas mesmo que o dispositivo não consiga acessar o servidor de gerenciamento quando o local ou a rede mudar. 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.

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

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

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

Gerenciamento Dinâmico O nó raiz do provedor de serviços de configuração DynamicManagement.

NotificationsEnabled Valor booleano 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>

Lista Ativa Uma cadeia de caracteres que contém a lista de todos os ContextIDs ativos no dispositivo. O delimitador é um caractere unicode 0xF000.

A operação com suporte é Get.

Contextos Node 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.

Definição de sinal XML de definição de sinal.

Tipo de valor é cadeia de caracteres.

As operações com suporte são adicionar, obter, excluir e substituir.

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

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

Status do contexto Relata o status do contexto. Se houver uma falha, SettingsPackResponse deverá ser verificado quanto ao que exatamente falhou.

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 booleano para enviar um alerta ao servidor quando um contexto falhar. As operações com suporte são Get e Replace.

Exemplos

Desabilite a Cortana com base na localização geográfica e no horário, das 9h às 17h, quando estiver 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>

Desative 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