Pagina Menu

Windows Opdrachtprompt

PowerShell begint met het openen van de console waar je commando's kunt invoeren die de computer uitvoert zodra je op Enter drukt. Windows heeft twee van dergelijke consoles, de Opdrachtprompt en de PowerShell, de laatste is verreweg de krachtigste. De opdrachtprompt lijkt een overblijfsel uit de lang vervlogen DOS-tijd. Toch zijn er commando's beschikbaar waarmee je taken sneller of nauwkeuriger kunt uitvoeren dan vanuit een of ander diep verborgen Windows-venster.

Naar de prompt

Om opdracht­regelcommando's uit te voeren, opent u eerst de opdrachtprompt. Druk daarvoor Windows-toets+X. In het menu kunt u een opdracht­prompt starten in de veilige modus (standaard) of als beheerder. U kunt dit onderdeel vervangen door PowerShell. Klik met de rechter muisknop op de taakbalk en vraag de eigenschappen op. Open het tabblad Navigatie en plaats een vinkje bij Opdrachtprompt vervangen door Windows PowerShell in het (...). Vanaf nu is PowerShell direct beschikbaar via Windows-toets+X.

Of u tikt cmd in het Windows startvenster. U komt dan in het opdrachtprompt­venster, maar je hebt geen administrator­rechten. Heeft u die extra bevoegdheden nodig, kies dan na het indrukken van de Windows-toets+X Opdrachtprompt (administrator). Om cmd (command prompt) te openen als Administrator kunt u ook zo te werk gaan.

Om de console te sluiten gebruikt u het commando exit, gevolgd door een druk op Enter.

Venster opdrachtprompt
doscommand.png

