Como bloquear usuários normais (não administradores) durante a instalação do software?

12

Temos muitos thin clients executando o Windows Embedded Standard 7 e um servidor SCCM 2012 R2 para gerenciá-los. Os thin clients têm seus filtros de gravação ativados (FBWF) para que as alterações na máquina não sejam persistentes. Nas raras ocasiões em que precisamos atualizar algo sobre eles, apenas o implantamos via SCCM e ele automaticamente se encarrega de desativar e ativar os filtros de gravação para confirmar as alterações.

Eis o que deve acontecer: o
cliente SCCM avisa o usuário e uma contagem regressiva de 30 minutos para salvar seu trabalho e sair do sistema. O thin client então reinicia e desativa o filtro de gravação. A tela de logon exibe um cadeado e percebe que a unidade está sendo reparada, e não permitirá que usuários normais (não administradores) façam logon enquanto o SCCM estiver fazendo isso. Quando o SCCM é concluído, ele reativa o filtro de gravação, reinicia e os usuários podem efetuar login novamente.

O problema que estou tendo é que usamos leitores de cartão de proximidade para fazer login no sistema. Os funcionários não digitam senhas. Eles apenas tocam em seu crachá. Esse sistema é bom, mas o software que o executa interrompe a automação do filtro de gravação com o Windows Embedded.

Aqui está o que realmente acontece: o
cliente SCCM emite o aviso habitual de 15 minutos antes de reiniciar com o filtro de gravação desativado. Quando ele é reiniciado, a tela de login normal é exibida. Os usuários podem efetuar login no sistema e usá-lo enquanto o SCCM está instalando o software. E como uma sessão do usuário está ativa, ela novamente avisa 30 minutos antes de reiniciar com o filtro de gravação novamente.

Nesse cenário, ele não apenas adiciona 30 minutos extras ao tempo de implantação, mas também oferece aos usuários comuns 30-60 minutos sólidos de tempo desprotegido nos thin clients com as alterações que eles fizerem, ficando permanentemente inseridas na imagem quando o o filtro de gravação é ativado novamente.

O problema decorre do fato de o Windows Embedded 7 usar um provedor de credenciais diferente (também conhecido como GINA) do que o Windows 7 comum, mas o produto SSO deve substituir o provedor de credenciais do Windows para funcionar. Entrei em contato com o fornecedor, mas eles dizem que é um problema conhecido e que não há solução ou solução alternativa para ele.

Então, aqui está minha pergunta:
como posso simular o comportamento desejado de outra maneira? Eu sei que existe uma configuração de diretiva de grupo em que você pode negar o logon local para grupos de usuários específicos. Eu estava pensando em mudar a configuração de registro correspondente antes e depois da instalação, mas estou aberto a outras idéias.

Não estou acima das instalações de script, se necessário. Sou fluente em scripts, PowerShell, VBScript, etc. Gostaria de saber se alguém tem alguma idéia brilhante sobre como resolver isso.


Atualização:
Eu esqueci de mencionar que esses dispositivos estão sendo usados ​​em um ambiente hospitalar para que a equipe registre seus pacientes. Eles devem estar disponíveis 24 horas por dia, portanto, não podemos restringir o horário de logon ou configurar as janelas de manutenção. Gerenciamos o tempo de inatividade, mediante aviso prévio aos supervisores de turno, mas qualquer coisa que leve mais de uma hora se torna um problema de conformidade legal e exige que os procedimentos oficiais de tempo de inatividade sejam implementados.

Wes Sayeed
fonte
Ótima pergunta. Eu gostaria de ter uma resposta melhor.
boa pergunta-espero que seu conto de desencoraja consternação outros comprem clientes- fina Eu odeio toda a bagagem esses dispositivos "baixa manutenção" trazer
Jim B

Respostas:

4

Antes de começarmos, quero fazer uma observação pedante, mais para o benefício do público em geral do que para você.

apenas pressionamos via SCCM

O SCCM é uma tecnologia baseada em pull. Eu sei o que você quis dizer, mas acho que, com meus funcionários de nível 1, todas as oportunidades que tenho para enfatizar que o SCCM não é uma tecnologia baseada em push os ajudam a entendê-lo mais rapidamente.


Entrei em contato com o fornecedor, mas eles dizem que é um problema conhecido e que não há solução ou solução alternativa para ele.

Isso é muito ruim, pois parece que a causa desse problema é o programa de autenticação de cartão incorporado. Continue com o fornecedor, talvez eles consertem seu software.



Para uma resposta real - vejo algumas soluções possíveis para você, nenhuma delas particularmente boa.

  • Configure uma janela de manutenção para esses clientes para que sua reinicialização inicial remova os clientes do filtro de gravação, a carga útil real e a reinicialização resultante ocorram fora do horário de expediente quando os funcionários não estiverem presentes nos terminais. Esta parece ser a opção menos dolorosa. Não há necessidade de tornar o SCCM mais complicado do que já é.
  • Crie um modelo de Diretiva de Grupo Local que adicione um grupo de segurança ao Direito de Usuário de Negar Logon e atribua / desassocie-o como parte da implantação do aplicativo.
  • Use o PowerShell para definir o direito de negar usuário ao logon. Acredito que as Extensões de Comunidade do PowerShell (PSCX) tenham os Set/Get-Privilegescmdlets que permitirão manipular as Atribuições de Direitos do Usuário
  • Você pode usar a API, se desejar. Aqui está um exemplo .

