12 handige commando's voor de Opdrachtprompt

Door: Toon van Daele | 15 september 2020 12:37

How To

Waar we vroeger deOpdrachtprompt er nog regelmatig bij pakten, zullen veel gebruikers het in Windows 10 ook prima zonder af kunnen. Toch zijn er nog altijd zeer handigeOpdrachtprompt-commando's die je zeker een kans moet geven. Ze kunnen namelijk erg goed van pas komen.

Windows (en trouwens ook veel moderne Linux-distributies) heeft zijn succes vooral te danken aan de gebruiksvriendelijkheid van de grafische interface (gui). Toch heeft ook de zogenoemde cli (command line interface) zeker een bestaansrecht. Sommige functies zijn namelijk lastig of helemaal niet terug te vinden in de grafische interface. Opdrachtregelcommando’s kun je doorgaans ook nauwgezet aansturen met behulp van parameters. Bovendien laten zulke commando’s zich probleemloos opnemen in batchbestanden en kun je die automatisch laten uitvoeren vanuit het aanmeldingsscript van een gebruiker of via de taakplanner.

Er zijn meerdere manieren om in de opdrachtprompt te komen. Vanuit taakbeheer bijvoorbeeld, of via het contextmenu (rechtermuisknop op een bestand en Openen in opdrachtprompt) of door op Start / Uitvoeren te drukken (of toets Windows-toets+R) en in het venstertje dat verschijnt cmd in te voeren gevolgd door Enter.

Hier vind je een overzicht van de beschikbare cmd-commando’s in Windows (klik een commando aan voor bijhorende parameters en voorbeelden). In dit artikel geven we eerst enkele voorbeelden die duidelijk maken hoe krachtig (en nuttig) zulke commando’s kunnen zijn. Daarna tonen we je hoe je die kunt inzetten bij automatiseringsscenario’s.

Voer cmd uit via Start / Uitvoeren om de opdrachtprompt te starten.

Cmd-venster

Wanneer je via het cmd-commando naar de opdrachtprompt gaat, beland je standaard in je eigen profielmap (c:\Users\<gebruikersnaam>). Nu kun je via het cd-commando (change directory) wel naar een andere map navigeren, maar je kunt het ook anders aanpakken. Open de Verkenner en navigeer naar de gewenste map. Klik een lege plek in het rechterpaneel aan terwijl je de Shift-toets ingedrukt houdt en kies Opdrachtvenster hier openen: je belandt nu meteen in de juiste map.

In Windows 10 is het eindelijk ook mogelijk een stukje tekst vanuit de gui naar het klembord te kopiëren (met Ctrl+C) en dat in een opdrachtregelvenster te plakken (met Ctrl+V).

En wie graag het uiterlijk van dit venster aanpast: klik de titelbalk met de rechtermuisknop aan, kies Eigenschappen en stel alle opties naar wens in op de tabbladen Opties, Lettertype, Indeling en Kleuren. Het is trouwens geen slecht idee om het opdrachtvenster van de administrator er anders te laten uitzien dan dat van de andere gebruikers.

Je bepaalt zelf het uitzicht van het opdrachtregelvenster.

01 Mapinhoud

Om de inhoud van een map te kennen raadpleeg je de Verkenner. Logisch, maar vanuit de opdrachtregel kom je specifieke informatie vaak sneller te weten. Om een idee te krijgen van de mogelijkheden voer je het commando dir /? Uit. De parameter /? kun je trouwens bij nagenoeg alle commando’s gebruiken om meer uitleg te krijgen. Om een venster weer leeg te maken gebruik je het cls-commando (clear screen). Het komt er nu op aan de beschikbare parameters slim te combineren. Stel, je wilt een overzicht van alle bestanden, met de recentste bovenaan. Dan doe je dat met dir /O-D.