Je komt in een venster met witte letters op een zwarte achtergrond, maar dat kun je aanpassen. Je wijzigt de kleuren met het color-commando (dat je zoals alle commando's afsluit met Enter): color 1E bijvoorbeeld geeft blauwe letters op een lichtgele achtergrond. Het commando color /? geeft een overzicht van de beschikbare kleuren. Met het commando cls maak je het venster leeg. Met exit sluit je het venster weer. Wil je tekst uit Windows in een opdrachtprompt­venster plakken, kopieer die tekst dan eerst met Ctrl+C naar het klembord, klik dan de titelbalk van het opdrachtprompt­venster aan met de rechter muisknop en kies Bewerken > Plakken. Met de pijltjestoets omhoog en omlaag blader je door eerder gebruikte commando's.

Mapinhoud opvragen

De inhoud van bijvoorbeeld de map c:\infobank\­images opvragen kan met het dir-commando: dir c:\infobank\­images. Je kan ook naar de gewenste map gaan met cd infobank, gevolgd door cd images, daarna voer je dir uit. Of je bladert in Windows Verkenner naar de gewenste map, vervolgens klik je op een lege plaats in het Verkenner-venster met Shift+rechter muisknop. In het contextmenu kies je Opdrachtvenster hier openen. Het dir-commando heeft enkele parameters, zoals je met dir /? kunt zien. Wil je bijvoorbeeld de inhoud sorteren op datum (meest recente bestanden eerst), dan doe je dat met dir /O-D.

Verborgen datastromen

Windows koppelt verschillende 'datastromen' aan een bestand. Zo'n extra datastroom kun je gebruiken om gegevens in een bestand te verbergen. Een voorbeeld. Maak (met Kladblok) een document dat je wilt verbergen, bijvoorbeeld geheim.txt. Vervolgens voer je in die map het volgende commando uit: type geheim.txt > blabla.txt:verborgen.txt. Hiermee neem je geheim.txt op in het (ogenschijnlijke lege) bestand blabla.txt. Het bestand geheim.txt kun je nu verwijderen (bijvoorbeeld met del geheim.txt). Voer je een dir-commando uit, dan lijkt blabla.txt leeg. Maar met het commando dir /R krijg je die verborgen datastroom alsnog te zien. Om de inhoud ervan te zien voer je het volgende commando uit: "c:\system32\notepad.exe" blabla.txt:verborgen.txt.

Gelinkte mappen

Stel, je hebt (gedurende een bepaalde periode) frequent toegang tot een bepaalde submap nodig. Dat is lastig wanneer die map diep genest zit. Je lost dat op door een koppeling naar die map te maken, die sneller te bereiken is. Dat kan als volgt. Ga als administrator naar de opdrachtprompt en voer het volgende commando uit: mklink /J c:\snelmap “<pad-naar-diep-geneste-map>”. Wanneer je vervolgens data opslaat in de map c:\snelmap komen die automatisch (ook) terecht in de ‘originele’ map. Je kan naderhand de mapsplitsing – in ons voorbeeld is dat de "linkmap" (c:\snelmap) – verwijderen, bijvoorbeeld met rd c:\snelmap. De bestanden in de gekoppelde map blijven dan behouden. Maar wanneer je de inhoud van de linkmap (c:\snelmap) verwijdert – bijvoorbeeld door met het del-commando alle bestanden te wissen – dan verdwijnen ook de data uit de diep geneste originele map.

Verwant met dergelijke mapsplitsingen zijn de zogenoemde symbolische links. Dat zijn links die naar andere mappen verwijzen. Dat kan handig zijn als je bij elkaar horende bestanden in verschillende mappen hebt ondergebracht. Door nu symbolische links in eenzelfde map te verzamelen, kan je die verschillende mappen vanuit een en dezelfde locatie bereiken. Dat gaat als volgt. Eerst maak je de map waarin je die symbolische bestandskoppelingen wilt opnemen. Vervolgens voer je vanuit die map de opdracht mklink /D financieledata <pad_naar_eerste_map> uit. Het resultaat is een SYMLINKD-ingang met de naam financieledata die dus verwijst naar <pad_naar_eerste_map>. Je herhaalt deze opdracht nu voor andere mappen, zoals mklink /D klantenbestand <pad_naar_tweede_map>, enz.

Services

In Windows zijn heel wat services op de achtergrond actief. Het commando net start vertelt je welke services. Het is mogelijk services vanuit de opdrachtprompt te stoppen en weer te starten.

Via de opdrachtregel

  1. Open een opdrachtprompt.
  2. Typ een van de volgende opdrachten:
    • Als u een service wilt starten, typt u:
      net start naam van de service
    • Als u een service wilt stoppen, typt u:
      net stop naam van de service
    • Als u een service wilt onderbreken, typt u:
      net pause naam van de service
    • Als u een service wilt hervatten, typt u:
      net continue naam van de service
letop.png

Als je niet wilt, dat Windows zomaar je pc herstart omdat er updates klaar staan, dan schakel je die service uit met net stop "windows update". Je activeert een service met net start, gevolgd door de naam van de service. De aanhalingstekens staan hier om duidelijk te maken dat het om een begrip (of pad) gaat, niet om afzonderlijke woorden. De service is nu gestopt. Na de volgende herstart van de PC is de service automatisch weer ingeschakeld.

Gedeelde bronnen

In Windows kun je printers en mappen delen. Wil je snel een overzicht krijgen van deze gedeelde bronnen, voer dan het commando net view \\ in, bijvoorbeeld view \\programmapc. Die computernaam vind je in het venster dat je te zien krijgt wanneer je Windows-toets+Pause indrukt. Een nieuwe gedeelde netwerkmap maak je met een commando als net share videos="c:\media\persoonlijk\video filmpjes". De gedeelde netwerkmap verwijder je weer met net share videos / delete. Het is ook mogelijk een gedeelde netwerkschijf permanent aan een vrije stationsletter te koppelen: net use x: \\""\ / persistent:yes (waarbij je x: vervangt door de gewenste stationsletter).

Accounts met beperkte toegangstijd

Via Windows Gebruikers accountsbeheer voer je allerlei beheertaken voor Windows-accounts uit. Maar sommige taken kun je alleen (of sneller) vanuit de opdrachtprompt uitvoeren. Wil je een bepaald account tijdelijk uitschakelen, dan volstaat een opdracht als net user /active:no (vervang no door yes om het weer te activeren). Je kan er ook voor zorgen dat een account zich alleen op bepaalde tijdstippen bij Windows kan aanmelden: net user / times:ma-vr, 5pm-7pm; za-zo, 10am-8pm. Met net user controleer je of de opdracht geslaagd is. Let op: vergeet bij deze commando's niet de slash (voor active en times), anders denkt Windows dat je het wachtwoord van het account wilt aanpassen.

Connectiviteit

Het gebeurt wel eens in een netwerk dat een apparaat plots niet meer reageert. Om snel te achterhalen of er nog wel een netwerk­verbinding bestaat tussen je pc en dat apparaat gebruik je het ping-commando, gevolgd door de computernaam of het IP-adres van dat apparaat (bijvoorbeeld ping programmapc of ping 192.1.83). Als het goed is, krijg je vier antwoorden. Is dat niet zo, controleer dan de fysieke aansluiting of de netwerkconfiguratie. In veel gevallen kun je ook externe servers testen (zoals ping www.google.nl). Kun je wel een extern IP-adres pingen (zoals ping 8.8.8.8), maar niet de URL, dan is er mogelijk een probleem met de DNS-service.

Verwant met ping is het commando pathping. Eigenlijk is dat een combinatie van ping en tracert. Met dit laatste commando, dat overigens ook icmp-pakketjes uitstuurt naar een host, krijg je de gehele route uitgetekend, over de diverse ‘hops’ oftewel routers heen, van je eigen pc tot de doelhost. Pathping berekent bij elke hop ook het eventuele pakketverlies. Houd er rekening mee dat het hele proces minstens 5 minuten duurt.

Internetconnectie

Er is een commando waarmee je kunt nagaan hoever de verbinding tussen je eigen pc en de beoogde server op het internet reikt. Want tussen je pc en zo'n server liggen vaak heel wat 'knooppunten' (zoals routers) en het valt niet uit te sluiten dat je connectie hapert bij een van die knooppunten. Probeer het eens met het volgende commando: tracert www.infovve.esy.es. Dat commando laat zien langs welke route(rs) je verzoek zoal loopt. In feite verschilt het commando niet zo veel van het commando ping. Met behulp van een traceroute kan je te weten komen welke weg een pakket aflegt voordat het aankomt. Bij een traceroute wordt elke zogenaamde hop geregistreerd en die krijg je dan te zien samen met de tijd die nodig was om deze hop te bereiken.

Het programma PortScan & Stuff snuffelt op het netwerk naar apparaten en doet dat op een slimme manier. Steeds meer apparaten zijn zo ingesteld dat ze op een ping-verzoek al niet meer antwoorden, bijvoorbeeld computers met een standaard Windows-firewall doen dat al niet meer. Die apparaten moeten op een andere manier opgespoord worden. Bijvoorbeeld door te kijken of er services actief zijn op een IP-adres, of er gedeelde mappen zijn of dat UPnP actief is. PortScan & Stuff bekijkt dit allemaal. Ga naar deze website en download het bestand portscan.zip en pak het uit. Sommige antivirus­programma's protesteren aan bij deze site: ze vertrouwen hem niet. Dit komt niet door malware, maar doordat sommige functies van het programma ook door bijvoorbeeld hackers gebruikt worden. PortScan & Stuff heeft geen verdere installatie nodig. Je kunt het dus ook op een usb-stick plaatsen om een ander netwerk onder de loep te nemen.

Start het programma via een dubbelklik op PortScan.exe. Het programma kent meerdere tabbladen. Het eerste is Scan Ports waar je een Start IP Address en een End IP Address kunt opgeven. Daarnaast kun je de scanmethode kiezen, alleen op IP-adres via Scan only IP Addresses of uitgebreider via Scan only common ports en Scan all ports.

Voer als beginadres het eerste adres van de IP-reeks van je thuisnetwerk in en als eindadres het laatste. Bijvoorbeeld 192.168.0.1 tot en met 192.168.0.255. Laat het vinkje bij Check SMB Shares staan om ook op gedeelde mappen te controleren. Klik dan Scan om de scan uit te voeren. De lijst met apparaten zal zich langzaam vullen. Je ziet de hosts en van sommige apparaten krijg je ook aanvullende gegevens zoals een naam, het MAC-adres en het type apparaat. Via het tabblad Search Devices kun je van elk apparaat nog meer gegevens opvragen zoals ook de versies van software en het model. Hier zie je ook of er mappen worden gedeeld en of een apparaat via de browser benaderd kan worden.

DNS

Websites hebben zowel een beschrijvend adres, een zogenaamde URL als een IP-adres. Aan de hand van URL's kunnen mensen websites zoeken, maar computers gebruiken IP-adressen om websites te zoeken. DNS zorgt voor de omzetting van URL's in IP-adressen (en andersom). Als u bijvoorbeeld http://www.infocomputer.webege.com typt op de adresbalk van de webbrowser, verzendt uw computer een verzoek naar een DNS-server. De DNS-server zet de URL om in een IP-adres aan de hand waarvan de computer de webserver van infocomputer.webege kan vinden. Een ander geavanceerd commando is nslookup waarmee je kunt opvragen welk IP-adres bij de naam van een website hoort. Bijvoorbeeld nslookup www.google.com. Krijg je nu netjes een IP-adres terug, dan weet je dat de DNS-service op je netwerk, die alle computers bij het surfen gebruiken, werkt. Kun je wel IP-adressen, maar geen URL's meer bereiken, dan helpt het nslookup-commando om de werking van de DNS-server te controleren. Voer nslookup uit en tik vervolgens server in, gevolgd door de naam of het IP-adres van de DNS-server die je wilt testen. Druk nu op de Enter-toets en vul een willekeurig webadres in, zoals infovve.esy.es. Krijg je nu time-outs te zien, dan is er een probleem met de ingestelde dns-server. Het IP-adres dat je terug krijgt kun je weer pingen om de verbinding met het internet te controleren. Met het commando tracert gevolgd door het IP-adres van een site op internet, kun je de route naar die site controleren. Je ziet dan alle tussenliggende stations in de weg tussen je computer en die site, met je eigen standaardgateway als eerste.

Meer informatie krijg je met het programma DNSDataView. Ga naar deze webpagina. Download DNSDataView en open het zip-bestand. Klik op Alles uitpakken en start dan DNSDataView.exe. Typ nu in het venster bij Domain List de namen van de sites die je wilt onderzoeken. Klik op OK. Je ziet dan van de gevraagde domeinnamen alle relevante informatie. Vergelijk die met die van de nslookup. Soms zijn er verschillen die vooral bij ftp tot fouten kunnen leiden. Vaak is het dan de schuld van de provider, die je vraag via nslookup (de manier van de computer) niet correct afhandelt. Reageert helemaal niets, zet dan de router uit en aan. De router is namelijk veelal de DNS-forwarder in het thuisnetwerk die alle DNS-vragen doorstuurt.

Netwerkshell

Netsh is een hulpprogramma dat je kunt starten binnen de opdrachtprompt. Je kunt het gebruiken om heel specifieke informatie over de netwerkconfiguratie te krijgen. Het is vooral handig bij het zoeken van fouten in een draadloos netwerk. Daarvoor heeft het namelijk een paarcommando's in huis die veel meer informatie geven dan Windows standaard laat zien.

Open eerst de Opdrachtprompt. Met het commando netsh en dan een druk op Enter schakel je nu over naar de 'netwerkshell', de prompt in het venster verandert nu ook van de standaard C:\-prompt in een netsh>-prompt. Met het commando wlan show interfaces plus Enter krijg je een overzicht van de beschikbare draadloze netwerkadapters en met wlan show all plus Enter krijg je een overzicht van alle beschikbare draadloze netwerken. Dit laatste commando toont direct bij elk draadloos netwerk heel nauwkeurig de signaalsterkte plus het ondersteunde netwerkprotocol, de beveiliging en het gebruikte kanaal.

Door een vraagteken (?) toe te voegen gevolgd door een druk op Enter, krijg je een overzicht van alle andere opties. Om de netwerkshell te verlaten typ je het commando bye gevolgd door Enter.

Netwerkconfiguratie

Met het commando ipconfig kun je snel allerlei informatie over je thuisnetwerk opvragen. Je ziet bijvoorbeeld welke (al dan niet draadloze) LAN-adapters actief zijn, welk IP-adres die adapters hebben en wat het adres van je standaardgateway (oftewel router) is. Je kan dan dat adres in je browser intikken om naar de webinterface van dat apparaat te gaan. Wil je ook de DNS-server(s) en de MAC-adressen van de netwerkadapters weten en of DHCP actief is, gebruik dan ipconfig /all. Een oplossing bij connectieproblemen kan zijn om even alle adressen vrij te geven met ipconfig /release en die opnieuw in te stellen met ipconfig /renew.

Zoals u waarschijnlijk al weet, is men overgeschakeld van IPv4 naar IPv6 omdat het aantal adressen opraakte. Heb je nog een IPv4 adres? Controleer dan of IPv6 geactiveerd is voor je toestel. Dat gaat als volgt:

Wat als u nog een IPv4 adres hebt of gebruikt? IPv4 adressen werken nog steeds. U hoeft niks te doen.

Netwerkverbindingen

De meeste commando's die werken in de opdrachtprompt, zijn ook te gebruiken in PowerShell. Een voorbeeld hiervan is de opdracht ipconfig. Hiermee krijgt u zowel in de Opdrachtprompt als in PowerShell uitgebreide IP-informatie van al uw netwerkadapters. Er zijn ook commando's die alleen in PowerShell werken. Een voorbeeld hiervan is de opdracht Get-NetAdapter, die een beknopt overzicht geeft van uw netwerkadapters, het type adapter (ethernet of wifi) en de snelheid. Die informatie is ook op een andere manier in Windows te vinden, maar als u het commando kent, gaat het met PowerShell eenvoudiger en sneller. Dat commando is vrij lang. U kunt dat als volgt snel invoeren. Tik een gedeelte van de naam, bijvoorbeeld get-net en druk vervolgens een of meerdere keren op de Tab-toets totdat Get-NetAdapter verschijnt. De opdracht wordt automatisch aangevuld. U kunt er nog iets achter typen (parameters, bij veel opdrachten is dat nodig) en het commando bevestigen met een druk op de Enter-toets. Met behulp van de Tab-toets kunt u lastige opdrachten snel invoeren.

Het commando netstat geeft een overzicht van de actieve verbindingen, inclusief IP-adres en poortnummer van zender en ontvanger. De opdracht netstat /? geeft een overzicht van de vele parameters. Het commando netstat -s geeft een statistisch overzicht per netwerkprotocol (IP, ICMP, TCP en UDP). Dat kan nuttig zijn bij het oplossen van netwerkproblemen. Het comando netstat -o toont ook de PID (process identifier) van de processen. Via Windows Taakbeheer, waar je Beeld > Kolommen selecteren > Proces-id selecteert, kom je dan te weten welke toepassingen daarvoor verantwoordelijk zijn.

Kopiëren

Kopiëren van bestanden en mappen via Verkenner is een wat onhandige werkwijze, zeker wanneer je dat vergelijkt met het commando robocopy. Met robocopy /? krijg je een overzicht van het indrukwekkend aantal parameters. De /MIR optie spiegelt een directory van de source naar de destination. Daarbij worden bestanden die niet meer in de source staan uit de destination verwijderd. Een voorbeeld: met robocopy c:\media g:\backup\media /MIR (MIR staat voor mirror) wordt de bronmap (c:\media) automatisch gespiegeld met de doelmap (g:\backup\media). Je kunt opdrachten opslaan, je hoeft hiervoor maar de parameter /SAVE: toe te voegen. Met het commando robocopy /JOB: voer je die opdracht uit.

In het geval je een fout maakt door een verkeerde naam, zal Robocopy het 1 miljoen keer opnieuw proberen voordat hij opgeeft. Tussen elke retry zit 30 seconden, dus dat duurt een eeuwigheid. Je kam dat voorkomen door 2 switches toe te voegen, namelijk /R en /W. /R Geeft aan hoe vaak er opnieuw geprobeerd moet worden, /R:10 resulteert dus is 10 retries. /W geeft de tijd aan dat er gewacht moet worden. Met de switch /W:10 is dat dus 10 seconden.

Batchbestand

Een belangrijk voordeel van opdrachtregel­commando's is ook dat je verschillende opdrachten na elkaar in een batchbestand kunt opnemen. Die worden dan één voor één uitgevoerd zodra je het batchbestand start (dat laatste kan overigens ook via de taakplanner van Windows). Zo'n batchbestand is niets anders dan een tekstbestand met de extensie .bat of .cmd, dat je bijvoorbeeld met Kladblok aanmaakt. Een voorbeeld:

cls
robocopy c:\media g:\backup\media
del c:\media\*.* /Q
pause
Met het del-commando verwijder je, zonder een vraag naar bevestiging, alle bestanden uit c:\media (nadat je die dus met het robocopy-commando had gekopieerd).

Powershell

Wie al een tijdje meedraait in computerland, kent de knipperende cursor op het zwarte scherm: de 'commandprompt', dit onderdeel wordt in Windows de Opdrachtprompt genoemd. Een andere benaming is 'cli', dat staat voor 'command line interface'. PowerShell is een soort opdrachtprompt. De opdrachten die werken via de standaard opdrachtprompt van Windows, werken meestal ook in PowerShell, maar er is veel meer mogelijk. Met PowerShell kunt u vrijwel het volledige besturings­systeem bedienen, zonder de muis te gebruiken. Dat kan bijvoorbeeld door het maken van scripts. Vrijwel alles is op de een of andere manier ook via Windows PowerShell te regelen. PowerShell is de command-line-interface van Windows waar u tekstopdrachten aan het besturings­systeem geeft. Windows PowerShell is nuttig voor iedereen die Windows wil beheren vanaf de opdrachtregel. Het werken met PowerShell hoeft niet moeilijk te zijn. Voor dagelijks gebruik heeft PowerShell voldoende te bieden. Iets wat bijvoorbeeld in PowerShell al veel sneller gaat met de muis, is het verkrijgen van systeem­informatie. Een overzicht van de netwerkkaarten, de MAC-adressen en de IP-configuratie bijvoorbeeld. In PowerShell is het één commando, in Windows veel klikken en vensters openen en sluiten. Bovendien kunt u de output van PowerShell altijd filteren of weer verder verwerken in een volgend commando. Een overzicht van alle gedeelde mappen, een overzicht van de geplande taken, een taak toevoegen, het is allemaal met één commando te doen in PowerShell.

Windows PowerShell is een omgeving die op objecten is gebaseerd. Gebruikers moeten daarom begrijpen hoe zij gegevens moeten manipuleren met behulp van object­eigenschappen en -methoden. De meeste shells zijn op tekst gebaseerd en dit betekent dat scripts tekstgegevens moeten parseren om interessante gegevens te vinden. Windows PowerShell is op objecten gebaseerd en een script hoeft daarom alleen de juiste object­eigenschap te openen om interessante gegevens te vinden.

Met Windows PowerShell is het mogelijk objecten te manipuleren in plaats van tekst. Het beschikt over een krachtige scripttaal die is gebaseerd op .NET Framework. Het biedt een consistente manier om gegevens­archieven, zoals het register, door te bladeren door middel van providers.

PowerShell is zeer geavanceerd en kan worden uitgebreid met nieuwe functies. PowerShell is al een tijdje in Windows aanwezig en in Windows 10 aanbeland bij versie 5.0. Hoewel deze pagina uitgaat van een Windows 10-systeem, is de basis hetzelfde op eerdere Windows-versies.

powershell-1.png

 

powershell-2.png

Snelkoppeling als beheerder

Er zijn veel manieren om een PowerShell te openen. Gebruikt u Windows 10, druk dan op de Windows-toets om naar de Metro-interface te gaan en typ dan PowerShell. Klik dan op Windows PowerShell, of zoek bijvoorbeeld naar PowerShell (of een gedeelte van dit woord) in uw zoekoptie. U kan ook een snelkoppeling maken. Klik met de rechter muisknop op het bureaublad en kies Nieuw > Snelkoppeling. Maak een snelkoppeling naar PowerShell.exe en bewaar die. Klik met de rechter muisknop op de snelkoppeling en vraag de Eigenschappen op. Ga naar het tabblad Snelkoppeling, klik op Geavanceerd en plaats een vinkje bij Als administrator uitvoeren. Op die manier opent u de snelkoppeling altijd als computer­beheerder.

shellpower-3.png

Windows-toets+X

Als u in Windows 10 de toets­combinatie Windows-toets+X gebruikt, krijgt u een menu te zien met een directe verwijzing naar alle belangrijke Windows-onderdelen, zoals het configuratiescherm, energiebeheer en meer. Ook kunt u vanaf deze plek een opdracht­prompt opstarten in de veilige modus (standaard) of als beheerder. Dit onderdeel is eenvoudig te vervangen door PowerShell. Klik met de rechter muisknop op de taakbalk en vraag de Eigenschappen op. Open het tabblad Navigatie en plaats een vinkje bij Opdrachtprompt vervangen door Windows PowerShell in het (...). Vanaf nu is PowerShell direct beschikbaar via Windows-toets+X.

Administrator

De beste manier om PowerShell te starten is als computerbeheerder (administrator). Hiermee krijgt u de volledige rechten over 'alle' instellingen en aanpassingen die u wilt doen. Als u een normale PowerShell opstart, is de kans op foutmeldingen groter omdat er bijvoorbeeld te weinig rechten zijn om een bewerking uit te voeren. Voor veel taken heeft PowerShell meer rechten nodig. PowerShell starten met de extra rechten van een beheerder kan door met de rechter muisknop op de PowerShell-koppeling te klikken en te kiezen voor Als administrator uitvoeren.

Als PowerShell met extra rechten is gestart, kunt u dit zien in de titelbalk, daar staat dan in plaats van Windows PowerShell, Administrator: Windows PowerShell.

Omdat PowerShell in Administrator-mode alle rechten heeft, moet u wel extra voorzichtig zijn. Klakkeloos experimenteren met onbekende PowerShell-scripts van internet is vragen om problemen.

Commando's

Net als bij de opdrachtprompt kunt u in PowerShell allerlei commando's geven. De meeste commando's die werken in de opdrachtprompt, zijn ook te gebruiken in PowerShell. Een voorbeeld hiervan is de opdracht ipconfig. Hiermee krijgt u zowel in de Opdrachtprompt als in PowerShell uitgebreide IP-informatie van al uw netwerkadapters.

Cmdlets

Een opdracht die PowerShell kan uitvoeren heet een cmdlet (command-let). Daarvan bestaan duizenden varianten, maar het aantal dat echt op een pc beschikbaar is, is helemaal afhankelijk van de versie van Windows en eventueel extra geïnstalleerde software. PowerShell in Windows 8 heeft bijvoorbeeld standaard iets meer dan 400 cmdlets. Om ze allemaal te zien, kun je het commando Get-Command gebruiken. Na Enter vliegt een lange lijst over het scherm.

Blader er doorheen en u ziet dat de naam van een cmdlet meteen ook beschrijft wat het commando doet. De naam begint altijd met een bewerking, dan een streepje en dan het onderdeel waar het commando op uitgevoerd moet worden, bijvoorbeeld Get-Printjob of Set-Date.

Parameters

Behalve als losse opdracht kunnen de cmdlets worden uitgevoerd met extra parameters. De extra parameters bieden de mogelijkheid de uitvoering van de cmdlet te sturen. Een parameter begint altijd met een spatie en een streepje direct gevolgd door de naam van de parameter, dan een spatie en dan de invulling van de parameter.

Bijvoorbeeld Get-Process geeft een overzicht van alle actieve processen met hun geheugen en processorgebruik, maar Get-Process -ProcessName explorer geeft dat alleen voor het proces met de naam explorer.

Knippen en plakken

Met een paar parameters erbij wordt een PowerShell-commando al snel lang en complex. Bovendien zul je veelgebruikte commando's al snel willen bewaren in een document buiten de console om ze via kopiëren en plakken gemakkelijk te kunnen gebruiken. Om tekst in de console te selecteren, gebruikt u de muis.

Is de selectie gemaakt, dan is Enter voldoende om die te kopiëren. Om tekst te plakken in de console, is een klik met de rechter muisknop voldoende. De bekende toetscombinaties voor knippen, kopiëren en plakken werken niet in de PowerShell-console.

Tab-completion

Sommige commando's zijn behoorlijk lang. Die kunt u toch snel invoeren als u bij het invoeren van commando's gebruik maakt van tab-completion. Als u het eerste deel van een opdracht typt en dan de Tab-toets indrukt, wordt het commando aangevuld. Is er maar één vervolg mogelijk, dan komt dat er te staan. Zijn er meer mogelijkheden dan kunt u net zo vaak de Tab-toets indrukken tot de goede aanvulling er staat.

Dat werkt ook bij argumenten. Zo werkt u sneller en maak u minder fouten. Ook kunt u gebruik maken van wildcards om delen van tekst te vervangen. Zoekt u informatie over Outlook, dan hoeft u geen Outlook te typen maar volstaat Outl*. Een sterretje (*) geeft aan dat alles wat daarna komt akkoord is, terwijl een vraagteken (?) aangeeft dat op die plek in de opdracht elk willekeurig ander teken goed is.

PowerShell ISE

Het PowerShell-team binnen Microsoft wilde de console beter maken, maar werd daarbij door het Windows-team gehinderd. Dus besloten ze een eigen PowerShell-programmeer­omgeving te bouwen. Dat werd PowerShell ISE: de Integrated Scripting Environment. Je kunt dat starten door ise in te typen als zoekopdracht in je startmenu of met het commando ISE vanuit de PowerShell-console.

ISE combineert het consolevenster met een bibliotheek waarin alle cmdlets staan. Mocht je die niet zien, via View > Show Command Add-on schakel je die in. Bovendien werkt de tab-completion hier nog beter, je krijgt tijdens het typen al de mogelijkheden te zien waarmee je het commando verder kunt bouwen. Er is een menu- en knoppenbalk met opties en zoals je in het menu Edit kunt zien, werken plakken, knippen en kopiëren in ISE wel op de standaard Windows-manier.

ISE is een omgeving om PowerShell-scripts in elkaar te zetten. Je kan veel opdrachten met één muisklik toevoegen. De opdrachten staan aan de rechterkant van je scherm en er is een goede zoekfunctie aanwezig. Door commando's te combineren, maak je snel je eerste script, bijvoorbeeld om je wifi-adapter uit te schakelen weer te activeren (zie bij het onderdeel commando's). Door je script te starten, wordt die handeling automatisch uitgevoerd. Dat scheelt veel muisklikken die anders nodig waren geweest als je de 'wifi-reset' wilt uitvoeren via bijvoorbeeld het Apparaatbeheer.

