No momento, estou executando o Vista e gostaria de concluir manualmente as mesmas operações do meu Serviço Windows. Como o Serviço Windows está sendo executado na Conta do Sistema Local, eu gostaria de imitar esse mesmo comportamento. Basicamente, eu gostaria de executar o CMD.EXE na conta do sistema local.
Encontrei informações on-line que sugerem o lançamento do CMD.exe usando o comando AT Task Scheduler do DOS, mas recebi um aviso do Vista de que "devido a aprimoramentos de segurança, essa tarefa será executada no momento, exceto por interatividade". Aqui está um exemplo de comando:
AT 12:00 /interactive cmd.exe
Outra solução sugeriu a criação de um serviço secundário do Windows por meio do Service Control (sc.exe), que simplesmente lança o CMD.exe.
C:\sc create RunCMDAsLSA binpath= "cmd" type=own type=interact
C:\sc start RunCMDAsLSA
Nesse caso, o serviço falha ao iniciar e resulta na seguinte mensagem de erro:
FAILED 1053: The service did not respond to the start or control request in a timely fashion.
A terceira sugestão foi iniciar o CMD.exe por meio de uma tarefa agendada. Embora você possa executar tarefas agendadas em várias contas, não acredito que a conta do sistema local seja uma delas.
Tentei usar o Runas também, mas acho que estou com a mesma restrição encontrada na execução de uma tarefa agendada.
Até agora, cada uma das minhas tentativas terminou em fracasso. Alguma sugestão?
fonte
-d
added, para que eu possa continuar usando o console do qual o iniciei.cd \
. Isso coloca você no diretório raiz da sua unidade, onde o psexec está localizado.psexec -i -s cmd.exe
onde -i é para interativo e -s é para conta do sistema.whoami
; vai dizer 'sistema "start explorer.exe
.Os usuários que tentam renomear ou excluir os arquivos do sistema em qualquer diretório protegido do Windows devem saber que todos os arquivos do Windows são protegidos pelo DACLS ao renomear um arquivo. É necessário alterar o proprietário e substituir o TrustedInstaller que possui o arquivo e tornar qualquer usuário como um usuário que pertence ao grupo de administradores como proprietário do arquivo e, em seguida, tente renomeá-lo após alterar a permissão, ele funcionará e enquanto você estiver executando o Windows Explorer com privilégios de kernel, você ficará um pouco limitado em termos de acesso à rede por razões de segurança e ainda é um tópico de pesquisa para eu ter acesso de volta
fonte
Encontrei uma resposta aqui que parece resolver o problema adicionando / k start ao parâmetro binPath. Então isso lhe daria:
sc create testsvc binpath= "cmd /K start" type= own type= interact
No entanto, Ben disse que isso não funcionou para ele e quando tentei no Windows Server 2008, ele criou o processo cmd.exe no sistema local, mas não foi interativo (não consegui ver a janela).
Eu não acho que exista uma maneira fácil de fazer o que você pede, mas estou me perguntando por que você está fazendo isso? Você está apenas tentando ver o que está acontecendo quando você executa seu serviço? Parece que você pode simplesmente usar o log para determinar o que está acontecendo, em vez de ter que executar o exe como sistema local ...
fonte
HKLM\SYSTEM\CurrentControlSet\Control\Windows\NoInteractiveServices
precisará definir como 0 (Padrão 1)Eu recomendo que você elabore o conjunto mínimo de permissões de que seu serviço realmente precisa e use-o, em vez do contexto do sistema local muito privilegiado. Por exemplo, serviço local .
Os serviços interativos não funcionam mais - ou pelo menos não mostram mais a interface do usuário - no Windows Vista e no Windows Server 2008 devido ao isolamento da sessão 0 .
fonte
Usando o Secure Desktop para executar
cmd.exe
comosystem
Podemos obter acesso ao kernel
CMD
no Windows XP / Vista / 7 / 8.1 facilmente anexando um depurador:Executar
CMD
como administradorEm seguida, use este comando em Elevado:
Em seguida, execute
osk
(na tela do teclado). Ele ainda não é executado com o nível de integridade do sistema se você verificar o Process Explorer, mas se você puder usar o OSK na sessão de serviço, ele será executado comoNT Authority\SYSTEM
então tive a ideia de que você deve executá-lo no Secure Desktop.
Inicie qualquer arquivo como administrador. Quando os avisos do UAC aparecerem, basta pressionar Win+ Ue iniciar,
OSK
e ele será iniciadoCMD
. Em seguida, no prompt elevado, digitewhoami
e você obteráNT Authority\System
. Depois disso, você pode iniciar o Explorer a partir do shell de comando do sistema e usar o perfil Sistema, mas você está um pouco limitado ao que pode fazer na rede através dos privilégios de SISTEMA por motivos de segurança. Acrescentarei mais explicações mais tarde, como a descobri há um ano.Uma breve explicação de como isso acontece
Em execução . Esse método executa a técnica de interceptação do depurador que foi descoberta anteriormente, bem, essa técnica tem seus próprios benefícios: pode ser usada para interceptar algum worm ou malware malicioso / astuto no depurador e executar outro exe para interromper a propagação ou danificar temporariamente. aqui, essa chave de registro intercepta o teclado na tela no depurador nativo do Windows e executa o cmd.exe, mas o cmd ainda será executado com os privilégios de usuários registrados, no entanto, se executarmos o cmd na sessão0, obteremos o shell do sistema. portanto, adicionamos aqui outra idéia: abrangem o cmd na área de trabalho segura. Lembre-se de que a área de trabalho segura é executada na sessão 0 na conta do sistema e obtemos o shell do sistema. Portanto, sempre que você executar algo tão elevado, terá que responder ao prompt do UAC e aos prompts do UAC na área de trabalho escura e não interativa. Depois de vê-lo, pressione +
Cmd.exe
conta do sistema local sem usarPsExec
WinU e selecioneOSK
você seráCMD.exe
executado sob privilégios do sistema local. Existem ainda mais maneiras de obter acesso ao sistema local comCMD
fonte
uma alternativa a isso é Process hacker, se você executar como ... (Interativo não funciona para pessoas com aprimoramentos de segurança, mas isso não importa) e, quando a caixa é aberta, coloque Service no tipo de caixa e coloque SYSTEM na caixa de usuário e coloque C : \ Users \ Windows \ system32 \ cmd.exe deixe o resto clique em ok e boch você tem uma janela com o cmd e é executado como o sistema agora execute as outras etapas por si mesmo, porque estou sugerindo que você os conheça
fonte
Existe outro caminho. Existe um programa chamado PowerRun que permite a execução de cmd elevado. Mesmo com direitos TrustedInstaller. Ele permite comandos de console e GUI.
fonte
se você puder gravar um arquivo em lotes que não precise ser interativo, tente executá-lo como um serviço, para fazer o que precisa ser feito.
fonte
Eu uso o utilitário RunAsTi para executar como TrustedInstaller (alto privilégio). O utilitário pode ser usado mesmo no modo de recuperação do Windows (o modo que você entra executando
Shift
+Restart
), o utilitário psexec não funciona lá. Mas você precisa adicionar seusC:\Windows
eC:\Windows\System32
(nãoX:\Windows
eX:\Windows\System32
) caminhos para aPATH
variável de ambiente, caso contrário RunAsTi não funcionará no modo de recuperação, ele só irá imprimir: AdjustTokenPrivileges para SeImpersonateName: Nem todos os privilégios ou grupos referenciados são atribuídos ao chamador .fonte
Usando o agendador de tarefas, agende uma execução do CMDKEY em SYSTEM com os argumentos apropriados de / add: / user: e / pass:
Não há necessidade de instalar nada.
fonte