Merk ook bijvoorbeeld het verschil op tussen dir *, dir /A * en dir /B *. Dir /A toont je ook verborgen (systeem)bestanden en dir /B beperkt de uitvoer tot de bestandsnamen zonder verdere gegevens.

De mapinhoud afdrukken kan trouwens door achteraan je commando iets als >mapinhoud.txt toe te voegen, waarna je met Kladblok het txt-bestand kunt openen en afdrukken.

01 Zelfs een ‘simpels’ dir-commando kent heel wat parameters.

02 ADS

Een leuk experiment is het toevoegen van ADS-data (alternate data streams) aan bestanden, althans in een ntfs-omgeving. Creëer met Kladblok een tekstbestand dat je wilt verbergen (dat noemen we even geheim.txt). Vervolgens voer je het commando type geheim.txt > saai.txt:onzichtbaar.txt uit. Dit commando zorgt ervoor dat het bestand geheim.txt als ADS-data (met de naam onzichtbaar.txt) wordt opgenomen in het bestand saai.txt. Je mag geheim.txt nu verwijderen. Wanneer je dir saai.txt uitvoert, merk je dat dit bestand leeg is (0 bytes). Echter, voer je dir /R saai.txt uit, dan duiken alsnog de ADS-data van saai.txt op. Je krijgt de inhoud van die ADS te zien via het commando "c:\system\32\notepad.exe" saai.txt:onzichtbaar.txt. Op deze manier kun je dus bestanden verbergen in andere bestanden.

02 Met de juiste parameters breng je ook ADS-data aan de oppervlakte!

03 Machtigingenbeheer

Vanuit de gui kun je uiteraard ook machtigingen van gebruikers op mappen en bestanden regelen, maar dat kan sneller vanuit de cli. Bovendien heb je via de cli meer mogelijkheden in Windows 10 Home. Je regelt zowat alles via het icacls-commando: hierin lees je trouwens ‘acl’, wat staat voor ‘access control lists’ oftewel ntfs-machtigingen.

Om de huidige machtigingen op een map of bestand te weten te komen volstaat het commando icacls <naam_van_map_of_bestand>. Je kunt ook in één keer alle huidige machtigingen van alle bestanden in een bepaalde map en bijhorende submappen bewaren om die, na eventuele experimenten, snel weer terug te zetten. Machtigingen bewaren doe je als volgt icacls <pad_naar_map>\* /save aclbestand /T. Om de machtigingen die je in het bestand aclbestand hebt bewaard snel terug te zetten, voer je als administrator het commando icacls <pad_naar_map> /restore aclbestand uit. Om de machtigingen op een bestand door andere te vervangen, kun je een commando uitvoeren als icacls <bestandsnaam> /grant:r <gebruikersnaam>: F (F staat voor Full access). Let wel, als je de parameter :r (replace) weglaat, dan worden de nieuwe machtigingen aan de al bestaande toegevoegd in plaats van die te vervangen.

03 Snel alle huidige machtigingen bewaren én terugzetten.

04 Connectiviteit

Zelfs wanneer je nauwelijks met de opdrachtprompt bekend bent, heb je vast al eens het commando ipconfig of ipconfig /all uitgevoerd. En wellicht zal ook het ping-commando je niet onbekend zijn. Voer je bijvoorbeeld ping www.computertotaal.nl uit, dan hoor je van de webserver met het bijhorende ip-adres viermaal een antwoord te krijgen.

Veel minder bekend is het arp-commando (address resolution protocol). Dat laat je toe een verbinding te maken met een host zonder vooraf het mac-adres van dat apparaat te kennen. Zo’n arp-verzoek wordt namelijk gebroadcast, wat maakt dat elk apparaat in het lokale netwerk dit verzoek ontvangt. Als het goed is zal het apparaat met dat ip-adres reageren door een arp-reply naar de vragende partij te sturen. Een arp-commando kan dus nuttig zijn om op afstand het mac-adres te weten te komen maar ook om te weten of het apparaat actief is, zelfs als dit niet reageert op ping-verzoeken. Doe gerust zelf de test (we gaan ervan uit dat je de firewall van apparaat B zo hebt ingesteld dat echoaanvragen van ping worden geblokkeerd). Voer nu de volgende commando’s als administrator uit:

