Executa automaticamente um script quando eu faço logon no Windows

25

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

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.

    
por Hallgrim 30.07.2009 / 15:20

6 respostas

16

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 acionador correto)
  4. na caixa de diálogo Criar tarefa:
    • guia Geral - forneça um nome para sua tarefa
    • guia Disparadores - 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, alterei o caminho no script para ler

echo %USERNAME% logged on at %DATE% %TIME% >> %USERPROFILE%\log.txt
    
por 16.08.2014 / 00:12
22

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

Mais aqui está um "HowTo" da Microsoft

Criando scripts de login

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 do Microsoft Visual Basic Scripting Edition (VBScript) ou JScript. Você pode usar um editor de texto para criar scripts de logon. Algumas tarefas comumente realizadas por scripts de logon incluem:

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

Mapeia a unidade H: para o diretório home 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 de 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.
por 30.07.2009 / 15:36
14

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

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

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run

chave do registro.

    
por 30.07.2009 / 15:21
2

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 está disponível apenas no XP Pro e não na versão inicial.

Tutorial do Editor de políticas de grupo aqui

    
por 30.07.2009 / 15:37
2

Anyone know if this can be used to run when the screen is locked/unlocked as well?

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 acionador usa "Quando eu fizer logon".

    
por 14.05.2010 / 14:50
1

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

    
por 06.01.2015 / 10:53