Hangend proces stoppen

PowerShell is ook handig voor systeembeheer. Hangt er bijvoorbeeld een proces, dan kun je dat via het Taakbeheer opzoeken en afsluiten. Via Powershell kan dat ook. Met het commando Get-Proces zie je alle draaiende processen. Via Get-Process en dan de naam van het proces, zie je die informatie voor alleen dat ene proces. Dus Get-process Outl* geeft de status van het programma (proces) Outlook. Lees de ID af en met het commando Stop-Process -id en dan het ID-nummer van Outlook sluit je in één keer de hangende Office-applicatie af.

Programma's zoeken

Behalve wanneer er een snelkoppeling op het bureaublad staat, kan het starten van een programma veel klikken kosten. Dat gaat sneller via PowerShell. Met Start-Process kun je een programma starten, bijvoorbeeld Excel via Start-Process Excel. Zien welke programma's allemaal geïnstalleerd zijn, is lastiger. Windows kent namelijk vele soorten programma's.

Om de normale Windows-programma's te zien gebruik je Get-WmiObject -Class Win32_Product of Get-StartApps voor alle Metro-Apps op de pc. Om een bepaald programma of Metro-App te zoeken maak je gebruik van de mogelijkheid commando's na elkaar te gebruiken met het | -teken. Get-StartApps | where name -like "b*" geef alle applicaties die beginnen met de letter 'b'. Het deel na de verticale streep gebruikt de uitkomst van het deel voor de streep als input voor de eigen verwerking.

