Restringir discretamente os usuários de executar certos programas em computadores Windows

2

Eu tenho um usuário que está jogando o dia todo no trabalho e quero controlar discretamente se e quando ele pode executar o jogo dele.

Existe uma maneira de configurar um cronograma para quando o programa pode ser executado e quando não é permitido executar?

    
por Jeff Leonard 22.07.2009 / 16:07

7 respostas

3

Eu tive esse problema exato com alguém na minha rede há algum tempo.

Em um esforço para controlar esse comportamento durante o horário de funcionamento, eu escrevi o script abaixo. Ao executar isso em um shell Cygwin com as tarefas shceduled no Windows, você pode executá-lo sempre que quiser e fazer com que o agendador simplesmente mate o trabalho quando quiser que os programas do usuário voltem a funcionar. Isso não funcionará em uma caixa unix, pois é um script híbrido que usa comandos do Windows e um script de shell BASH. Também vale a pena notar, você pode configurá-lo como um trabalho CRON no shell cygwin, se você quiser evitar o uso do agendador de janelas.

Pré-requisitos
1) Cygwin carregado em um sistema que você controla na mesma rede que o usuário. (Eu usei meu sistema de administração para isso, pois já tenho o Cygwin) 2) Uma conta de usuário com privilégios administrativos no sistema em que o software está sendo executado.

Background
Eu recomendo não usar a conta de administrador para o domínio ou o administrador local como se o seu script estivesse comprometido, isso exporia suas senhas de administrador. Criando uma conta local discreta. Eu recomendo usar um que soe como é do fornecedor do computador.

Detalhamento detalhado do script
Neste exemplo, HQ-WS-599 é a estação de trabalho em que o usuário está em hpassistant é a conta de usuário local que criei neste sistema de usuários e / P faz referência à senha da conta. warcraft.exe e os dois listados abaixo no código são os três programas que decidi restringir. A variável sleepytime determina com que frequência ela tenta alcançar a rede e mata os processos que você definiu.

Como isso funcionou?
Quando comecei a usar esse script, descobri que ele funciona como um campeão. Mesmo um usuário extremamente tecnicamente experiente terá dificuldade em descobrir este. Com exceção de um sniffer ou outra ferramenta perspicaz, você não verá nenhuma evidência de execução diferente do processo que será cancelado espontaneamente sem notificação.

Agora, para o script ...

#!/usr/bin/bash

var0=1
LIMIT=1
SleepyTime=45

while [ "$var0" -eq "$LIMIT" ]
#      ^                    ^
# Spaces, because these are "test-brackets" . . .
do
  taskkill /S HQ-WS-599 /U hpassistant /P hpassistpw!2 /IM "warcraft.exe"
  taskkill /S HQ-WS-599 /U hpassistant /P hpassistpw!2 /IM "solataire.exe"
  taskkill /S HQ-WS-599 /U hpassistant /P hpassistpw!2 /IM "freecell.exe"

  #             ^           Space, to separate printed out numbers.

  # var0='expr $var0 + 1'   # var0=$(($var0+1))  also works.
                          # var0=$((var0 + 1)) also works.
                          # let "var0 += 1"    also works.
  sleep $SleepyTime
done                      # Various other methods also work.

echo

exit 0

Espero que você ache isso útil

    
por 22.07.2009 / 16:27
12

Eu vou pesar com uma resposta, mas vou repetir o que foi dito nos comentários também. Esta é uma ideia horrível. Você tem um problema de gerenciamento, não um problema técnico. Embora eu entenda que seus "chefes" estão pedindo que você resolva o problema deles, eu diria que você precisa informá-los de que não há uma solução técnica para esse problema.

A solução da Microsoft para o que você está procurando é Políticas de Restrição de Software . Você pode definir vários critérios para permitir / não permitir a execução do programa.

A execução do modo "permitir tudo, bloquear exceções" (chamada de "Modo irrestrito" pela Microsoft) não ajudará. Os usuários podem renomear arquivos ou copiá-los com um byte de lixo acrescentado no final para eliminar o hash criptográfico.

No "Modo não permitido", em que somente os programas ou caminhos permitidos explicitamente podem ser executados, a Diretiva de Restrição de Software realmente tem dentes. (Com a ressalva de que, se os usuários tiverem direitos de "Administrador", suas tentativas de pará-los serão desdentados, independentemente de como você os configurar.) Com um usuário não administrador e alguns caminhos bem definidos em "Modo não permitido" onde o usuário não pode gravar arquivos), você pode fazer um trabalho maravilhoso fazendo com que o Windows XP impeça a execução de softwares não autorizados.

Obviamente, ser uma arquitetura "negar tudo, permitir explícito" significa mais trabalho para configurá-lo, mas o "ganho" é que ele realmente pode impedir que praticamente todo software indesejado trabalhe em um computador (mesmo software que "vive" em pastas para as quais o usuário tem direitos de escrever - um truque que o Google Chrome faz, por exemplo).

Eu não posso enfatizar o suficiente que você está tentando resolver um problema de gestão com meios técnicos. Essa é uma receita para perder tempo, desperdiçar esforço e criar mais problemas do que "resolver". A menos que você faça algo muito drástico como as Políticas de Restrição de Software no modo Não permitido (e retire os direitos de Administrador do usuário), você não chegará a lugar nenhum. Se você tomar medidas tão drásticas, acabará gastando muito mais tempo e dinheiro do que seria gasto se a gerência simplesmente "mantivesse" (ou "mulher", conforme o caso) e fizesse o trabalho deles. / p>     

por 22.07.2009 / 18:03
3

+1 para todos os comentários "é um problema de pessoas, não um problema técnico".

Mas ... Se você precisar, esse seria um bom lugar para usar PsTools da Sysinternal . Você pode usar PsList para mostrar os processos em execução na caixa remota e PsKill para eliminar remotamente o (s) processo (s) do jogo.

    
por 22.07.2009 / 18:20
2
O

PSKILL do sysinternals permitirá que você mate remotamente os processos. Você pode configurar um .cmd em seu sistema e colocá-lo no agendador de tarefas para executar a cada 5, 10 ou 15 minutos.

    
por 22.07.2009 / 18:50
1

Se a gerência não cuida disso como deveria, então diga a eles que sim, você pode cuidar disso, mas não de uma maneira meio idiota, como restringir quando eles podem jogar. Dedicar em torno do problema não vai ajudar a longo prazo.

Eu excluir ou renomear o executável. Se é minesweeper ou corações ou algo assim, você deve ser feito. Se for um jogo que eles instalaram, lembre-os de que não devem instalar seu próprio software nos computadores da empresa. Remova o acesso de administrador, se necessário.

    
por 22.07.2009 / 19:02
0

Eu faria o CYA mantendo a documentação do que você é solicitado a fazer, por quem e quando e os passos que você toma para implementá-lo, além de qualquer outra comunicação relacionada ou ações / reações.

    
por 22.07.2009 / 20:39
0

Use um GPO e implemente uma política de restrição de software. infelizmente está desligado ou ligado. O uso de tarefas não impede que os usuários iniciem o aplicativo novamente.

    
por 03.08.2009 / 16:19

Tags