Utilizzo di PsTools per controllare altri PC dalla riga di comando

Nella lezione di oggi nella nostra serie Geek School che copre SysInternals, ti mostreremo come utilizzare il set di utilità PsTools per eseguire tutti i tipi di attività di amministrazione sia localmente che su computer remoti.,

Se hai mai desiderato di connettersi a un altro computer ed eseguire un comando, ottenere rapidamente informazioni sui processi in esecuzione e opzionalmente ucciderli, o anche interrompere un servizio su un altro PC, è possibile utilizzare le utility PsTools per fare tutte queste cose e anche di più.

Ovviamente è possibile utilizzare Desktop Remoto o un servizio simile per connettersi a qualsiasi computer Windows e effettivamente vedere il desktop e fare qualsiasi cosa che si dovrebbe fare a livello locale, ma PsTools utilità consentono di fare molte operazioni da riga di comando, o meglio ancora, da uno script che è possibile riutilizzare in seguito.,

Questi sono il tipo di utilità che funzionano meglio in un ambiente aziendale, e padroneggiare questi strumenti sarà sicuramente vi farà molto meglio al vostro lavoro di amministrazione del sistema, risparmiare tempo, e ti permettono di fare le cose in un modo molto più intelligente. Fare le cose in modo più intelligente e veloce è un’abilità fondamentale per essere un grande amministratore di sistema.

