Usando o PsTools para controlar outros PCs a partir da linha de comando
Na lição de hoje em nossa série Geek School sobre SysInternals, vamos mostrar como usar o conjunto de utilitários PsTools para executar todos os tipos de tarefas de administração tanto localmente quanto em computadores remotos..
NAVEGAÇÃO ESCOLAR- Quais são as ferramentas SysInternals e como você as usa?
- Entendendo o Process Explorer
- Usando o Process Explorer para solucionar problemas e diagnosticar
- Entendendo o Process Monitor
- Usando o Process Monitor para solucionar problemas e localizar os Hacks do Registro
- Usando o Autoruns para lidar com processos de inicialização e malware
- Usando o BgInfo para exibir informações do sistema na área de trabalho
- Usando o PsTools para controlar outros PCs a partir da linha de comando
- Analisando e gerenciando seus arquivos, pastas e unidades
- Encerrando e usando as ferramentas juntas
Se você já quis se conectar a outro computador e executar um comando, obter rapidamente informações sobre processos em execução e, opcionalmente, eliminá-los, ou até mesmo interromper um serviço em outro PC, use os utilitários do PsTools para fazer todas essas coisas e até Mais.
Obviamente, você pode usar a Área de Trabalho Remota ou um serviço semelhante para se conectar a qualquer computador Windows e realmente ver a área de trabalho e fazer qualquer coisa que faria localmente, mas os utilitários PsTools permitem executar várias tarefas a partir da linha de comando - ou melhor um script que você pode reutilizar mais tarde.
Esses são os tipos de utilitários que funcionam melhor em um ambiente corporativo, e o domínio dessas ferramentas definitivamente o tornará muito melhor em seu trabalho de administração do sistema, economizará seu tempo e permitirá que você faça as coisas de uma maneira muito mais inteligente. Fazer as coisas de maneira mais inteligente e rápida é uma habilidade crítica por ser um ótimo administrador de sistema..
Existem doze ferramentas no conjunto PsTools e, embora algumas delas sejam extremamente úteis, outras foram substituídas por ferramentas incorporadas em versões mais recentes do Windows, e há algumas outras que não são úteis para a maioria das pessoas. Nós vamos passar por todos eles para entender como eles funcionam e por que você pode querer usar cada um deles..
- PsExec - executa processos em um computador remoto
- PsFile - mostra arquivos que são abertos no computador remoto através da rede
- PsGetSid - exibe o identificador de segurança de um computador ou usuário
- PsInfo - lista informações sobre um sistema
- PsKill - mata processos por nome ou ID
- PsList - lista informações sobre processos na linha de comando
- PsLoggedOn - lista de contas que estão conectadas na máquina ou conectadas remotamente
- PsLogList - puxe o log de eventos na linha de comando
- PsPasswd - altera a senha para usuários
- PsPing - um utilitário de ping bastante simples com alguns recursos adicionais
- PsService - liste e faça alterações nos serviços do Windows
- PsShutdown - desligar, fazer logoff ou suspender um computador
- PsSuspend - suspender e retomar processos (em vez de eliminá-los)
Vale a pena notar que você pode usar uma ferramenta como o PsExec para executar todos os tipos de utilitários de linha de comando em computadores remotos… incluindo ferramentas realmente úteis como a ferramenta de linha de comando do Autoruns e muito mais. As possibilidades são infinitas uma vez que você tenha abraçado o poder do PsTools.
Todas essas ferramentas podem ser usadas em computadores locais, mas são mais úteis para conectar computadores remotos e executar comandos neles..
Conectando-se a computadores remotos (sintaxe para todos os utilitários)
Todos os utilitários podem ser executados no computador local ou remoto, para que todos tenham o mesmo primeiro argumento para o nome do computador, se necessário. Observe que você poderia usar o endereço IP se quisesse. Se você omitir esse argumento, o comando funcionará no seu computador local.
psinfo \\ nome_do_computador
Você também pode listar vários computadores, como psinfo \\ computer1, computer2, computer3, ou você pode colocar todos os nomes em um arquivo e referenciar como psinfo @ computerlist.txt. A sintaxe final é psinfo \\ *, que opera em todos os computadores do domínio, o que provavelmente não é algo que você usará todos os dias.
Se você precisar se conectar com credenciais alternativas, porque a conta do seu computador local tem um nome de usuário e senha diferentes do outro, você pode usar as opções -u e -p, embora tenhamos em mente que você pode não querer usar -p a linha de comando com uma senha no comando por motivos de segurança. Atualização: a partir da última versão do PsExec, nenhuma ferramenta passa senhas como texto puro, então a única preocupação é se alguém puder ler seus arquivos de script e ver a senha lá.
psinfo \\ nome_do_computador -u “usuário” -p “Senha”
A parte "usuário" do comando mudaria para "DOMÍNIO \ usuário" se você estivesse em um ambiente de domínio e precisasse mudar do usuário atualmente em execução.
Nota: você geralmente precisará se conectar aos computadores remotos com uma conta de administrador.
Configurando o acesso de administração remota
Se você estiver em um ambiente de domínio, o que a maioria das pessoas que precisam usar o PsTools será, você pode ignorar essa seção completamente, pois tudo deve funcionar bem. Para qualquer pessoa que esteja executando o Windows 7, 8 ou o Vista em um ambiente doméstico ou usando alguns computadores em um escritório sem um domínio, você precisará ajustar o Controle de Conta de Usuário no computador remoto para permitir que o PsTools seja executado corretamente..
O problema é bem descrito pela Microsoft:
Quando um usuário que é membro do grupo de administradores locais no computador remoto de destino estabelece uma conexão administrativa remota usando o comando net use * \\ remotecomputer \ Share $, por exemplo, eles não se conectam como um administrador completo. O usuário não tem potencial de elevação no computador remoto e o usuário não pode executar tarefas administrativas.
Para explicar de uma maneira diferente, quando você tenta se conectar a outro computador e executa algo que requer acesso de administrador, não há como acionar o prompt do UAC e aceitá-lo do seu computador, para que ele não se conecte como administrador.
E isso não é uma coisa ruim. Você não deve alterar essa configuração sem entender totalmente que estará permitindo uma abertura para o malware se espalhar de um computador para outro - supondo que o malware tenha seu nome de usuário e senha locais, e que a senha seja a mesma do outro computador, e malware é tão complicado, o que a maioria não é. Mas ainda não é algo para ser tomada de ânimo leve.
E, novamente, se você estiver em um ambiente de domínio, esse problema não existe e não precisa ser alterado. E se você está apenas testando com um monte de máquinas virtuais, você não precisa se preocupar.
Para ajustar o UAC para permitir que o PsTools seja executado, você desejará abrir o Editor do Registro e navegar até a seguinte chave:
HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \
Windows \ CurrentVersion \ Policies \ System
Quando estiver lá, crie um novo DWORD de 32 bits no lado direito, nomeie-o como LocalAccountTokenFilterPolicy e o valor de 1. Não é necessário reiniciar o computador para que a configuração entre em vigor..
Nota: só para esclarecer, essa configuração precisa acontecer no computador remoto ao qual você está se conectando.
PsExec
PsExec é provavelmente a ferramenta mais poderosa do kit, já que você pode executar qualquer comando em seu prompt de comando local, da mesma maneira que executá-lo no computador remoto. Isso inclui tudo o que pode ser executado na linha de comando - você pode alterar os valores do registro, executar scripts e utilitários ou conectar-se a partir desse PC a outro. A saída dos comandos será mostrada no seu PC local, e não no remoto.
A sintaxe é simples:
psexec \\ computername apptorun.exe
Realisticamente, no entanto, você também deve incluir o nome de usuário e a senha na linha de comando. Por exemplo, para se conectar a outro PC e verificar a lista de conexões de rede, você usaria algo assim:
psexec \\ nome_do_computador -u Usuário -p Senha ipconfig
Esse comando produziria uma saída semelhante à seguinte:
Próxima página: Usando o PsExec para executar comandos remotos