12 handige commando's voor de Opdrachtprompt

Door: Toon van Daele | 19 februari 2018 15:19

How To

Inhoudsopgave

  1. Inleiding
  2. Pagina 2

Windows betekent letterlijk ‘vensters’ en het is niet moeilijk te bedenken waarom het besturingssysteem die naam gekregen heeft. Toch laat Windows zich ook nog altijd aansturen met vaak krachtige commando’s vanaf de naakte opdrachtregel. We bespreken een aantal van deze Opdrachtprompt-commando's en tonen je hoe je die, ook in batchopdrachten, aanroept vanuit de taakplanner.

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.

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.

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.