É possível executar automaticamente o USB com segurança com o Agendador de Tarefas no Windows 7?

É possível executar automaticamente o USB com segurança com o Agendador de Tarefas no Windows 7?

Eu descobri issoO Windows 7 não permite a execução automática em unidades USB.

É possível contornar isso (de forma segura) configurando uma tarefa com o Agendador de Tarefas, que é acionado quando o drive USB é inserido? À primeira vista, não consegui encontrar nenhum evento relacionado ao Visualizador de Eventos.

Responder1

Eu tive a mesma pergunta que você e resolvi algo com o PowerShell (scripts integrados do Windows) usando técnicas do Scripting Guy Blogaquieaqui. O script é executado continuamente como um processo em segundo plano, que você pode iniciar no logon do sistema com o agendador de tarefas. O script será notificado sempre que uma nova unidade for conectada e então fizer alguma coisa (aqui você configura o script em vez da tarefa). Como ele está basicamente pausado enquanto aguarda a próxima unidade conectada, você não deve achar que ele consome muitos recursos. Aqui vou eu:

1) Inicie o Powershell ISE, que pode ser encontrado no menu Iniciar em Acessórios/Windows Powershell.

2) Copie e cole o seguinte no Powershell.

#Requer -versão 2.0
Register-WmiEvent -Class win32_VolumeChangeEvent -SourceIdentifier volumeChange
write-host (get-date -format s) "Script inicial..."
fazer{
  $newEvent = Wait-Event -SourceIdentifier volumeChange
  $eventType = $newEvent.SourceEventArgs.NewEvent.EventType
  $eventTypeName = switch($eventType)
    {
    1 {"Configuração alterada"}
    2 {"Chegada do dispositivo"}
    3 {"Remoção do dispositivo"}
    4 {"acoplamento"}
    }
  write-host (get-date -format s) "Evento detectado =" $eventTypeName
  if ($eventType -eq 2)
  {
    $driveLetter = $newEvent.SourceEventArgs.NewEvent.DriveName
    $driveLabel = ([wmi]"Win32_LogicalDisk='$driveLetter'").NomeDoVolume
    write-host (get-date -format s) "Nome da unidade =" $driveLetter
    write-host (get-date -format s) "Rótulo da unidade =" $driveLabel
    # Executa o processo se a unidade corresponder às condições especificadas
    if ($driveLetter -eq 'Z:' -e $driveLabel -eq 'Espelho')
    {
        write-host (get-date -format s) "Iniciando tarefa em 3 segundos..."
     start-sleep -segundos 3
        processo inicial "Z:\sync.bat"
    }
  }
  Remove-Event -SourceIdentifier volumeChange
} while (1-eq1) #Loop até o próximo evento
Unregister-Event -SourceIdentifier volumeChange

3) Você precisa modificar o script acima para informar ao script qual unidade procurar e o que executar. As duas linhas a serem alteradas são:

  • if ($driveLetter -eq 'Z:' -and $driveLabel -eq 'Mirror')

    Meu disco rígido USB chamado 'Mirror' está definido como unidade Z:. Você poderia simplesmente usar if ($driveLabel -eq 'MyDiskLabel')se não se importasse com a carta.

  • start-process "Z:\sync.bat"

    Caminho de qualquer tarefa que você deseja realizar. No meu exemplo, criei um arquivo em lote na minha unidade USB que inicia de 3 a 4 tarefas de backup, mas pode ser qualquer coisa.

4) Quando terminar, salve seu script em algum lugar (extensão .ps1) e crie uma tarefa no Agendador de tarefas para que seu script seja executado em segundo plano. O meu é assim:

  • Acionador: Ao fazer logon
  • Ação: Iniciar um programa
  • Programa/script: powershell
  • Adicione argumentos: -ExecutionPolicy Unrestricted -File "D:\Stuff\Backup script.ps1"

5) Voilà!

6) Coisas extras: Se você deseja que sua janela de script fique oculta, use estes argumentos:

  • Adicione argumentos: -WindowStyle Hidden -ExecutionPolicy Unrestricted -File "D:\Stuff\Backup script.ps1"

Se você deseja gerar as mensagens do script em um arquivo de log (que é sobrescrito sempre que o script é iniciado, ou seja, no logon), use a seguinte ação de tarefa:

  • Programa/script: cmd
  • Adicione argumentos: /c powershell -WindowStyle Hidden -ExecutionPolicy Unrestricted -File "D:\Stuff\Backup script.ps1" > "D:\Stuff\script log.txt"

Sempre que quiser encerrar o script oculto em execução, você pode encerrar o processo “Powershell” no Gerenciador de Tarefas.

Responder2

Não. Você não pode usar o Agendador de Tarefas.

O único evento registrado que é acionado quando você conecta seu dispositivo USB é iniciar o serviço 'Enumeração de dispositivos portáteis'. Mas você não pode usá-lo no Gerenciador de Tarefas porque o mesmo evento é acionado quandoqualquerserviço é iniciadoeparou. (Além disso, o evento não será acionado se o serviço já estiver em execução quando você conectar o dispositivo.)

Responder3

Remover USB com segurançapossui um recurso: pode iniciar um programa quando um dispositivo USB é inserido.

Outro recurso de remoção segura de USB que o distingue de softwares semelhantes é iniciar qualquer aplicativo não apenas após conectar um dispositivo, mas também antes de removê-lo. O recurso de execução automática permite configurar backup de dados antes de desconectar um disco rígido removível, executar o Total Commander com o conteúdo do pen-drive, desmontar automaticamente uma unidade TrueCrypt criptografada antes de desconectar a mídia USB, etc.

texto alternativo

Responder4

Não acho que um agendador de tarefas seja a ferramenta adequada. Você precisa de algo que responda sempre que um novo dispositivo USB for adicionado. Isso exigiria um aplicativo especializado que pudesse detectar novos dispositivos USB e, portanto, substituiria o recurso de execução automática do Windows.

Sim, tal aplicação é possível. Seria um desafio criar, no entanto.

Usar o agendador de tarefas significa que você vai iniciar a execução automática repetidamente e novamente e novamente e novamente e novamente e novamente e novamente e novamente e novamente e novamente e novamente e novamente e novamente e novamente e novamente (bem , você entendeu) novamente. Você precisaria de um mecanismo para evitar o uso da execução automática duas vezes. E você precisa de um mecanismo que detecte se há uma execução automática disponível ou não, caso contrário você acabará com mensagens de erro eternas. É como bater na parede com um martelo, esperando que haja um prego no meio. O agendador não saberia quando começar e quando parar.

informação relacionada