arp -d * (maak de huidige arp-tabel leeg)

arp -a (bewijs dat de arp-tabel geen ingang heeft voor apparaat B)

ping <ip-adres apparaat B> (geen response: 4x time-outs)

arp -a (bewijs dat apparaat B met mac-adres is toegevoegd en dus actief is).

04 Geen gehoor aan ping? Even aftasten met arp dan!

05 Symlinks

Veel gebruikers zijn niet bekend met zogenoemde symbolische links (kortweg symlinks). Dat zijn een soort geavanceerde snelkoppelingen naar bestanden of mappen, waarbij het erop lijkt dat het effectief om dat bestand of die map gaat in plaats van om een snelkoppeling. Het zou bijvoorbeeld kunnen dat een of ander programma vereist dat data in <map x> terechtkomen, maar dat jij dat liever in <map y> ziet gebeuren.

Dat regel je als volgt. Ga als administrator naar de opdrachtprompt en over het volgende commando uit: mklink /J <pad_naar_map_y> <pad_naar_map_x> (plaats de paden tussen dubbele, rechte aanhalingstekens als er spaties in voorkomen). Je zult merken: alle data die in <map y> belanden, komen automatisch (ook) in <map x> terecht.

Verwant hiermee is het commando mklink /D, waarmee je in een bepaalde map een of meer links creëert die telkens naar een andere map verwijzen. Alle data uit die mappen, zijn dan in één keer bereikbaar door naar de map met die link(s) te navigeren. Dat kan bijvoorbeeld handig zijn als je voor een project geregeld data moet benaderen die over diverse mappen verspreid zijn. Dat doe je als volgt vanuit een (lege) map: mklink /D financieel <pad_naar_eerste_map>, mklink /D logistiek <pad_naar_tweede_map> enzovoort.

05 Breng versnipperde data netjes samen in één virtuele map met softlinks.

Alternatieven

De standaardconsole voor de ingebouwde opdrachtprompt in Windows is behoorlijk Spartaans. Er zijn gratis alternatieven die meer opties en flexibiliteit bieden, zoals ColorConsole, dat ondersteuning biedt voor onder meer tabbladen, export naar html en rtf, snelle mapomschakelingen vanuit een taakbalk enzovoort.

Je kunt ook een compleet nieuwe opdrachtregel-omgeving inzetten. Zo zet Microsoft sinds Windows 7 steeds meer in op PowerShell. Deze heuse scripting-omgeving is weliswaar veel krachtiger dan de traditionele opdrachtprompt, maar tegelijk ook veel complexer. Je start deze omgeving op door het commando powershell uit te voeren in een opdrachtvenster of je voert het programma PowerShell ISE (Integrated Scripting Environment) uit als je behoefte hebt aan een grafische scriptomgeving.

PowerShell: qua mogelijkheden en complexiteit nauwelijks vergelijkbaar met cmd.

Handig hulpmiddeltje:Chocolatey

Je kunt ook het proces waarin je software op je computer binnenhaalt en installeert automatiseren. Door middel van het tooltjeChocolatey kun je metcommando’s in de opdrachtprompt software downloaden, installeren en updaten. Op het moment van schrijven zijn er meer dan 8.000 populaire pakketten beschikbaar voorChocolatey.

06 Shares