Overzicht van services en status

Met klikken op achtereenvolgens Configuratiescherm > Systeembeheer > Services kun je de services zien die op de pc aanwezig zijn en welke gestart en gestopt zijn. Als je wilt sorteren op services die zijn gestart of gestopt, komen er nog een paar klikken bij. Ook met het commando Get-Service | Where-Object {$_.Status -eq "Stopped"} kun je de services zien die zijn gestopt of met "Running" voor alle actieve services.

Informatie over netwerkadapters

Er zijn ook veel commando's die alleen in PowerShell werken. Een voorbeeld hiervan is de opdracht Get-NetAdapter, die een beknopt overzicht geeft van uw netwerkadapters, merk en model, het type adapter (ethernet of wifi), de status van de verbinding, het MAC-adres en de snelheid. Die informatie is ook ergens anders in Windows te vinden, maar als u het commando kent, gaat het met PowerShell het invoeren eenvoudiger en sneller. Een overzicht van alle geavanceerde instellingen die diep weggestopt in Windows zitten, krijgt u via Get-NetAdapterAdvancedProperty en dankzij een streepje kunt u de output beperken tot alleen de actieve netwerkkaart, bijvoorbeeld Get-NetAdapterAdvancedProperty | where name -like "Ethernet 2" als Ethernet 2 de actieve netwerkkaart is. Via Get-NetConnectionProfile ziet u of het netwerk dat de kaart gebruikt als openbaar, werk of privé is aangemerkt.

