AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / server / Perguntas / 869052
Accepted
Gregory MOUSSAT
Gregory MOUSSAT
Asked: 2017-08-17 17:14:03 +0800 CST2017-08-17 17:14:03 +0800 CST 2017-08-17 17:14:03 +0800 CST

Abra uma sessão sem console quando o Windows for inicializado

  • 772

Eu sei como abrir automaticamente uma sessão de console quando um host do Windows é inicializado (a maneira recomendada é usar uma senha criptografada: https://docs.microsoft.com/en-us/sysinternals/downloads/autologon ).
Isso é útil quando um servidor executa um programa mal escrito que precisa de uma GUI para ser executado, enquanto deve ser executado como serviços, ou pelo menos em segundo plano.

Uma vez que a sessão é aberta, a tela pode ser bloqueada e o programa continua a funcionar. Um administrador pode até mesmo RDP com outra sessão (isso também bloqueia a sessão do console). Até agora não vi nenhuma exceção a isso.

Este método leva a vários problemas. Alguns dos maiores:

  • uma sessão está aberta no console. Qualquer pessoa na frente do servidor tem acesso total a esta sessão, ou qualquer coisa que acerte o teclado/mouse não monitorado pode levar ao desastre. Podemos mitigar isso com um tempo limite de tela curto
  • apenas uma sessão pode ser aberta desta forma. Então, quando precisamos disso para 2 programas diferentes e não coabitantes, estamos ferrados

 

Eu gostaria de abrir várias sessões sem console automaticamente quando o servidor inicializar. Como se várias sessões de área de trabalho remota fossem abertas e desconectadas. Os programas incriminados podem ser executados com uma GUI em sessões separadas.
--> alguma idéia de como conseguir isso?

windows
  • 2 2 respostas
  • 243 Views

2 respostas

  • Voted
  1. Best Answer
    Bernad MAVISSU
    2017-08-23T16:46:38+08:002017-08-23T16:46:38+08:00

    mstsc.exepode ser executado sem GUI, o que geralmente é inútil, mas muito útil neste caso.
    Você pode criar uma tarefa agendada acionada quando o computador for iniciado.
    Essa tarefa iniciará quantas sessões de área de trabalho remota você desejar e, em seguida, as eliminará, deixando as sessões vivas e desconectadas.

    Eu pessoalmente uso um lote (.cmd) chamado pela tarefa agendada:

    start c:\windows\system32\mstsc.exe "c:\path\do_it.rdp"
    timeout /nobreak /t 60
    taskkill /f /im mstsc.exe
    

    Eu tenho uma maneira mais sofisticada de matar o mstsc.exe que é específico para minhas necessidades, então eu apenas coloquei um taskkill básico para o exemplo.

    • 2
  2. Marco
    2017-08-21T08:20:50+08:002017-08-21T08:20:50+08:00

    Para alcançar exatamente o que você pediu, você precisará de pelo menos um Linux com GUI ou Windows Server para colocar um script.

    No linux/bash, eu criaria um script de monitoramento de ping que executa um comando após o que provavelmente seria uma reinicialização do servidor (ping abaixo por um tempo). O comando seria um script executando duas vezes um cliente rdp em segundo plano com certificados pré-aceitos e credenciais armazenadas válidas (uma para cada conexão) para o objeto do servidor de sua pergunta. Eu então terminaria o script com um

    sleep 60 && killall -9 rdpclientname
    

    (como matar o cliente rdp não encerrará as sessões remotas, o que faz parte do que você deseja alcançar).

    Tenho certeza de que você pode fazer isso facilmente em um lote do Windows em vez de bash se quiser usar o Windows como cliente. Só não tenho certeza se você pode estabelecer várias conexões do mesmo cliente Windows para o mesmo servidor Windows. No mínimo, você terá que usar dois usuários diferentes executando o script duas vezes, eu acho. Se você não puder, terá que colocar esses scripts em duas máquinas clientes Windows diferentes.

    Se você optar por ir em um cliente Windows, o binário chamado pelo seu segundo script ativado pelo script de monitoramento de ping será mstsc.exe e terá o caminho completo para rdp-for-your-server-saved-session.rdp, contendo certificados pré-aceitos e credenciais válidas.

    No cliente Windows, você pode usar srv2any para executar o mstsc e os scripts apenas iniciariam e interromperiam os dois serviços. Na vitória, você usará o agendador de tarefas, no Linux, crontab.

    Para que isso funcione como você deseja, você terá que desabilitar o login automático no servidor Windows. Você pode então obter um login local atrasado após isso .

    Esta solução tem, obviamente, uma porcentagem de falhas em que o tempo de inatividade observado pelo script de monitoramento de ping não será devido a uma reinicialização do servidor. Mas os dois logins indesejados automatizados não prejudicarão muito neste caso.

    Você terá que trabalhar e testar muito para conseguir isso. É por isso que o seguinte... Eu tentaria qualquer outra coisa possível antes de construir tal arranjo!


    De qualquer forma, como sugeri no meu comentário à sua pergunta, tentaria apenas iniciar o programa mal codificado por meio de srv2any no servidor. Você não mencionou essa tentativa em sua pergunta. Tentaste?

    • 1

relate perguntas

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Você pode passar usuário/passar para autenticação básica HTTP em parâmetros de URL?

    • 5 respostas
  • Marko Smith

    Ping uma porta específica

    • 18 respostas
  • Marko Smith

    Verifique se a porta está aberta ou fechada em um servidor Linux?

    • 7 respostas
  • Marko Smith

    Como automatizar o login SSH com senha?

    • 10 respostas
  • Marko Smith

    Como posso dizer ao Git para Windows onde encontrar minha chave RSA privada?

    • 30 respostas
  • Marko Smith

    Qual é o nome de usuário/senha de superusuário padrão para postgres após uma nova instalação?

    • 5 respostas
  • Marko Smith

    Qual porta o SFTP usa?

    • 6 respostas
  • Marko Smith

    Linha de comando para listar usuários em um grupo do Windows Active Directory?

    • 9 respostas
  • Marko Smith

    O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL?

    • 3 respostas
  • Marko Smith

    Como determinar se uma variável bash está vazia?

    • 15 respostas
  • Martin Hope
    Davie Ping uma porta específica 2009-10-09 01:57:50 +0800 CST
  • Martin Hope
    kernel O scp pode copiar diretórios recursivamente? 2011-04-29 20:24:45 +0800 CST
  • Martin Hope
    Robert ssh retorna "Proprietário incorreto ou permissões em ~/.ssh/config" 2011-03-30 10:15:48 +0800 CST
  • Martin Hope
    Eonil Como automatizar o login SSH com senha? 2011-03-02 03:07:12 +0800 CST
  • Martin Hope
    gunwin Como lidar com um servidor comprometido? 2011-01-03 13:31:27 +0800 CST
  • Martin Hope
    Tom Feiner Como posso classificar a saída du -h por tamanho 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich O que é um arquivo Pem e como ele difere de outros formatos de arquivo de chave gerada pelo OpenSSL? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent Como determinar se uma variável bash está vazia? 2009-05-13 09:54:48 +0800 CST

Hot tag

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve