PsExec is een draagbare tool van Microsoft waarmee je processen op afstand kunt uitvoeren met de inloggegevens van een gebruiker. Het lijkt een beetje op een programma voor toegang op afstand, maar in plaats van de computer met een muis te besturen, worden opdrachten verzonden via de opdrachtprompt.
Je kunt PsExec gebruiken om niet alleen processen op de externe computer te beheren, maar ook om de console-uitvoer van een applicatie om te leiden naar je lokale computer, waardoor het lijkt alsof het proces lokaal wordt uitgevoerd.
Er is geen software nodig op de externe computer om PsExec te laten werken, maar er zijn een paar dingen waar u rekening mee moet houden als het hulpprogramma de eerste keer dat u het probeert niet correct werkt.
Hoe PsExec in te stellen
Als PsExec draagbaar is en niet naar de externe computer hoeft te worden gekopieerd, welk type installatie heeft het dan echt nodig?
De tool werkt alleen onder bepaalde voorwaarden. Namelijk, wanneer bestands- en printerdeling is ingeschakeld op zowel de lokale als de externe computer, en wanneer de externe machine de $admin-share correct heeft ingesteld om toegang te verlenen tot de \Windows\-map.
U kunt controleren of het delen van bestanden en afdrukken is ingeschakeld door in de Windows Firewall-instellingen te kijken:
- Voer firewall.cpl in het dialoogvenster Uitvoeren in. Een manier om Uitvoeren te openen is via de WIN+R sneltoets.
-
Selecteer Een app of functie toestaan via Windows Firewall aan de linkerkant van het venster.
Dit kan worden gelezen als Een app of functie toestaan via Windows Defender Firewall, afhankelijk van hoe uw computer is ingesteld, maar het is dezelfde optie.
-
Zorg ervoor dat Bestands- en printerdeling een vinkje heeft in het Private vak aan de rechterkant. Als dit niet het geval is, plaats dan een vinkje in dat vakje en selecteer OK.
Als je de firewall-instellingen niet kunt wijzigen omdat ze grijs zijn, selecteer je Instellingen wijzigen bovenaan het venster.
- U kunt nu alle geopende Windows Firewall-instellingen afsluiten.
Met de Windows Firewall nu correct ingesteld voor PsExec, zou u geen probleem moeten hebben om toegang te krijgen tot de $admin-share op de externe computer, zolang het volgende waar is:
- Beide computers behoren tot dezelfde werkgroep
- U kent het wachtwoord van een beheerdersaccount op de externe computer
Bekijk deze tutorial op Wintips.org als je hulp nodig hebt om die dingen te doen of als je ze correct hebt gedaan, maar later, nadat je PsExec hebt geprobeerd te gebruiken zoals hieronder beschreven, krijg je de foutmelding "toegang geweigerd".
Hoe PsExec te gebruiken
Voordat u PsExec gebruikt om opdrachten op afstand uit te voeren, moet u het programma downloaden en de opdrachtprompt zo plaatsen dat u de tool correct kunt gebruiken.
Download en open het
-
Download PsExec op de computer waarop de externe opdrachten worden uitgevoerd. Het is gratis verkrijgbaar bij Microsoft op Sysinternals als onderdeel van PsTools.
-
Extract de bestanden uit de PsTools.zip download. U kunt dat doen door met de rechtermuisknop op het ZIP-bestand te klikken en Alles uitpakken te selecteren. Elke bestandsextractor van derden werkt ook.
-
Open de map waarin de uitgepakte bestanden zich bevinden en wis in de navigatiebalk bovenaan de map wat er is en voer cmd. in
Een andere manier om dit te doen, althans in sommige versies van Windows, is door Shift+Right Click een lege ruimte in de PsTools-map te kiezen en Open te kiezen opdrachtvenster hier.
Hiermee wordt de opdrachtprompt in die map geopend, zodat u opdrachten kunt uitvoeren via PsExec.
-
Nu de opdrachtprompt is geopend in de map die PsExec.exe bevat, kunt u beginnen met het invoeren van opdrachten op de externe computer.
De syntaxis begrijpen
Net als elke andere opdrachtregeltool werkt PsExec alleen als de syntaxis exact wordt gevolgd. Als u eenmaal begrijpt hoe u opdrachten moet typen zoals de tool ze begrijpt, kunt u het programma besturen vanaf elke opdrachtprompt.
Dit is hoe PsExec-commando's moeten worden ingevoerd:
psexec [ computer [, computer2 [, …] | @file\][- u gebruikersnaam [- p wachtwoord][- n s][- r servicenaam][- h][- l][- s |- e][- x][- i[session][-c uitvoerbaar [-f |-v ][-w map][- d][- ][- a n, n
Dit ziet er misschien ingewikkeld en verwarrend uit, maar maak je geen zorgen! Er zijn enkele voorbeelden onderaan deze pagina die u kunt gebruiken om te oefenen.
De bovenstaande syntaxis wordt gebruikt om een van de volgende PsExec-opdrachtargumenten uit te voeren:
PsExec-opdrachtopties | |
---|---|
Parameter | Uitleg |
- a | Aparte processors waarop de applicatie kan draaien, met komma's, waarbij 1 de laagst genummerde CPU is. Als u de toepassing bijvoorbeeld op CPU 2 en CPU 4 wilt uitvoeren, voert u het volgende in: - a 2, 4 |
- c | Kopieer het opgegeven uitvoerbare bestand naar het externe systeem voor uitvoering. Indien weggelaten, moet de toepassing zich in het systeempad op het externe systeem bevinden. |
- d | Wacht niet tot het proces is beëindigd (niet-interactief). |
- e | Laadt het opgegeven accountprofiel niet. |
- f | Kopieer het opgegeven programma, zelfs als het bestand al op het externe systeem bestaat. |
- i | Voer het programma uit zodat het communiceert met het bureaublad van de opgegeven sessie op het externe systeem. Als er geen sessie is opgegeven, wordt het proces uitgevoerd in de consolesessie. |
- h | Als het doelsysteem Windows Vista of hoger is, voer het proces dan uit met de verhoogde token van het account, indien beschikbaar. |
- l | Voer het proces uit als een beperkte gebruiker (verwijdert de groep Administrators en staat alleen privileges toe die zijn toegewezen aan de groep Gebruikers). In Windows Vista wordt het proces uitgevoerd met een lage integriteit. |
- n | Specificeert de time-out (in seconden) bij het verbinden met externe computers. |
- p | Specificeert optioneel wachtwoord voor de gebruikersnaam. Als dit wordt weggelaten, wordt u gevraagd een verborgen wachtwoord in te voeren. |
- r | Specificeert de naam van de externe service die moet worden gemaakt of waarmee moet worden samengewerkt. |
- s | Voert het externe proces uit in de systeemaccount. |
- u | Specificeert optionele gebruikersnaam voor inloggen op externe computer. |
- v | Kopieert het opgegeven bestand alleen als het een hoger versienummer heeft of nieuwer is dan dat op het externe systeem. |
- w | Stelt de werkmap van het proces in (ten opzichte van de externe computer). |
- x | Geeft de gebruikersinterface weer op het beveiligde Winlogon-bureaublad (alleen lokaal systeem). |
- prioriteit | Specificeert -low, -benedennormaal, -bovennormaal, -hoog of -re altime om het proces met een andere prioriteit uit te voeren. Gebruik -background om met weinig geheugen en I/O-prioriteit te werken op Windows Vista. |
computer | Geef PsExec opdracht om de toepassing uit te voeren op de opgegeven externe computer(s). Indien weggelaten, voert PsExec de toepassing uit op het lokale systeem en als een jokerteken () is opgegeven, voert PsExec de opdracht uit op alle computers in het huidige domein. |
@bestand | PsExec voert de opdracht uit op elk van de computers die in het bestand worden vermeld. |
cmd | Naam van de uit te voeren applicatie. |
argumenten | Argumenten om door te geven (merk op dat bestandspaden absolute paden op het doelsysteem moeten zijn). |
PsExec-opdrachtvoorbeelden
Hier zijn een paar voorbeelden van hoe u PsExec kunt gebruiken om dingen te doen zoals het uitvoeren van externe opdrachtpromptopdrachten, het beheren van Windows-services en het starten of installeren van programma's.
Open CMD op afstand
psexec \\192.168.86.62 cmd
Een van de gemakkelijkste manieren om PsExec te gebruiken om opdrachtpromptopdrachten uit te voeren op een externe computer, is door cmd uit te voeren volgens het IP-adres van de machine, 192.168.86.62 in dit voorbeeld.
Als u dit doet, wordt een normaal opdrachtpromptvenster binnen het bestaande geopend en kunt u elke opdracht invoeren alsof u voor de externe computer zit. U kunt dan bijvoorbeeld ipconfig invoeren om die resultaten van de andere computer te krijgen, of mkdir om een nieuwe map te maken, dir om de inhoud van de map weer te geven, enz.
Voer een opdracht op afstand uit
psexec \\mediaserver01 tracert lifewire.com
Een andere manier om PsExec te gebruiken, is door afzonderlijke opdrachten in te voeren, maar zonder een volledige opdrachtprompt te starten. In dit voorbeeld voeren we de tracert-opdracht uit tegen lifewire.com, en omdat we de naam van de externe computer, mediaserver01, hebben opgegeven, zijn de opdrachtresultaten relevant voor die machine, niet voor de lokale (d.w.z. degene die u aan).
Start een service op afstand
psexec \\FRONTDESK_PC -u tomd -p 3(tom87 net start spooler
Het bovenstaande voorbeeld van de PsExec-opdracht start de Print Spooler-service, spooler, op afstand op de FRONTDESK_PC-computer met het tomd-gebruikerswachtwoord, 3(tom87.
Dezelfde opdracht kan worden gebruikt om een service op afstand te stoppen, maar dan typ je 'stop' in plaats van 'start'.
Open de Register-editor
psexec \\mikelaptopw10 -i -s C:\Windows\regedit.exe
Hier gebruiken we PsExec om de Register-editor te starten op de externe computer, mikelaptopw10, in het systeemaccount. Omdat -i wordt gebruikt, wordt het programma in interactieve modus geopend, wat betekent dat het daadwerkelijk wordt gestart op het scherm van de externe machine.
Als -i werd weggelaten uit het bovenstaande commando, zou het in verborgen modus worden uitgevoerd om te voorkomen dat er dialoogvensters of andere vensters worden weergegeven.
Installeer programma op externe computer
psexec \\J3BCD011 -c Z:\files\ccleaner.exe” cmd /S
In dit laatste voorbeeld van het gebruik van PsExec gebruiken we -c om het programma ccleaner.exe naar de externe computer J3BCD011 te kopiëren en het vervolgens uit te voeren met de /S parameter, want dat is wat CCleaner gebruikt om een stille installatie mogelijk te maken (geen gebruikersinvoer vereist). Om zo'n argument toe te voegen is cmd vereist.
PsExec kan gevaarlijk zijn
Het is erg belangrijk om te begrijpen hoe krachtig PsExec is en hoe het kan worden gebruikt om uw computer in gevaar te brengen wanneer het wordt gebruikt in een anderszins onveilige omgeving.
Het combineren van - c, - u en - p zal bijvoorbeeld specifiek laat iedereen met een netwerkverbinding met uw computer en kennis van de beheerdersreferenties geheime malware uitvoeren met ieders inloggegevens.
Zelfs dat laatste, perfect acceptabele voorbeeld in de vorige sectie krijgt een heel nieuw doel als je bedenkt dat in plaats van CCleaner, iemand op de achtergrond alles kan installeren wat hij of zij wenst, en er verschijnen geen vensters om dat te laten zien er gebeurt van alles.
Dat gezegd hebbende, gezien de vereiste firewallwijzigingen en kennis van beheerdersreferenties die iemand zou moeten hebben, is er weinig reden om je zorgen te maken zolang het beheerderswachtwoord op de externe computer complex is en er andere elementaire beveiligingsmaatregelen zijn genomen.
Sommige antivirusprogramma's identificeren PsExec ten onrechte als een gevaarlijk bestand, maar die waarschuwingen kunnen worden genegeerd als u zeker weet dat het programma dat u gebruikt afkomstig is van de Microsoft-bron hierboven. De reden dat dit gebeurt, is omdat bekend is dat malware PsExec gebruikt om virussen over te dragen.