DOS-commando's gebruiken

In de PowerShell-console kun je ook bijna alle 'oude' DOS-commando's gebruiken, zoals ping en ipconfig. Alleen interactieve DOS-commando's zoals nslookup werken daar niet. Het PowerShell-alternatief voor ipconfig is Get-NetIPAdress. Of Get-NetIPAddress | where InterfaceAlias -eq "Ethernet 2" als je alleen de IP-configuratie van netwerkkaart 2 wilt weten.

Waar de uitkomst van ipconfig alleen 'domme' tekst is, kun je die van het krachtigere PowerShell-commando altijd weer gebruiken om vervolgslagen mee te maken zoals filteren op een van de kenmerken.

PowerShell bronnen op internet

Op internet is veel informatie te vinden over PowerShell. Allereerst op de Microsoft-website en de PowerShell Team weblog.

Ook YouTube is een goede plek om uitleg te vinden voor PowerShell. Veel van de video's zijn nog voor oudere versies van PowerShell, maar zoeken op 'PowerShell introduction' en 'PowerShell beginner' geeft goede resultaten om met PowerShell te beginnen. Veel informatie gaat over scripting (het combineren van cmdlets tot miniprogramma's), maar ook over slim gebruik van cmdlets voor alledaags computergebruik is veel te vinden.