Wil je snel een overzicht van alle gedeelde mappen op je systeem, dan volstaat het commando net share. Om meer informatie over de respectieve shares op te vragen, voer je de opdracht net share <sharenaam> als administrator uit. Je verneemt dan onder meer het maximum aantal gebruikers dat deze share tegelijkertijd mag benaderen, evenals de machtigingen op deze share. Een nieuwe share creëren is uiteraard ook mogelijk. Dat doe je met een opdracht als net share fotos="c:\mediabestanden\mijn fotos". Wil je de share weer verwijderen dan zorgt net share fotos /delete daar wel voor. Een gedeelde netwerkschijf aan een vrije stationsletter koppelen kan ook, met net use x: \\<computernaam>\<sharenaam> <eventuele_wachtwoord> (de computernaam vind je bijvoorbeeld via Windows-toets+Pause). Wil je deze koppeling permanent maken zodat die ook bij een volgende Windows-sessie actief blijft, voeg dan /persistent:yes toe achteraan het commando.

06 Shares creëren en beheren vanaf de opdrachtprompt.

07 Back-ups & kopieën

Standaard-kopieeroperaties voer je wellicht via de Verkenner uit. Dat kan, maar je zoekt hier tevergeefs naar extra functies. Het opdrachtregelcommando robocopy biedt veel meer geavanceerde mogelijkheden, zoals het parameteroverzicht je meteen duidelijk maakt. We beperken ons hier tot een paar eenvoudige voorbeelden.

Met het commando robocopy "c:\mijn documenten" f:\ /MIR zorg je ervoor dat de bronmap (c:\mijn documenten) automatisch naar de doelmap wordt gespiegeld (MIRrored). Let wel, tenzij je het commando door de parameter /XX laat volgen, worden reeds bestaande data in de doelmap verwijderd tijdens deze back-upoperatie. Ook nuttig om weten: de parameter /SEC zorgt ervoor dat de originele machtigingen behouden worden in de doelmap. En met /LOG:<tekstbestand> houd je een logboek van de operatie bij.

Sommige robocopy-opdrachten kunnen door de talrijke parameters behoorlijk complex worden. Gelukkig is er een optie om die opdrachten te bewaren; het volstaat achteraan /SAVE:<jobnaam> toe te voegen. Om diezelfde opdracht naderhand weer uit te voeren tik je dan robocopy /JOB:<jobnaam> in. Handig!

07 Robocopy is een zeer flexibel commando voor back-ups en kopieeroperaties.

08 In batch

Een groot voordeel van opdrachtregelcommando’s is dat je die eenvoudig in een batchbestand kunt opnemen, zodat die commando’s in regel chronologisch na elkaar worden uitgevoerd zodra je het batchbestand aanroept (bijvoorbeeld vanuit de Windows taakplanner). Zo’n bestand maak je gewoon aan met Kladblok en geef je de extensie .cmd mee.

Je zou bijvoorbeeld een batchbestand op je bureaublad kunnen plaatsen dat de volgende opdrachtregel bevat: net use x: \\<computernaam>\<sharenaam> /persistent:no [/user:<inlognaam> <wachtwoord>]. Dat maakt dat de netwerkverbinding pas actief wordt zodra je dit batchbestand met een muisklik uitvoert, zodat Windows bij het opstarten geen tijd verliest door te zoeken naar bijvoorbeeld een verbinding met een niet langer aangekoppelde externe schijf.

08 Netwerkverbindingen: met een muisklik en alleen wanneer je ze nodig hebt.

09 Batch: voorbeelden

In zijn eenvoudigste vorm is een batchbestand dus niets anders dan een chronologische opeenvolging van individuele opdrachtregelcommando’s. Iets als volgt bijvoorbeeld, waarbij de bronmap na de kopieeroperatie wordt leeggemaakt:

cls

xcopy c:\mijndata d:\backups /M/E/H/R/I/Y

del c:\mijndata\*.* /Q

Maar er zijn ook wel complexere constructies mogelijk, zoals in het volgende voorbeeld, waarin je alle bestanden met specifieke extensies van je schijf verwijdert:

@echo off

rem Dit batchbestand wist specifieke bestanden

