Windows Server 2003 - Inicie o programa antes do login

1

Eu gostaria de executar um programa antes do login. Mas não aquele que termina.

É basicamente um cliente rabbitmq que pesquisa constantemente uma fila de mensagens ou qualquer outra coisa.

O motivo pelo qual eu quero fazer isso é apenas para o caso de o servidor do cliente ser reinicializado e a interface do usuário do Windows estar em um estado no qual o usuário não esteja conectado ou tenha um prompt. Eu quero ainda ter o programa funcionando normalmente. Esta é uma limitação que tenho no momento. Se houver uma solução mais simples que elimina esse problema em sua totalidade, por favor, avise-me.

Eu tentei editar os scripts de inicialização. Isso funcionou; correu, mas ficou pendurado. Eu assumi que era porque o programa nunca termina, pelo menos normalmente.

Na verdade, apenas para cobrir minhas bases, a razão pela qual eu quero que este programa seja iniciado antes que alguém se conecte (é esperado que apenas um usuário efetue login, o usuário administrador) é para que o programa possa acessar a rede e sistema de arquivos apenas para o caso de o sistema precisar ser reinicializado inesperadamente, ou nunca travar em um prompt de login, ou algum outro prompt como 'por que você reinicializou?'

Até poderei acessar a Internet e o sistema de arquivos se eu executar neste estágio?

Eu sei que posso desativar o registro de energia, eliminando assim esse caso específico, mas quero algo mais à prova de erros.

Suponha que eu possa acessar I / O, como você faz isso?

Eu também tentei usar o agendador de tarefas, no entanto, quando faço isso, o programa nunca é carregado. Recebo uma mensagem "não foi possível iniciar".

Eu gostaria de poder assumir um estado em que o administrador está logado e tudo está funcionando, mas toda essa interface do usuário hoohah está interferindo.

Obrigado Dinamarquês

    
por Dane Jung 07.12.2012 / 01:30

2 respostas

0

Eu não entendo o propósito real. Eu não tentaria interferir no processo de inicialização.

Existem algumas coisas para testar em gpedit.msc. Meu Windows está em Português, então os trabalhos podem ser diferentes.

Um deles é "Sempre esperar pela rede na inicialização e no logon do computador". Está em "Configuração do Computador / Modelos Administrativos / Sistema / Logon" se não me engano.

Além disso, em "Configuração do Computador \ Modelos Administrativos \ Sistema \ Scripts" - fonte :

Run logon scripts synchronously
Enable this option to force the system to run the scripts synchronously, one after another.

Maximum wait time for Group Policy scripts
Use this option to set the script timeout interval. The default interval is 600 seconds (10 minutes), and valid intervals range from 0 to 32000 seconds. This affects both computer and user scripts that run synchronously.

Reforçando: eu não tentaria mexer com isso. Mas depende de você.

    
por 07.12.2012 / 01:50
0

Como Luiz menciona, é possível usar o editor de política de grupo do Windows para iniciar um script de início antes de efetuar login. Para esta técnica, aqui está um guia com instruções passo a passo sobre como configurar um script de inicialização básico.

A Microsoft tem um um KB discutindo como iniciar um programa antes do shell no logon - é necessária alguma edição do Registro para isso solução.

Também é possível executar um programa como um serviço, usando sc.exe . Aqui está um um post com um exemplo:

I recently came to problem, where I needed to run a program before I do login. One solution was setting up a startscript using gpedit.msc, but this needed me to disable an option which makes Windows login much faster. So I came to another solution: Run the program as service!

This is surprisingly easy: Microsoft has added a programm, called sc.exe which does this job for you. Here is an example:

sc.exe create "TrueCrypt Automount" start= "auto" binPath="C:\automount.bat" DisplayName= "TrueCrypt Automount"

Se você quiser iniciar um programa ainda mais cedo, dê uma olhada neste SU pergunta .

    
por 07.12.2012 / 02:42