Helpfunctie
powershell-4.png

De helpfunctie van PowerShell is uitgebreid en onoverzichtelijk als je alleen de opdracht help geeft gevolgd door Enter. De functie wordt duidelijker als je de hulpvraag specificeert. Met de opdracht help Get-NetAdapter krijg je uitgebreide informatie over Get-NetAdapter. Je leest waar dit commando voor dient, hoe je het gebruikt en waar je meer informatie vindt als je 'alles' over het commando te weten wilt komen. Bij Related links zie je gerelateerde opdrachten. Je komt er bijvoorbeeld het commando Restart-NetAdapter tegen. Dit blijkt uitermate handig om via een PowerShell-commando de wifi-adapter snel uit te schakelen en weer opnieuw te activeren, een truc die meestal zeer effectief is om tijdelijke wifi-storingen op te lossen.

PowerShell beschikt over uitgebreide helpfuncties. Om uitleg te krijgen bij een cmdlet gebruik je Get-Help, bijvoorbeeld Get-Help -Name Get-Process. Voor uitleg over de concepten van PowerShell of taalspecifieke zaken is er Get-Help About_ zoals Get-Help About_Modules. De uitleg die PowerShell geeft komt van het internet, maar is gedownload naar de computer. Met Update-Help kun je de gedownloade uitleg updaten. Is de uitleg te groot en vliegt die over het scherm, gebruik dan de toevoeging | more om het te doseren, bijvoorbeeld Get-Help -Name Get-Process | more.