fonte
Obrigado pela resposta. Atualizei minha pergunta para refletir o ambiente. É uma operação 24x7, portanto a opção 1 não é viável. A opção 2 era o que eu estava pensando, mas não sei como atribuir / cancelar a atribuição de um GPO sob demanda. Isso deixa as opções 3 e 4, que examinarei. Achei que provavelmente teria que sair do roteiro. Ah, e eu corrigida a terminologia :-)
Wes Sayeed
@WesSayeed Em teoria, você poderá criar Modelos de Diretiva de Grupo Local com o SecPol.msc, salvá-los como modelos e aplicar / não aplicar secedit.exeatravés de um script. Não estou falando sobre o uso da Diretiva de Grupo do Active Directory, pois o tempo de pesquisa aleatória não funcionará para sua janela de manutenção.
+1, gosto desta resposta e não tinha conhecimento do PSCX.
MDMoore313
4

Parece que ninguém tocou na possibilidade de usar uma sequência de tarefas para lidar com isso, então permita-me listar os benefícios (supondo que você não esteja realmente familiarizado com eles em geral, mas leia mesmo se estiver):

Se tudo o que você instalar e configurar for tratado com SCCM, você poderá usar uma sequência de tarefas para fazer isso. Principalmente para OSD, o uso de um TS não é apenas para OSD e pode fornecer os seguintes benefícios:

Nenhum log na estação de trabalho

Um TS é executado antes da execução do winlogon.exe; portanto, não há possibilidade de um usuário fazer logon inadvertidamente, pois não há uma janela de logon. O que me leva ao meu segundo ponto:

Tela de plano de fundo personalizada

Você pode fornecer uma tela inicial informando que a manutenção está sendo executada ou o que você deseja que realmente diga.

Um TS é realmente apenas um script glorificado, mas tem muitas funcionalidades e é organizado de maneira a diminuir o tempo de desenvolvimento, e eu encontrei casos de uso além do OSD.

Parece que você já possui um script para fazer o que precisa, portanto, você poderá colocá-lo em um TS com o mínimo de depuração e continuar.

MDMoore313
fonte
1
Eu sempre me perguntei se havia usos no mundo real para sequências de tarefas não OSD.
Alx9r
@BigHomie; Eu apenas tentei fazer uma implantação usando uma sequência de tarefas em vez de um aplicativo normal e isso não impediu o logon do usuário. O primeiro passo na sequência de tarefas é reiniciar o computador. Quando o computador volta, ele apresenta uma tela de logon normal. A sequência de tarefas não é retomada até cerca de um minuto depois (porque o serviço está definido para o início atrasado). Posso configurar o serviço para iniciar imediatamente com a Diretiva de Grupo para que o usuário veja uma barra de progresso, mas isso desencorajaria logons, não os impediria. Estou esquecendo de algo?
21120 Wes Wes
@WesSayeed !! Esse TS é anunciado ao usuário ou ao computador?
MDMoore313
@BigHomie; AFAIK, Sequências de tarefas só podem ser anunciadas para coleções de computadores.
21120 Wes Wes
É isso mesmo, eu esqueci disso. Infelizmente, aceitei um novo emprego no ano passado e estou fora do jogo sccm há um bom tempo. No entanto, continuarei pesquisando a resposta, mas achei que o mesmo mecanismo que permitia a instalação do software durante um OSD antes que a tela de login aparecesse também pode ser usado fora do OSD. Suponho que sua implantação não possa ser feita se a máquina inicializar no WinPE, correto?
precisa saber é o seguinte
2

Você não especificou se o software SSO usa credenciais do Active Directory; portanto, uma solução seria usar a função "Horas de logon" do Active Directory. É no nível por usuário, mas pode ser facilmente script no Powershell ( este é um exemplo). Basicamente, defina as horas de logon para "negar" o logon na janela de atualização do SCCM e os usuários não conseguirão efetuar logon nos clientes enquanto o SCCM faz suas tarefas. Você precisará ter a primeira reinicialização forçada que fará logoff (a função de horas de logon não funciona em usuários logados), mas, caso contrário, seria indolor de implementar.

Nathan C
fonte
O software SSO usa o AD. Tudo isso corresponde a uma etiqueta RFID para uma conta do AD e passa as credenciais para o Windows para realizar o logon. Atualizei minha resposta para explicar por que não posso usar as horas de logon (esqueci de mencionar o ambiente), mas analisarei o script que você referenciou. Talvez eu possa fazer algo assim localmente.
Wes Sayeed
-1

Pode querer testar isso e ver se funciona:

Um script no início da atividade do SCCM para fazer o seguinte:

  • Remova a identidade NT AUTHORITY \ Authenticated Users do grupo local Users
  • Remover NT AUTHORITY \ Identidade interativa do grupo local Usuários
  • Remover o grupo Usuários do Domínio do grupo Usuários local

No fim:

Adicione as entidades de segurança que você removeu de volta ao grupo local Usuários

Os grupos reais que você adiciona / remove podem depender de como os computadores estão configurados no momento.

Algo um pouco mais estacionário, o início da atividade do SCCM pode copiar um atalho para logoff.exe na pasta Todos os Usuários Iniciar Menu \ Inicialização (normalmente C: \ ProgramData \ Microsoft \ Windows \ Menu Iniciar \ Programas \ StartUp). Isso teria o efeito de fazer logoff de uma sessão assim que eles fizerem logon. Para ser seguro, convém ter um script de inicialização / desligamento para excluir esse atalho. (Acredito que os atalhos de inicialização podem ser ignorados mantendo a tecla Shift pressionada durante o logon).

Greg Askew
fonte
Eu tenho que -1 isso, funcionaria, mas se o script for morto no meio, de algum erro aleatório ou da Lei de Murphy, o usuário não poderá fazer o login e estará morto na água até que a TI possa responder.
MDMoore313