PsExec er et bærbart værktøj fra Microsoft, der lader dig køre processer eksternt ved hjælp af enhver brugers legitimationsoplysninger. Det er lidt ligesom et fjernadgangsprogram, men i stedet for at styre computeren med en mus, sendes kommandoer via kommandoprompt.
Du kan bruge PsExec til ikke kun at administrere processer på fjerncomputeren, men også omdirigere en applikations konsoludgang til din lokale computer, så det ser ud som om processen kører lok alt.
Der kræves ingen software på fjerncomputeren for at få PsExec til at fungere, men der er et par ting, du skal huske på, hvis værktøjet ikke kører korrekt, første gang du prøver det.
Sådan konfigurerer du PsExec
Hvis PsExec er bærbar og ikke skal kopieres til fjerncomputeren, hvilken type opsætning har den så egentlig brug for?
Værktøjet virker kun under visse forhold. Nemlig når fil- og printerdeling er aktiveret på både den lokale og den eksterne computer, og når den eksterne maskine har $admin-share'en sat korrekt op for at give adgang til dens \Windows\-mappe.
Du kan dobbelttjekke, at fil- og udskriftsdeling er aktiveret ved at se i Windows Firewall-indstillingerne:
-
Indtast firewall.cpl i dialogboksen Kør. En måde at åbne Kør på er gennem WIN+R tastaturgenvejen.
-
Vælg Tillad en app eller funktion gennem Windows Firewall fra venstre side af vinduet.
Dette kan læses som Tillad en app eller funktion gennem Windows Defender Firewall afhængigt af, hvordan din computer er konfigureret, men det er den samme mulighed.
-
Sørg for, at Fil- og printerdeling har et flueben i feltet Privat til højre. Hvis det ikke gør det, skal du markere det felt og vælge OK.
Hvis du ikke kan ændre firewall-indstillingerne, fordi de er nedtonede, skal du vælge Change settings øverst i vinduet.
- Du kan nu afslutte alle åbne Windows Firewall-indstillinger.
Med Windows Firewall nu konfigureret korrekt til PsExec, skulle du ikke have noget problem med at få adgang til $admin-share'en på fjernmaskinen, så længe følgende er sandt:
- Begge computere tilhører den samme arbejdsgruppe
- Du kender adgangskoden til en administrators konto på fjerncomputeren
Se denne vejledning på Wintips.org, hvis du har brug for hjælp til at gøre disse ting, eller hvis du har gjort dem korrekt, men senere, efter at have forsøgt at bruge PsExec som beskrevet nedenfor, får du en "adgang nægtet"-fejl.
Sådan bruges PsExec
Før du bruger PsExec til at udføre fjernkommandoer, skal du downloade programmet og placere kommandoprompten på en måde, hvor du kan bruge værktøjet korrekt.
Download og åbn det
- Download PsExec på den computer, der skal køre fjernkommandoerne. Den er tilgængelig gratis fra Microsoft hos Sysinternals som en del af PsTools.
-
Udtræk filerne fra PsTools.zip-downloaden. Du kan gøre det ved at højreklikke på ZIP-filen og vælge Extract All. Enhver tredjeparts filudtrækker vil også fungere.
-
Åbn mappen, hvor de udpakkede filer er placeret, og fra navigationslinjen øverst i mappen, slet det, der er der, og indtast cmd.
En anden måde at gøre dette på, i det mindste i nogle versioner af Windows, er at Shift+Højreklik en tom plads i mappen PsTools og vælge Open kommandovindue her.
Dette åbner kommandoprompt i den mappe, så du kan køre kommandoer gennem PsExec.
- Med kommandoprompt nu åben til mappen, der indeholder PsExec.exe, kan du begynde at indtaste kommandoer på fjernmaskinen.
Forstå syntaksen
På samme måde som ethvert kommandolinjeværktøj fungerer PsExec kun, når dets syntaks følges nøjagtigt. Når du forstår, hvordan du skriver kommandoer på den måde, værktøjet forstår dem på, kan du styre programmet fra en hvilken som helst kommandoprompt.
Sådan skal PsExec-kommandoer indtastes:
psexec [ computer [, computer2 [, …] | @file\][- u brugernavn [- p adgangskode][- n s][- r servicenavn][- h][- l][- s |- e][- x][- i[session][-c eksekverbar [-f |-v ][-w bibliotek][- d][- ][- a n, n
Dette kan se komplekst og forvirrende ud, men bare rolig! Der er nogle eksempler nederst på denne side, som du kan bruge til at øve dig.
Ovenstående syntaks bruges til at udføre et af følgende PsExec-kommandoargumenter:
PsExec-kommandoindstillinger | |
---|---|
Parameter | Forklaring |
- a | Separate processorer, som programmet kan køre på, med kommaer, hvor 1 er den laveste nummererede CPU. For at køre programmet på CPU 2 og CPU 4, skal du f.eks. indtaste: - a 2, 4 |
- c | Kopiér den angivne eksekverbare til fjernsystemet for udførelse. Hvis den udelades, skal applikationen være i systemstien på fjernsystemet. |
- d | Vent ikke på, at processen afsluttes (ikke-interaktiv). |
- e | Indlæser ikke den angivne kontos profil. |
- f | Kopiér det angivne program, selvom filen allerede findes på fjernsystemet. |
- i | Kør programmet, så det interagerer med skrivebordet i den angivne session på fjernsystemet. Hvis der ikke er angivet nogen session, kører processen i konsolsessionen. |
- h | Hvis målsystemet er Windows Vista eller nyere, kør processen med kontoens forhøjede token, hvis det er tilgængeligt. |
- l | Kør processen som en begrænset bruger (fjerner administratorgruppen og tillader kun privilegier, der er tildelt brugergruppen). I Windows Vista kører processen med lav integritet. |
- n | Specificerer timeout (i sekunder) for forbindelse til fjerncomputere. |
- p | Specificerer valgfri adgangskode til brugernavnet. Hvis det udelades, bliver du bedt om at indtaste en skjult adgangskode. |
- r | Specificerer navnet på den fjerntjeneste, der skal oprettes eller interageres med. |
- s | Kører fjernprocessen i systemkontoen. |
- u | Specificerer valgfrit brugernavn til login på fjerncomputer. |
- v | Kopierer kun den angivne fil, hvis den har et højere versionsnummer eller er nyere end den på fjernsystemet. |
- w | Indstiller arbejdsbiblioteket for processen (i forhold til fjerncomputer). |
- x | Viser brugergrænsefladen på Winlogon's sikre skrivebord (kun lok alt system). |
- prioritet | Specificerer -lav, -undernormal, -overnormal, -høj eller -re altid for at køre processen med en anden prioritet. Brug -baggrund til at køre med lav hukommelse og I/O-prioritet på Windows Vista. |
computer | Instruerer PsExec til at køre programmet på de angivne fjerncomputere. Hvis den udelades, kører PsExec applikationen på det lokale system, og hvis et jokertegn () er angivet, kører PsExec kommandoen på alle computere i det aktuelle domæne. |
@file | PsExec vil udføre kommandoen på hver af de computere, der er angivet i filen. |
cmd | Navn på applikation, der skal udføres. |
argumenter | Argumenter, der skal sendes (bemærk, at filstier skal være absolutte stier på målsystemet). |
PsExec-kommandoeksempler
Her er et par eksempler på, hvordan man bruger PsExec til at gøre ting som at køre fjernkommandopromptkommandoer, administrere Windows-tjenester og starte eller installere programmer.
Åbn CMD Remotely
psexec \\192.168.86.62 cmd
En af de nemmeste måder at bruge PsExec til at køre kommandoprompt-kommandoer på en fjerncomputer er at udføre cmd efter maskinens IP-adresse, 192.168.86.62 i dette eksempel.
Hvis du gør dette, åbnes et almindeligt kommandopromptvindue i det eksisterende, og du kan indtaste hver kommando, som om du sad foran fjerncomputeren. For eksempel kan du så indtaste ipconfig for at få disse resultater fra den anden computer, eller mkdir for at oprette en ny mappe, dir for at vise mappens indhold osv.
Kør en fjernkommando
psexec \\mediaserver01 tracert lifewire.com
En anden måde at bruge PsExec på er at indtaste individuelle kommandoer, men uden at starte en fuld kommandoprompt. I dette eksempel udfører vi tracert-kommandoen mod lifewire.com, og fordi vi har angivet fjerncomputerens navn, mediaserver01, er kommandoresultaterne relevante for den maskine, ikke den lokale (dvs. den du er on).
Start en tjeneste eksternt
psexec \\FRONTDESK_PC -u tomd -p 3(tom87 net start spooler
PsExec-kommandoeksemplet vist ovenfor starter Print Spooler-tjenesten, spooler, eksternt på FRONTDESK_PC-computeren ved hjælp af tomd-brugerens adgangskode, 3(tom87.
Den samme kommando kan bruges til at stoppe en tjeneste eksternt, men du ville skrive "stop" i stedet for "start."
Åbn registreringseditoren
psexec \\mikelaptopw10 -i -s C:\Windows\regedit.exe
Her bruger vi PsExec til at starte Registry Editor på fjernmaskinen, mikelaptopw10, i systemkontoen. Fordi -i bruges, vil programmet åbne i interaktiv tilstand, hvilket betyder, at det faktisk starter på fjernmaskinens skærm.
Hvis -i blev udeladt fra ovenstående kommando, ville den køre i skjult tilstand for at undgå at vise nogen dialogbokse eller andre vinduer.
Installer program på fjerncomputer
psexec \\J3BCD011 -c "Z:\files\ccleaner.exe" cmd /S
I dette sidste eksempel på, hvordan man bruger PsExec, bruger vi -c til at kopiere programmet ccleaner.exe til fjerncomputeren J3BCD011 og derefter udføre det med /S parameter, da det er det, CCleaner bruger til at aktivere en stille installation (kræver ingen brugerinput). Tilføjelse af et argument som det kræver cmd.
PsExec Can Be Dangerous
Det er meget vigtigt at forstå, hvor kraftfuldt PsExec er, og hvordan det kan bruges til at kompromittere din computer, når det bruges i et ellers usikkert miljø.
Kombinering af f.eks. - c, - u og - p vil specifikt lad alle med en netværksforbindelse til din computer og kendskab til administratoroplysningerne udføre hemmelig malware med nogens legitimationsoplysninger.
Selv det sidste, helt acceptable eksempel i det foregående afsnit får et helt nyt formål, når du tænker på, at i stedet for CCleaner, kunne nogen installere alt andet, de ønskede, i baggrunden, og ingen vinduer dukker op for at vise, at der sker noget.
Alt sagt, i betragtning af de nødvendige firewallændringer og viden om administratoroplysninger, som nogen skal have, er der ingen grund til bekymring, så længe administratoradgangskoden på fjerncomputeren er kompleks, og andre grundlæggende sikkerhedsforanst altninger er blevet truffet.
Nogle antivirusprogrammer identificerer fejlagtigt PsExec som en farlig fil, men disse advarsler kan ignoreres, hvis du ved med sikkerhed, at det program, du bruger, er fra Microsoft-kilden ovenfor. Årsagen til dette sker, er fordi malware har været kendt for at bruge PsExec til at overføre vira.