De output stopt dan als het beeld vol is en gaat als je Enter drukt een regel verder, of als je de spatiebalk indrukt een vol beeld verder. Dat |-teken heet overigens een pipe of het sluisteken. Het kan ook handig zijn de uitleg direct online te lezen, met de parameter -online, bijvoorbeeld Get-Help -online Get-Process. PowerShell opent dan de juiste webpagina van Microsoft TechNet meteen in de browser.

Overeenkomst met Linux

We noemden al een paar keer het verband tussen PowerShell en de opdrachtprompt, maar de link met Linux is nog veel groter. Veel commando's uit PowerShell komen direct uit Linux. Om bijvoorbeeld de inhoud van een map op te vragen, kun je de opdracht dir geven. Linux-gebruikers kennen deze opdracht als ls en dit commando werkt ook in PowerShell. Andere voorbeelden zijn rm (remove, verwijderen), kill (sluiten) en mv (move, verplaatsen). Op deze website vind je onder Quick reference (scroll bijna helemaal naar beneden) een overzicht van veelvoorkomende commando's die zowel in Linux als de Windows PowerShell te gebruiken zijn.

Standaard apps verwijderen

Het verwijderen van programma's is een praktisch voorbeeld van de mogelijkheden van PowerShell. Windows 10 heeft allerlei standaard-apps aan boord waar veel mensen niet op zitten te wachten. Dankzij slimme PowerShell-opdrachten kun je de geïnstalleerde 'rommel' snel verwijderen. Met de opdracht Get-AppxPackage *xboxapp* | Remove-AppxPackage gevolgd door Enter verdwijnt de Xbox-app van je computer. Met de opdracht Get-AppxPackage *bingfinance* | Remove-AppxPackage verwijder je de Geldzaken-app. Je kunt zelfs de complete app-winkel van Microsoft van je systeem verwijderen. Hiervoor geef je Get-AppxPackage *windowsstore* | Remove-AppxPackage als opdracht. Er zijn meer opdrachten mogelijk. Een overzicht vind je hier.

Standaardapps opnieuw installeren

Heb je per ongeluk allerlei apps verwijderd die je eigenlijk nog weleens wilt gebruiken? Dan kun je een groot deel van de standaard app-bundel snel herstellen. Geef hiervoor Get-AppxPackage -AllUsers| Foreach {Add-AppxPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml"} als opdracht. Je hoeft dit niet helemaal over te typen, je kunt de opdracht ook kopiëren van de website uit de vorige tip.

Wil je meer weten over Powershell? Kijk dan eens bij Microsoft Virtual Academy voor uitgebreide video's. Ook op YouTube zijn filmpjes te vinden, bijvoorbeeld de PowerShell-instructievideo's van Don Jones.