Usando o PsTools para Controlar Outros computadores a partir da Linha de Comando

Na lição de hoje em nossa Geek série Escola cobrindo SysInternals, nós vamos mostrar-lhe como usar o PsTools conjunto de utilitários para realizar todos os tipos de tarefas de administração de tanto localmente, e em computadores remotos bem.,

Se alguma vez você já quis ligar a outro computador e executar um comando, de forma rápida de obter informações sobre processos em execução e, opcionalmente, matá-los, ou até mesmo parar um serviço em outro PC, você pode usar os utilitários PsTools para fazer todas essas coisas e ainda mais.

obviamente você pode usar o Desktop remoto ou um serviço semelhante para se ligar a qualquer computador do Windows e realmente ver o desktop e fazer qualquer coisa que você faria localmente, mas os utilitários PsTools permitem — lhe fazer muitas tarefas a partir da linha de comandos-ou melhor ainda, a partir de um programa que você pode reutilizar mais tarde.,

estes são o tipo de utilitários que funcionam melhor em um ambiente corporativo, e dominar essas ferramentas definitivamente vai torná-lo muito melhor em seu trabalho de administração de Sistema, economizar tempo, e deixá-lo fazer as coisas de uma forma muito mais inteligente. Fazer as coisas mais inteligentes e mais rápidas é uma habilidade crítica para ser um grande sysadmin.

