it-swarm-pt.tech

Executar automaticamente um script quando eu fizer logon no Windows

Como posso executar automaticamente um script quando faço logon no Windows?

Eu gostaria de executar algo assim sempre que eu fizer login no meu computador:

echo %USERNAME% logged on at %DATE% %TIME% >> log.txt

Um bônus seria poder executar o mesmo script sempre que eu desbloquear o protetor de tela também.

27
Hallgrim

Você pode criar uma tarefa agendada que será executada quando seu computador estiver desbloqueado:

  1. Iniciar> Ferramentas Administrativas> Agendador de Tarefas
  2. painel esquerdo: selecione Biblioteca do Agendador de Tarefas
  3. painel direito: clique em Criar Tarefa ... (NOTA: esta é a única maneira de obter o gatilho correto)
  4. na caixa de diálogo Criar tarefa:
    • Guia Geral - forneça um nome para sua tarefa
    • Guia Triggers - clique em Novo ... e selecione No desbloqueio da estação de trabalho
    • Guia Ação - clique em Novo ... e clique em Procurar ... para localizar seu script
    • Guia Condições - desmarque a opção Iniciar a tarefa somente se o computador estiver com energia CA

Além disso, eu ajustei o caminho no script para ler

echo %USERNAME% logged on at %DATE% %TIME% >> %USERPROFILE%\log.txt
18
Jeff

Se você já tem um script:

Para atribuir um script de logon a um usuário ou grupo

  • Abra o Gerenciamento do Computador.
  • Na árvore de console, clique em Usuários.

Onde? Ferramentas do Sistema/Usuários e Grupos Locais/Usuários

  • Clique duas vezes no usuário ao qual você deseja atribuir um script de logon.
  • Clique na guia Perfil.
  • No campo de script Logon, insira o caminho e o nome do script de logon que você deseja atribuir a esse usuário e clique em OK.

Aqui está um prático "HowTo" da Microsoft

Criando scripts de logon

Você pode usar scripts de logon para atribuir tarefas que serão executadas quando um usuário fizer logon em um determinado computador. Os scripts podem executar comandos do sistema operacional, definir variáveis ​​de ambiente do sistema e chamar outros scripts ou programas executáveis. A família Windows Server 2003 oferece suporte a dois ambientes de scripts: o processador de comandos executa arquivos que contêm comandos de idioma em lote e o WSH (Windows Script Host) executa arquivos que contêm comandos Visual Basic Scripting Edition (VBScript) ou JScript. Você pode usar um editor de texto para criar scripts de logon. Algumas tarefas comumente executadas por scripts de logon incluem:

  • Mapeamento de unidades de rede.
  • Instalando e configurando a impressora padrão do usuário.
  • Coletando informações do sistema de computador.
  • Atualizando assinaturas de vírus.
  • Atualizando o software.
  • O script de logon de exemplo a seguir contém comandos VBScript que usam o Active Directory
  • Interfaces de serviço (ADSI) para executar três tarefas comuns com base na participação do grupo do usuário:

Ele mapeia a unidade H: para o diretório base do usuário chamando o método MapNetworkDrive do objeto WSH Network em combinação com a propriedade UserName do objeto de Rede WSH. Ele usa o objeto ADSI IADsADSystemInfo para obter o nome distinto do usuário atual, que por sua vez é usado para se conectar ao objeto de usuário correspondente no Active Directory. Depois que a conexão é estabelecida, a lista de grupos dos quais o usuário é membro é recuperada usando o atributo memberOf do usuário. A lista de vários valores de nomes de grupos é unida em uma única string usando a função Join do VBScript para facilitar a pesquisa de nomes de grupos de destino.

Se o usuário atual for membro de um dos três grupos definidos na parte superior do script, o script mapeará a unidade G: do usuário para a unidade compartilhada do grupo e definirá a impressora padrão do usuário como a impressora do grupo. Para criar um script de logon de exemplo

  • Abra o Bloco de Notas.
  • Copie e cole ou digite o seguinte:

    Const ENGINEERING_GROUP     = "cn=engineering"
    Const FINANCE_GROUP         = "cn=finance"
    Const HUMAN_RESOURCES_GROUP = "cn=human resources"
    
    Set wshNetwork = CreateObject("WScript.Network")
    wshNetwork.MapNetworkDrive "h:",
    "\\FileServer\Users\" & wshNetwork.UserName
    
    Set ADSysInfo = CreateObject("ADSystemInfo")
    Set CurrentUser = GetObject("LDAP://" &
    ADSysInfo.UserName)
    strGroups = LCase(Join(CurrentUser.MemberOf))
    
    If InStr(strGroups, ENGINEERING_GROUP) Then
    
        wshNetwork.MapNetworkDrive "g:",
        "\\FileServer\Engineering\"
        wshNetwork.AddWindowsPrinterConnection
        "\\PrintServer\EngLaser"
        wshNetwork.AddWindowsPrinterConnection
        "\\PrintServer\Plotter"
        wshNetWork.SetDefaultPrinter
        "\\PrintServer\EngLaser"
    
    ElseIf InStr(strGroups, FINANCE_GROUP) Then
    
        wshNetwork.MapNetworkDrive "g:",
        "\\FileServer\Finance\"
        wshNetwork.AddWindowsPrinterConnection
        "\\PrintServer\FinLaser"
        wshNetWork.SetDefaultPrinter
        "\\PrintServer\FinLaser"
    
    ElseIf InStr(strGroups, HUMAN_RESOURCES_GROUP) Then
    
        wshNetwork.MapNetworkDrive "g:",
        "\\FileServer\Human Resources\"
        wshNetwork.AddWindowsPrinterConnection
        "\\PrintServer\HrLaser"
        wshNetWork.SetDefaultPrinter
        "\\PrintServer\HrLaser"
    
    End If
    
  • No menu Arquivo, clique em Salvar como.

  • Em Salvar em, clique no diretório que corresponde à pasta compartilhada Netlogon do controlador de domínio (geralmente SystemRoot\SYSVOL\Sysvol\Nome_do_domínio\Scripts em que Nome_do_domínio é o nome de domínio totalmente qualificado do domínio).
  • Em Salvar como tipo, clique em Todos os arquivos.
  • Em Nome do arquivo, digite um nome de arquivo, seguido por .vbs e clique em Salvar. O WSH usa a extensão .vbs para identificar arquivos que contêm comandos do VBScript.
22
Ivo Flipse

A maneira mais simples que posso pensar seria colocar isso em um arquivo .bat na sua pasta de inicialização.

Uma maneira mais complicada seria adicionar o arquivo em lotes ao registro no

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

chave do registro.

14
Bruce McLeod

Não há necessidade! O Windows já possui m mecanismo para registrar isso para você no log de eventos. O ID do evento é 4624 (528 em sistemas anteriores ao Vista).

2
Aryeh Leib Taurog

Alguém sabe se isso pode ser usado para executar quando a tela está bloqueada/desbloqueada também?

Existe uma maneira do Windows 7 e/ou do Windows Server 2008.

Use o Agendador de Tarefas, crie uma nova tarefa básica, como o gatilho usar "Quando eu fizer logon".

2
Tomas Tintera

Um bom método alternativo é criar um arquivo de lote com os comandos que você deseja executar neles. Em seguida, você especificará no editor de política na máquina que ele executa um script de login como parte do processo de login. Uma nota rápida é que esta opção só está disponível em XP Pro e não na versão inicial.

tutorial do editor de diretiva de grupo aqui

2
Axxmasterr