title Selectieve bestandsverwijdering

echo Bezig met wissen …

for %%t in (tmp bak log) do del c:\*.%%t /s

echo Bestanden gewist!

pause

We hebben hier niet de ruimte om hier grondiger op in te gaan. Wil je je echter verder verdiepen in de mogelijkheden en syntax van batchbestanden: deze tiendelige cursus is een mooi vertrekpunt.

09 Wil je aan de slag met batchbestanden, dan vind je veel informatie in een online cursus.

10 Aanmeldingsscript

Het is ook mogelijk een batchbestand (of een ander script) automatisch te laten uitvoeren zodra een specifieke gebruiker zich bij Windows aanmeldt. Dat kan in Windows Professional of hoger door Windows-toets+R in te drukken en vervolgens de opdracht lusrmgr.msc uit te voeren, waarna je de gewenste gebruiker aanklikt en het tabblad Profiel opent. Hier vul je dan de naam van het batchbestand in. Je kunt het echter ook regelen vanuit de opdrachtregel, zelfs in de Home-versies van Windows. Dat gaat via het commando net user <gebruikersnaam> /scriptpath:<naam_van_batchbestand>. Voorwaarde is wel dat je dit batchbestand plaatst in een gedeelde map met de sharenaam ‘netlogon’, waarbij je er ook voor zorgt dat die gebruiker minimaal leesrechten op die map krijgt toegekend.

10 Via een aanmeldingsscript laat je automatisch een bachbestand uitvoeren tijdens de login.

11 Taakplanner

Een batchbestand als aanmeldingsscript instellen is één manier om het automatisch te laten uitvoeren tijdens de login, maar het kan ook anders: met behulp van de ingebouwde Taakplanner. Die is trouwens veel flexibeler, want je kunt een batchbestand (of een ander script of programma) bijvoorbeeld ook laten uitvoeren tijdens het opstarten, op een specifiek tijdstip, bij het vergrendelen van het systeem enzovoort.

Wij willen bijvoorbeeld elke vrijdagnamiddag een batchbestand laten uitvoeren dat met specifieke opties een schijfopruiming start. In dit batchbestand nemen we dan (onder meer) het commando cleanmgr /sagerun:1 op (althans nadat we cleanmgr /sageset:1 vooraf één keer vanop de opdrachtregel hadden uitgevoerd en daar de gewenste opties hadden ingesteld).

11 De nodige voorbereidingen (en test) voor we het batchbestand inplannen.

12 Taakplanner: uitvoer

Klik het vergrootglaspictogram aan in de Windows taakbalk en zoek naar taak. Start Taakplanner op en klik in het rechterpaneel op Taak maken (Basistaak maken kan ook, maar geeft je minder opties). Geef je taak een geschikte naam mee en zet desgewenst een vinkje bij Uitvoeren ongeacht of gebruiker wel of niet is aangemeld. Open het tabblad Triggers, druk op de knop Nieuw en kies (bijvoorbeeld) Gepland bij Start deze taak, waarna je het gewenste tijdstip en frequentie instelt (bijvoorbeeld Elke 1 vrijdag, om 16:00). Bevestig met OK en open het tabblad Acties. Klik hier op Nieuw en verwijs via Bladeren naar je batchbestand. Bevestig met OK (2x) en vul desgevraagd je wachtwoord in. Als het goed is vind je nu de taak terug in het linkerpaneel, bij Task Scheduler-bibliotheek. Daar hoef je alvast niet meer aan te denken!

12 In de Taakplanner verwijzen we eenvoudigweg naar ons batchbestand.

0 Reactie(s) op: 12 handige commando's voor de Opdrachtprompt

  • Om te reageren moet je ingelogd zijn. Nog geen account? Registreer je dan en praat mee!
  • Er zijn nog geen reacties op dit artikel.

Wanneer je een reactie plaatst ga je akoord
met onze voorwaarden voor reacties.