existem doze ferramentas no conjunto PsTools, e enquanto algumas delas são extremamente úteis, outras foram substituídas com ferramentas construídas em versões mais recentes do Windows, e há algumas outras que não são úteis para a maioria das pessoas., Vamos examiná-los todos para que percebas como funcionam e porque é que podes querer usar cada um deles.,ent log na linha de comando

  • PsPasswd – alterar a palavra-passe para os utilizadores
  • PsPing – uma forma bastante simples utilitário ping com alguns recursos adicionais
  • PsService – lista e fazer alterações para o Windows services
  • PsShutdown – desligar, fazer logoff ou suspender um computador
  • PsSuspend – suspender e retomar processos (em vez de matá-los)
  • vale a pena mencionar que você pode usar uma ferramenta como o PsExec para executar todos os tipos de utilitários de linha de comando em computadores remotos… inclusive realmente úteis, como o Autoruns ferramenta de linha de comando e muito mais., As possibilidades são infinitas depois de abraçares o poder dos PsTools.

    todas estas ferramentas podem ser usadas em computadores locais, mas são principalmente úteis para se conectar a computadores remotos e executar comandos sobre eles.

    conectando-se a computadores remotos ( sintaxe para todos os utilitários)

    Todas as utilidades podem ser executadas no computador local ou remoto, então todos eles têm o mesmo primeiro argumento para o nome do computador, se necessário. Note que você poderia usar o endereço IP se quisesse., Se omitir este argumento, o comando operará no seu computador local.

    psinfo \\computername

    Você também pode listar vários computadores como psinfo \\computer1, 2, botão computador3, ou você poderia colocar todos os nomes em um arquivo e referência do que 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ê vai 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 diferente do outro computador, você pode usar as opções-u E-p, embora notemos que você pode não querer usar-p na linha de comando com uma senha no comando por razões de segurança. Atualização: a partir da última versão do PsExec, nenhuma ferramenta passa senhas como texto claro, então a única preocupação é se alguém pode ler seus arquivos de script e ver a senha lá.,

    psinfo \\computername -u “usuário” -p “Senha”

    O “usuário” parte do comando muda para “DOMÍNIO\utilizador” se você estiver em um ambiente de domínio e precisa mudar de usuário em execução.

    Nota: você geralmente precisa se conectar aos computadores remotos com uma conta de administrador.

    configurar o acesso à Administração Remota

    Se estiver num ambiente de domínio, que será a maioria das pessoas que precisam de usar o PsTools, poderá ignorar esta secção por completo, dado que tudo deverá funcionar perfeitamente., Para qualquer um executando Windows 7, 8, ou Vista em um ambiente doméstico ou usando um par de computadores em um escritório sem um domínio, você vai precisar ajustar o Controle de Conta do usuário no computador remoto para permitir que PsTools para executar corretamente.

    O problema é descrito assim pelo Microsoft:

    Quando um usuário que é um membro do grupo administradores local no computador remoto de destino estabelece uma conexão remota administrativa usando o net use * \\remotecomputer\Share$ comando, por exemplo, eles não irão se conectar 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 executar algo que requer acesso de administrador, não há nenhuma maneira para acionar o prompt do UAC e aceitá-lo do seu computador, de modo que ele não se conectar como administrador.

    E isto não é uma coisa má., Você não deve alterar esta configuração sem entender completamente que você estará permitindo uma abertura para malware para se espalhar de um computador para outro — assumindo que malware tem o seu nome de usuário local e senha, e essa senha é a mesma que o outro computador, e o malware é esse complicado, o que a maioria não é. mas ainda não é algo a ser levado de ânimo leve.

    E novamente, se você está em um ambiente de domínio, este 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 tem muito com que se preocupar.,

    Para ajustar o UAC para habilitar o PsTools para executar o que você vai querer abrir o Editor do Registro e navegue até a seguinte chave:

    HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\
    Windows\CurrentVersion\Policies\System

    uma Vez que você está lá, crie uma nova DWORD de 32 bits no lado direito, dê a ele o nome LocalAccountTokenFilterPolicy e o valor de 1. Você não tem que reiniciar o computador para fazer a configuração fazer efeito.,

    Nota: Só para esclarecer, esta configuração tem de acontecer no computador remoto a que se está a ligar.

    PsExec

    PsExec é, provavelmente, a ferramenta mais poderosa no kit, como você pode executar qualquer comando no prompt de comando assim como executá-lo no computador remoto. Isso inclui tudo o que pode ser executado na linha de comando — você pode mudar os valores de registro, executar scripts e utilitários, ou conectar a partir desse PC para outro., O resultado dos comandos será mostrado no seu PC local, em vez do remoto.

    A sintaxe é simples:

    psexec \\computername <opções> apptorun.exe <argumentos>

    realisticamente, porém, você também gostaria de incluir o utilizador e a senha na linha de comandos., Por exemplo, para conectar-se a outro PC e verifique a lista de conexões de rede, você deve usar algo como:

    psexec \\computername -u User -p Senha ipconfig

    esse comando irá produzir uma saída semelhante à seguinte:

    Se você deseja passar a saída de um comando dentro de outro comando, ou você queria para redirecionar a saída para um arquivo, normalmente basta fazer algo como o comando.exe > saída.txt, e a mesma coisa acontece com PsExec., Então um comando como o seguinte irá salvar a saída do netstat-an em um arquivo no diretório raiz do seu computador Local.

    psexec \\computername netstat-an > C:\connections.txt

    Se quiser passar o > ou | carácter através da ligação PsExec ao computador remoto, terá de usar o carácter^, que é um pouco conhecido carácter de escape na linha de comandos do Windows., Isso, é claro, significa que nós realmente precisamos usar a shell de comando no computador remoto, e não apenas executar o processo, para que possamos fazer o redirecionamento ou pipe em primeiro lugar. Isso torna o nosso comando assim (mudando o caminho para o diretório de origem onde temos acesso de escrita).

    psexec \\computername cmd /c netstat-an ^> C:\users\geek\connections.,txt

    este exemplo colocaria a lista de conexões abertas geradas pelo netstat no diretório pessoal do usuário no computador remoto, em um arquivo chamado conexões.txt.

    copiando programas para o PC remoto

    Você não está limitado apenas às aplicações no PC remoto ao usar o PsExec, e na verdade, você pode executar qualquer coisa que você tenha localmente. Por exemplo, se você quisesse fazer um scan de linha de comando Autoruns do sistema remoto, mas você só tinha autorunsc.exe em seu computador local, você pode usar o interruptor-c para copiar a aplicação sobre., O PsExec irá remover a Ferramenta do sistema remoto assim que o comando estiver terminado.

    Este é um momento importante para mencionar a opção-accepteula da maioria das ferramentas SysInternals, que irá certificar-se de que o EULA foi aceito no computador onde o comando foi executado. Temos de adicionar isto à autorunsc.comando exe ou então ele vai falhar no computador remoto.

    psexec \\computername -c autorunsc.,exe-accepteula

    Existem algumas outras opções que especificam se a aplicação é sempre copiada, ou se deve ser copiada se a aplicação local é uma versão mais alta do que a remota. Você pode apenas executar psexec a partir da linha de comandos para ver essas opções.

    Nota: Se um comando só estiver disponível na linha de comandos, você precisa adicionar cmd /c antes dele. Isto inclui tubos e redirecionamentos como | e >.,

    interagindo com o utilizador ligado no PC remoto

    pode usar a opção-i para fazer o lançamento da aplicação e permitir que o utilizador remoto interaja com a aplicação. Você provavelmente gostaria de combinar isso com o botão-d, que não espera que o processo remoto termine antes que o PsExec retorne o controle para você., Por exemplo, este comando abriria uma janela de bloco de notas num computador remoto:

    psexec \\computername-d-i notepad

    Pode também optar por correr como utilizador do sistema com a opção-s, O que pode ser muito perigoso. Por exemplo, se você quisesse abrir o Editor de registro em seu próprio computador, mas com permissões de nível de usuário do sistema, você poderia executar este comando.

    psexec-i-d-s regedit.,exe

    No caso de estar a pensar, Sim, isto dar-lhe-á acesso a muitas coisas que normalmente não teria acesso a editar no registo. E sim, é uma péssima ideia.

    executando uma linha de comandos completa através do PsExec

    Sim, apenas lhe mostramos todos os exemplos de como executar um comando único através do PsExec… e acontece que você pode executar uma linha de comandos completa no seu computador local que está de facto a correr no computador remoto. É como se você estivesse no console daquele servidor (na maioria das vezes)., E felizmente, a sintaxe para este é realmente fácil (adicione o nome de usuário se você precisar).

    psexec \\computername cmd.exe

    Depois de ter feito isto, terá uma linha de comandos que está agora a correr no PC remoto.

    a linha de comandos irá funcionar quase como o normal, excepto que a completação de páginas não irá funcionar de todo, mas isso está bem para nós.,

    vale a pena notar que se você quiser executar comandos PowerShell remotamente em outro computador, você pode fazer isso nativamente com alguns ajustes para a configuração. Infelizmente PowerShell não funciona muito bem com PsExec a menos que você use um monte de workarounds estranhos que não valem a pena.

    Outras Opções

    O comando psexec tem uma tonelada de outras realmente útil opções que você pode usar cada uma dessas seria usado no espaço logo após \\computername e, antes de qualquer um dos outros comandos., So think psexec \\computername-option <comando remoto>.

    Se você apenas executar o comando psexec a partir da linha de comandos sem quaisquer interruptores extras, você verá todos eles.

    PsFile

    Este comando mostra os ficheiros que estão actualmente abertos sobre a rede num PC local ou num PC remoto, e funciona de forma semelhante ao comando “net file” do Windows. A sintaxe é como qualquer outro comando no kit.

    psfile \\computername

    Sim, esta não é tão divertido quanto o último.,

    Se quiser fechar um dos ficheiros e desligar a pessoa do recurso, poderá fechar a ligação usando a opção-c, embora isso possa resultar numa perda de dados, uma vez que o ficheiro não foi encerrado correctamente.

    psfile \\computername <caminho> -c

    PsGetSid

    Este exibe o identificador de segurança para um computador ou de usuário, e leva o padrão argumentos., Esta utilidade é provavelmente útil apenas em cenários muito particulares, dos quais não encontramos nenhum pessoalmente. Então tenta uma vez e esquece isso até que precises de usá-lo um dia.

    PsInfo

    Este comando Lista muitas informações úteis sobre um sistema, incluindo o tempo de funcionamento, que é muito divertido. Você pode executar este localmente para testá-lo simplesmente escrevendo psinfo na linha de comandos, assumindo que suas ferramentas SysInternals estão no caminho.,

    Se você quiser obter muito mais informações do PsInfo, e eu sei que você faz, então você pode usar os seguintes switches para adicionar informações de disco (-d) e hotfixes (-h) e uma lista de aplicações instaladas e suas versões (-s).,

    psinfo -d -h -s

    Isto resulta em muito mais informações, mesmo que em quase em branco máquina virtual:

    Você também pode executar PsInfo remotamente, adicionando o nome do computador e, possivelmente, o nome muda… mas há um grande problema: ele não funcionará a menos que o serviço Registro Remoto está ativado. Vá até o final do artigo onde falamos sobre como ativá-lo no computador remoto.,

    PsKill

    Este comando é realmente simples-ele mata processos, seja pelo nome ou pelo ID, e você pode usar a opção-t para matar opcionalmente toda a árvore de processo.

    pskill \\computername <PID ou Nome de>

    O problema com PsKill é que as versões mais recentes do Windows tem uma muito poderosa tarefa de matar utilitário integrado no chamado Taskkill que tem muito mais recursos.,

    PsList

    este utilitário é extremamente simples, mas bastante útil para olhar rapidamente para um computador e ver se algo está usando muito CPU ou memória. Você pode especificar o nome ou parte do nome na linha de comando para reduzir a lista para apenas uma aplicação problema, e você pode ver quase todas as informações, incluindo threads.

    Nota: para que este utilitário funcione num computador remoto, terá de ter o serviço de Registo Remoto activo. Certifique-se de ler até o final da lição, como explicamos como lidar com isso mais tarde.,

    PsLoggedOn

    Esta lista de utilitários contas que são registradas na máquina ou conectadas remotamente. É muito simples, e em grande parte útil em um tipo de ambiente de administrador de Sistema.

    PsLogList

    Este utilitário mostra um registo local ou remoto de eventos na linha de comandos, e existem várias opções que podem ser usadas para filtrar os dados.,

    psloglist \\Sistema de computador

    Há também o-h, -d e -m opções, que permitem restringir a lista de eventos para o último x horas, dias ou minutos. A opção-n exibe os registros da lista x, enquanto o switch-r inverte a ordem, de modo que os registros mais recentes estarão na parte inferior da saída. A última opção, que definimos como “sistema” neste exemplo, não é realmente necessária — se você omiti-lo, o log do sistema será sempre puxado, mas você pode alterá-lo para aplicação ou segurança para puxar esses logs em vez disso.,

    vale a pena notar que, se tiver acesso do administrador ao outro computador, pode simplesmente abrir o Visualizador de Eventos e escolher ligar-se no menu de Acção. Digite o nome do computador na lista, mude as credenciais se você precisar, e acesse os logs do evento dessa forma.

    o único cenário em que podemos realmente ver o PsLogList a ser realmente útil é se você quiser programar algo para executar uma acção no caso de certas mensagens no registo de eventos.,

    PsPasswd

    Este utilitário permite-lhe alterar as senhas para os utilizadores, tanto locais como remotos. A sintaxe é a mesma de tudo:

    pspasswd \\computador -u User -p Password <AccountToChange> <novapalavra-passe>

    A vantagem para este utilitário só usando o NET UTILIZADOR regular de prompt de comando é que você pode alterar as senhas para vários computadores ao mesmo tempo, e ele funciona em um ambiente de domínio do bem.,

    PsPing

    Este utilitário pings, verifica portas, e faz o teste de latência e largura de banda. Muito simples.,

    psping <servername>

    Ou você pode verificar a conectividade com uma porta adicionando o número da porta como esta:

    psping <servername>:80

    Há uma tonelada de opções avançadas para este comando que você provavelmente vai querer verificar para fora deve ned para fazer alguma solução de problemas de rede.,

    PsService

    este utilitário permite-lhe lidar com os Serviços do Windows a partir da linha de comandos. É realmente muito fácil de usar — a sintaxe funciona assim:

    psservice \\computername <comando> <argumentos>

    A lista de comandos que podem ser encontrados no help /? opções, mas há algumas opções que você vai se encontrar usando mais do que o resto.,s, a configuração

  • setconfig – Define a configuração
  • – Inicia um serviço
  • parar – Pára um serviço
  • reiniciar – Pára e reinicia em seguida, um serviço
  • pause – Pausa um serviço
  • cont – Continua uma pausa de serviço
  • depender – Enumera os serviços que dependem do especificado
  • find – Procura por uma instância de um serviço na rede
  • segurança – Relatórios as permissões de segurança atribuída a um serviço
  • Em particular, a iniciar | parar | pausar | reiniciar | cont opções são realmente simples e fácil de entender., Por exemplo, no seguinte comando você pode substituir “start” por qualquer um desses outros comandos.

    psservice \\computername início <servicename>

    outras opções podem ser usadas para consultar mais informações sobre um serviço, ou alterar a configuração.Nota: O sc incorporado.o utilitário exe tem uma tonelada de recursos úteis que se sobrepõem a este utilitário. A principal diferença é que o Pssservice é um pouco mais amigável.,

    PsShutdown

    Este utilitário permite-lhe desligar, desligar ou até colocar um computador em Modo de latência. O problema é que não é melhor do que o encerramento integrado.utilitário exe, e foi realmente projetado para Windows XP, então é recomendado usar o utilitário embutido em vez disso, na maioria dos casos.

    a única opção que o PsShutdown oferece que você não pode obter de outra forma é o interruptor (-d) para colocar o computador em Modo de latência, o que pode ser útil.,

    psshutdown \\computername -d

    Você também pode usar a opção-h para colocar o computador em modo de hibernação em vez disso.

    PsSuspend

    Este utilitário é muito semelhante ao PsKill, mas é algo que o built-in Taskkill utilitário só não pode — você pode suspender os processos em vez de matá-los, o que pode ser muito útil se você quiser interromper temporariamente a um processo intensivo de CPU de execução enquanto você completa um sysadmin tarefa.,

    a Suspensão de um processo é extremamente fácil:

    pssuspend \\computador <PID ou Nome de>

    E retomar o processo é tão fácil — tudo o que você tem a fazer é adicionar a opção-r.,

    pssuspend \\computador -r <PID ou Nome de>

    Quando os Utilitários não Ligar Devido Registro Remoto

    Alguns destes utilitários, incluindo PsInfo, PsList, PsLogList, e PsLoggedOn exigir o serviço registro remoto para ser activada no computador remoto, e ele não é habilitado por padrão em versões modernas do Windows.

    a boa notícia é que este problema é facilmente reparável, e você não precisa deixar o registro remoto ativado., Basta executar este comando utilizando PsService para iniciar o serviço:

    psservice \\computername iniciar RemoteRegistry

    E, em seguida, quando você é feito com o que você está fazendo com PsInfo ou PsList, você pode parar o serviço novamente usando este comando:

    psservice \\computername parar RemoteRegistry

    soluções Simples são as melhores, não são?

    próxima lição

    certifique-se de se juntar a nós amanhã, quando cobrimos utilitários de arquivos e discos, e algumas coisas mais interessantes.

    Deixe uma resposta

    O seu endereço de email não será publicado. Campos obrigatórios marcados com *