Ci sono dodici strumenti nel set PsTools, e mentre alcuni di essi sono estremamente utili, altri sono stati sostituiti con strumenti integrati nelle versioni più recenti di Windows, e ce ne sono alcuni altri che non sono utili per la maggior parte delle persone., Andremo attraverso tutti loro in modo da capire come funzionano e perché si potrebbe desiderare di utilizzare ciascuno di essi.,ent accedere alla riga di comando

  • PsPasswd – cambiare la password per gli utenti
  • PsPing – un abbastanza semplice utilità ping con alcune caratteristiche aggiuntive
  • PsService – elenco e apportare modifiche ai servizi di Windows
  • PsShutdown – spegnere, disconnettere o sospendere un computer
  • PsSuspend – sospensione e ripresa dei processi (piuttosto che ucciderli)
  • vale la pena notare che è possibile utilizzare uno strumento come PsExec per eseguire tutti i tipi di utilità della riga di comando sul computer remoto… compreso realmente utili, come il Autoruns strumento a riga di comando e molti altri., Le possibilità sono infinite una volta che hai abbracciato il potere di PsTools.

    Tutti questi strumenti possono essere utilizzati su computer locali, ma sono principalmente utili per connettersi a computer remoti ed eseguire comandi su di essi.

    Connessione a computer remoti ( Sintassi per tutte le utility)

    Tutti gli utilites possono essere eseguiti sul computer locale o remoto, quindi hanno tutti lo stesso primo argomento per il nome del computer, se necessario. Si noti che è possibile utilizzare l’indirizzo IP se si voleva invece., Se si omette questo argomento, il comando funzionerà sul computer locale.

    psinfo \\computername

    Puoi anche elencare più computer come psinfo \\computer1, computer2, computer3, oppure puoi mettere tutti i nomi in un file e fare riferimento a ciò come psinfo @computerlist.txt. La sintassi finale è psinfo \ \ * che opera su tutti i computer del dominio, che probabilmente non è qualcosa che userai ogni giorno.,

    Se hai bisogno di connetterti con credenziali alternative perché l’account del tuo computer locale ha un nome utente e una password diversi rispetto all’altro computer, puoi usare le opzioni-u e-p, anche se notiamo che potresti non voler usare-p sulla riga di comando con una password nel comando per motivi di sicurezza. Aggiornamento: a partire dall’ultima versione di PsExec, nessuno strumento passa più le password come testo in chiaro, quindi l’unica preoccupazione è se qualcuno può leggere i file di script e vedere la password lì.,

    psinfo \\computername-u “user” -p “Password”

    La parte “user” del comando cambierebbe in “DOMAIN\user” se ti trovi in un ambiente di dominio e devi cambiare dall’utente attualmente in esecuzione.

    Nota: in genere è necessario connettersi ai computer remoti con un account amministratore.

    Configurazione dell’accesso di amministrazione remota

    Se ci si trova in un ambiente di dominio, che la maggior parte delle persone che hanno bisogno di utilizzare PsTools sarà, è possibile ignorare questa sezione del tutto come tutto dovrebbe funzionare bene., Per chiunque esegua Windows 7, 8 o Vista in un ambiente domestico o utilizzi un paio di computer in un ufficio senza un dominio, sarà necessario modificare il controllo dell’account utente sul computer remoto per consentire a PsTools di funzionare correttamente.

    Il problema è descritto bene da Microsoft:

    Quando un utente membro del gruppo local administrators sul computer remoto di destinazione stabilisce una connessione amministrativa remota utilizzando il comando net use * \\remotecomputer\Share example, ad esempio, non si connetterà come amministratore completo., L’utente non ha alcun potenziale di elevazione sul computer remoto e non può eseguire attività amministrative.

    Per spiegarlo in un modo diverso, quando si tenta di connettersi a un altro computer ed eseguire qualcosa che richiede l’accesso da amministratore, non è possibile attivare il prompt UAC e accettarlo dal computer, quindi non si connetterà come amministratore.

    E questa non è una brutta cosa., Non si dovrebbe cambiare questa impostazione senza comprendere appieno che si permetterà un’apertura per il malware a diffondersi da un computer all’altro — supponendo che il malware ha il nome utente e la password locale, e che la password è la stessa come l’altro computer, e il malware è così difficile, che la maggior parte non è. Ma ancora non è qualcosa da prendere alla leggera.

    E ancora, se ci si trova in un ambiente di dominio, questo problema non esiste e non deve essere modificato. E se stai solo testando con un sacco di macchine virtuali, non hai molto di cui preoccuparti.,

    Per modificare l’UAC per abilitare PsTools per l’esecuzione si desidera aprire l’Editor del Registro di sistema e individuare la seguente chiave:

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

    una Volta che siete lì, creare una nuova DWORD 32-bit sul lato destro, dare il nome LocalAccountTokenFilterPolicy e il valore di 1. Non è necessario riavviare il computer per rendere effettiva l’impostazione.,

    Nota: solo per chiarire, questa impostazione deve avvenire sul computer remoto a cui ci si connette.

    PsExec

    PsExec è probabilmente lo strumento più potente del kit, in quanto è possibile eseguire qualsiasi comando nel prompt dei comandi locale proprio come eseguirlo sul computer remoto. Ciò include tutto ciò che può essere eseguito sulla riga di comando: è possibile modificare i valori del registro, eseguire script e utilità o connettersi da quel PC a un altro., L’output dei comandi verrà visualizzato sul PC locale, piuttosto che su quello remoto.

    La sintassi è semplice:

    psexec \\computername< options> apptorun.exe < argomenti >

    Realisticamente, però, si vorrebbe includere anche il nome utente e la password sulla riga di comando., Per esempio, per connettersi ad un altro PC e check elenco di connessioni di rete, si potrebbe usare qualcosa di simile a questo:

    psexec \\nomecomputer -u Utente -p Password ipconfig

    Che il comando di produrre un output simile al seguente:

    Se si desidera passare l’output di un comando in un altro comando, o si voleva reindirizzare l’output in un file, di solito basta fare qualcosa di simile a comando.exe > uscita.txt, e la stessa cosa accade con PsExec., Quindi un comando come il seguente salverà l’output di netstat-an in un file nella directory principale del tuo computer locale.

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

    Se si desidera passare il carattere > o / attraverso la connessione PsExec al computer remoto, sarà necessario utilizzare il carattere^, che è un carattere di escape poco conosciuto nella shell dei comandi di Windows., Ciò, ovviamente, significa che avremo effettivamente bisogno di utilizzare la shell dei comandi sul computer remoto, e non solo eseguire il processo, in modo da poter eseguire il reindirizzamento o la pipe in primo luogo. Quindi questo rende il nostro comando come questo (cambiando il percorso della directory home in cui abbiamo accesso in scrittura).

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

    Questo esempio inserirebbe l’elenco delle connessioni aperte generate da netstat nella directory home dell’utente sul computer remoto, in un file denominato connections.txt.

    Copiare i programmi sul PC remoto

    Quando si utilizza PsExec, non ci si limita solo alle applicazioni sul PC remoto e, in effetti, è possibile eseguire tutto ciò che si ha localmente. Per esempio, se si voleva fare una scansione da riga di comando Autoruns del sistema remoto, ma si aveva solo autorunsc.exe sul computer locale, è possibile utilizzare l’opzione-c per copiare l’applicazione., PsExec rimuoverà lo strumento dal sistema remoto una volta terminato il comando.

    Questo è un momento importante per menzionare l’opzione-accepteula della maggior parte degli strumenti SysInternals, che farà in modo che l’EULA sia stato accettato sul computer in cui è stato eseguito il comando. Avremo bisogno di aggiungere questo sul autorunsc.comando exe oppure fallirà sul computer remoto.

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

    Ci sono alcune altre opzioni che specificano se l’applicazione viene sempre copiata o se deve essere copiata se l’applicazione locale è una versione superiore a quella remota. Puoi semplicemente eseguire psexec dal prompt per vedere quelle opzioni.

    Nota: Se un comando è disponibile solo nel prompt dei comandi, è necessario aggiungere cmd /c prima di esso. Questo include pipe e reindirizzamenti come / e >.,

    Interagire con l’utente connesso sul PC remoto

    È possibile utilizzare l’interruttore-i per avviare l’applicazione e consentire all’utente remoto di interagire effettivamente con l’applicazione. Probabilmente vorrai combinare questo con lo switch – d, che non aspetta che il processo remoto finisca prima che PsExec ti restituisca il controllo., Ad esempio, questo comando aprirebbe una finestra del blocco note su un computer remoto:

    psexec \\computername-d-i notepad

    Puoi anche scegliere di eseguire come utente del SISTEMA con l’opzione-s, che può essere molto pericolosa. Ad esempio, se si desidera aprire l’editor del Registro di sistema sul proprio computer, ma con autorizzazioni a livello di utente del sistema, è possibile eseguire questo comando.

    psexec-i-d-s regedit.,exe

    Nel caso in cui ti stia chiedendo, sì, questo ti darà accesso a molte cose che normalmente non avresti accesso a modificare nel registro. E sì, è una pessima idea.

    Esecuzione di un prompt dei comandi completo tramite PsExec

    Sì, abbiamo appena mostrato tutti questi esempi di come eseguire un singolo comando tramite PsExec… e si scopre che è possibile eseguire una shell completa sul computer locale che è effettivamente in esecuzione sul computer remoto. È proprio come se fossi sulla console di quel server (per la maggior parte)., E fortunatamente, la sintassi per questo è davvero semplice (aggiungi il nome utente se necessario).

    psexec \\nome computer cmd.exe

    Una volta fatto questo, avrete un prompt dei comandi che è ora in esecuzione sul PC remoto.

    Il prompt dei comandi funzionerà quasi come normale, tranne che il completamento della scheda non funzionerà affatto, ma va bene per noi.,

    Vale la pena notare che se si desidera eseguire comandi PowerShell in remoto su un altro computer, è possibile farlo in modo nativo con alcune modifiche alla configurazione. Sfortunatamente PowerShell non funziona molto bene con PsExec a meno che tu non usi un sacco di strane soluzioni alternative che non valgono la pena.

    Altre opzioni

    Il comando psexec ha un sacco di altre opzioni davvero utili che puoi usare — ognuna di queste sarebbe usata nello spazio subito dopo \\computername e prima di qualsiasi altro comando., Quindi pensa a psexec \ \ computername-option < comando remoto>.

    Se esegui semplicemente il comando psexec dal prompt senza alcun switch aggiuntivo, li vedrai tutti.

    PsFile

    Questo comando mostra i file che sono attualmente aperti in rete su un PC locale o un PC remoto e funziona in modo simile al comando “net file” di Windows. La sintassi è proprio come qualsiasi altro comando nel kit.

    psfile \\computername

    Sì, questo non è divertente come l’ultimo.,

    Se si desidera chiudere uno dei file e disconnettere la persona dalla risorsa, è possibile chiudere la connessione utilizzando l’opzione-c, anche se ciò potrebbe comportare una perdita di dati poiché il file non è stato chiuso correttamente.

    filesetautorizzazioni \\nomecomputer <percorso> c

    PsGetSid

    in Questo modo si visualizza l’identificatore di protezione di un computer o di un utente, e prende gli argomenti standard., Questa utility è probabilmente utile solo in scenari molto particolari, di cui non abbiamo incontrato personalmente nessuno. Quindi provalo una volta e dimenticalo finché non devi usarlo un giorno.

    PsInfo

    Questo comando elenca molte informazioni utili su un sistema, incluso il tempo di attività, che è molto divertente. È possibile eseguire questo localmente per testarlo semplicemente digitando psinfo al prompt dei comandi, supponendo che gli strumenti SysInternals siano nel percorso.,

    Se vuoi ottenere molte più informazioni da PsInfo, e so che lo fai, puoi utilizzare le seguenti opzioni per aggiungere informazioni sul disco (-d) e hotfix (-h) e un elenco di applicazioni installate e le loro versioni (-s).,

    psinfo -d-h -s

    Questo si traduce in un sacco ulteriori informazioni, anche su un quasi vuoto della macchina virtuale:

    È anche possibile eseguire PsInfo in remoto aggiungendo il nome del computer e, eventualmente, il nome utente passa… ma c’è un grosso problema: non funziona a meno che il servizio Registro di sistema Remoto è abilitato. Vai alla fine dell’articolo in cui parliamo di come abilitarlo sul computer remoto.,

    PsKill

    Questo comando è molto semplice: uccide i processi, per nome o ID, e puoi usare l’opzione — t per uccidere opzionalmente l’intero albero dei processi.

    pskill \\nomecomputer <PID o il Nome>

    Il problema con PsKill è che le ultime versioni di Windows hanno una potente attività uccisione di utilità incorporato chiamato Taskkill che ha molte altre caratteristiche.,

    PsList

    Questa utility è estremamente semplice, ma abbastanza utile per guardare rapidamente un computer e vedere se qualcosa sta usando troppa CPU o memoria. È possibile specificare il nome o parte del nome sulla riga di comando per restringere l’elenco a solo un’applicazione problematica e visualizzare quasi tutte le informazioni, inclusi i thread.

    Nota: Per far funzionare questa utility su un computer remoto, è necessario abilitare il servizio di registro remoto. Assicurati di leggere fino alla fine della lezione, mentre spieghiamo come affrontarlo in seguito.,

    PsLoggedOn

    Questa utility elenca gli account che sono connessi sulla macchina o che si connettono in remoto. È piuttosto semplice e in gran parte utile in un tipo di ambiente amministratore di sistema.

    PsLogList

    Questa utility visualizza un registro eventi locale o remoto sulla riga di comando e ci sono una serie di opzioni che possono essere utilizzate per filtrare i dati.,

    psloglist \\computer System

    Esistono anche le opzioni-h, -d e-m, che consentono di restringere l’elenco degli eventi solo alle ultime x ore, giorni o minuti. L’opzione-n visualizza l’elenco x record, mentre l’opzione-r inverte l’ordine in modo che i record più recenti si trovino nella parte inferiore dell’output. L’ultima opzione, che abbiamo impostato su “Sistema” in questo esempio, non è effettivamente necessaria: se la si omette, il registro di sistema verrà sempre estratto, ma è possibile cambiarlo in Applicazione o Sicurezza per estrarre invece quei registri.,

    Vale la pena notare che se si dispone di accesso amministratore all’altro computer, è sufficiente aprire Visualizzatore eventi e scegliere Connetti dal menu Azione. Immettere il nome del computer nell’elenco, modificare le credenziali se necessario e accedere ai registri eventi in questo modo.

    L’unico scenario in cui possiamo davvero vedere che PsLogList è davvero utile è se si desidera scrivere qualcosa per eseguire un’azione in caso di determinati messaggi nel registro eventi.,

    PsPasswd

    Questa utility consente di modificare le password per gli utenti, sia locali che remoti. La sintassi è la stessa, come tutto il resto:

    pspasswd \\computer -u Utente -p Password <AccountToChange> <NewPassword>

    Il vantaggio di questo programma di utilità rispetto al solo uso NETTO UTENTE di regolare il prompt dei comandi che è possibile modificare le password per più computer in una sola volta, e funziona in un ambiente di dominio, come pure.,

    PsPing

    Questa utility esegue ping, controlla le porte e esegue test di latenza e larghezza di banda. Piuttosto semplice.,

    psping <servername>

    Oppure si può verificare la connettività a una porta, aggiungendo il numero di porta come questo:

    psping <servername>:80

    Ci sono un sacco di opzioni avanzate di questo comando che si desidera probabilmente il check-out deve ned fare qualche risoluzione dei problemi di rete.,

    PsService

    Questa utility consente di gestire i servizi di Windows dal prompt dei comandi. E ‘ davvero molto semplice da utilizzare — la sintassi funziona in questo modo:

    psservice \\nomecomputer <comando> <argomenti>

    L’elenco dei comandi può essere trovata guardando l’help /? opzioni, ma ci sono alcune opzioni che vi troverete utilizzando più rispetto al resto.,ies configurazione

  • setconfig – Imposta la configurazione
  • start – Avvia un servizio
  • stop – Arresta un servizio
  • riavvia – si Arresta e riavvia un servizio
  • pausa – Pausa un servizio
  • cont – Continua un servizio interrotto
  • dipende – Enumera i servizi che dipendono da quella specificata
  • trova – Cerca per un’istanza di un servizio in rete
  • sicurezza – Segnala le autorizzazioni di protezione assegnato a un servizio
  • In particolare, start | stop | pausa | riavvio | cont opzioni sono davvero semplice e facile da capire., Ad esempio nel seguente comando è possibile sostituire “start” con uno qualsiasi di questi altri comandi.

    psservice \\nomecomputer start <nome>

    altre opzioni può essere utilizzato per richiedere ulteriori informazioni su un servizio o modificare la configurazione.

    Nota: il built-in sc.exe utility ha un sacco di funzioni utili che si sovrappongono con questa utility. La differenza principale è che PsService è un po ‘ più user-friendly.,

    PsShutdown

    Questa utility consente di spegnere, disconnettersi o persino mettere un computer in modalità sleep. Il problema è che non è migliore dello spegnimento integrato.utility exe, ed è stato effettivamente progettato per Windows XP, quindi si consiglia di utilizzare l’utilità integrata invece nella maggior parte dei casi.

    L’unica opzione che PsShutdown fornisce che non è possibile ottenere altrimenti è l’interruttore (-d) per mettere il computer in modalità sleep, che può essere utile.,

    psshutdown \\computername-d

    Puoi anche usare l’opzione-h per mettere il computer in modalità ibernazione.

    PsSuspend

    Questa utility è molto simile a PsKill, ma fa qualcosa che l’utilità Taskkill integrata non può: puoi sospendere i processi piuttosto che ucciderli, il che può essere molto utile se vuoi interrompere temporaneamente l’esecuzione di un processo intensivo della CPU mentre completi un’attività di amministratore di sistema.,

    la Sospensione di un processo è estremamente semplice:

    pssuspend \\computer <PID o il Nome>

    E la ripresa che è facile tutto quello che dovete fare è aggiungere l’opzione-r.,

    pssuspend \\computer -r <PID o il Nome>

    Quando l’Utilità non si Connette a Causa del Registro di sistema Remoto

    Alcuni di questi programmi, tra cui PsInfo, PsList, PsLogList, e PsLoggedOn richiedono il servizio registro di sistema remoto per essere attivato sul computer remoto, e non è attivata per impostazione predefinita, le versioni moderne di Windows.

    La buona notizia è che questo problema è facilmente risolvibile e non è necessario lasciare il Registro remoto abilitato., Basta eseguire questo comando utilizza PsService per avviare il servizio:

    psservice \\nomecomputer inizio RemoteRegistry

    E poi, quando hai finito con quello che si sta facendo con PsInfo o PsList, è possibile interrompere il servizio di nuovo usando questo comando:

    psservice \\nomecomputer interrompere RemoteRegistry

    le soluzioni più Semplici sono le migliori, non è vero?

    Prossima lezione

    Assicurati di unirti a noi domani, quando copriremo le utilità di file e disco e alcune cose più interessanti.

    Lascia un commento

    Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *