c’t 12/2025
Het einde van Windows 10 - of niet?
Cover van
PowerShell en Opdrachtprompt snel starten tips trucs

PowerShell en Opdrachtprompt snel starten: tips en trucs

Veel taken in Windows kun je efficiënter uitvoeren vanaf de Opdrachtprompt of met PowerShell dan via het rondklikken bij Instellingen of Verkenner. Via onze ‘highway to shell’ kun je Powershell of Opdrachtprompt snel starten.

Lees verder na de advertentie

Als je een van die gebruikers bent die af en toe in Windows een commando wil typen voor beheertaken in plaats van met de muis te werken, kun je er het beste eerst voor zorgen dat je je favoriete shell zo snel mogelijk kunt starten. Daarvoor kun je zowel PowerShell als Opdrachtprompt aan de taakbalk vastmaken. Start gewoon de shell en selecteer de betreffende opdracht in het snelmenu van diens taakbalkpictogram. Dat is met name handig bij PowerShell, want het snelmenu van diens pictogram bevat extra vermeldingen voor het starten van de shell als administrator en voor het openen van de PowerShell ISE, de meegeleverde script-editor (Integrated Scripting Environment). Net als elk ander programma kun je de twee shells ook met volledige rechten starten door de Shift- en Ctrl-toets ingedrukt te houden terwijl je op het taakbalkpictogram klikt.

Een andere manier om PowerShell te starten (met of zonder administratorrechten) is met het Windows+X-menu, dat je ook kunt openen met een klik met de rechtermuisknop op het startmenu-pictogram helemaal links op de taakbalk. Als je liever werkt met de traditionele Opdrachtprompt dan met PowerShell, kun je de twee items omwisselen. Bij Instellingen staat onder ‘Persoonlijke instellingen / Taakbalk’ een schakelaar die de Opdrachtprompt vervangt door PowerShell en die bij sommige versies van Windows standaard ingeschakeld is.

Tip!

De laptop waar kracht, creativiteit en AI samenkomen!
De laptop waar kracht, creativiteit en AI samenkomen!

Ontworpen voor creators en professionals: configureer jouw eigen ASUS ProArt P16 nu.

Opdrachtpromt via Verkenner

PowerShell kun je ook vanuit Verkenner starten en rechtstreeks naar een bepaalde map sturen. Daarvoor klik je met de rechtermuisknop op de map, of in een leeg stuk van het rechterdeelvenster, terwijl je de Shift-toets ingedrukt houdt en kies je het menu-item ‘PowerShell-venster hier openen’.

Er is voorlopig niet voorzien in een manier om de Opdrachtprompt op dezelfde manier te starten of een van de twee tekst-shells met administratorbevoegdheden te openen. Het achteraf toevoegen van die opdrachten heeft Microsoft behoorlijk gecompliceerd gemaakt. Hieronder laten we zien hoe dat toch lukt.

De opties in het snelmenu van mappen in Verkenner zijn geconfigureerd via registeringangen. Dat zijn er steeds drie. In subsleutels van HKEY_CLASSES_ROOTDirectoryshell staat wat er gebeurt als je met de rechtermuisknop klikt op een mappictogram in de boomweergave of in de rechterlijst. Het snelmenu van lege ruimte in een map wordt beheerd door subsleutels van HKEY_CLASSES_ROOTDirectoryBackgroundshell. Ten slotte bevatten ingangen onder HKEY_CLASSES_ROOTDriveshell de snelmenu-opdrachten voor stationspictogrammen. Alle drie zijn exacte kopieën, dus we kunnen ons hier beperken tot het beschrijven van de ingangen in HKEY_CLASSES_ROOTDirectoryshell.

De allernieuwste uitgave
Het einde van Windows 10 – of niet?
€ 9.50
  • Ontdek hoe je veilig blijft zonder nieuwe pc te kopen.
  • Big Tech onder de loep
  • Alles over Wi-Fi 8
Bestel nu
De allernieuwste uitgave

In eerdere versies van Windows was er een commando om de Opdrachtprompt te openen in het snelmenu bij een Shift+rechtsklik op een map. Microsoft heeft die in Windows 10 1703 vervangen door de PowerShell-opdracht. Als je de genoemde sleutel in een huidige Windows 10 bekijkt met de register-editor, vind je zelfs een subsleutel met de naam cmd, die de ingangen bevat voor het Opdrachtprompt-commando. Microsoft heeft daar echter een ingang met de naam HideBasedOnVelocityId toegevoegd, waarvan de exacte betekenis nergens openbaar is gedocumenteerd, maar die ervoor lijkt te zorgen dat Verkenner de opdracht negeert.

Het idee om die waarde simpelweg te verwijderen of een 0 toe te wijzen mislukt helaas door de ontbrekende gebruikersrechten. Om de een of andere reden heeft Microsoft de sleutel cmd (en ook de aangrenzende PowerShell-sleutel) zo geconfigureerd dat de inhoud ervan niet eens kan worden gewijzigd door administrators of het systeemaccount. Dat kan alleen het account ‘TrustedInstaller’. Er is geen manier om dat account te gebruiken met ‘Uitvoeren als’ of iets vergelijkbaars. Het is mogelijk om de rechten van de sleutel te wijzigen, zodat op zijn minst administrators daar iets mogen wijzigen, maar we raden dat niet aan omdat we bang zijn dat dit tijdens de volgende Windows-­upgrade tot problemen kan leiden.

Er is echter een andere uitweg. Daarvoor moet je weten dat de registersleutel HKEY_CLASSES_ROOT eigenlijk helemaal niet bestaat. Het is gewoon een afkorting voor een combinatie van HKEY_LOCAL_MACHINESoftwareClasses en HKEY_CURRENT_USERSoftwareClasses. Bij tegenstrijdige ingangen in beide paden wint de laatste. De sleutel HKEY_CURRENT_USER en alle bijbehorende subsleutels horen niet alleen logisch, maar ook wat rechten betreft bij het aangemelde gebruikersaccount, dus daar kun je naar believen wijzigingen aanbrengen. Om het door Microsoft uitgeschakelde Opdrachtprompt-commando te herstellen, kun je dus in het register het sleutelpad HKEY_CURRENT_USERSoftwareClassesDirectoryshellcmd aanmaken, als die nog niet bestaat, en daar een DWORD-item HideBasedOnVelocityId met de waarde 0 maken. Hetzelfde geldt voor de bovengenoemde kopieën.

Je kunt van onze site een zip-bestand downloaden met daarin een .reg-bestand, dat je met een dubbelklik in je register kunt opnemen en dat die ingangen voor je maakt. Bovendien bevat het kopieën van de relevante ingangen uit HKEY_LOCAL_MACHINESOFTWAREClasses en zet het die in HKEY_CURRENT_USERSoftwareClasses, om je te beschermen tegen eventuele wijzigingen die Microsoft in latere Windows-versies op die plekken kan doorvoeren. Bovendien geeft het bestand de hier beschreven snelmenu-commando’s nog bijpassende pictogrammen. Voordat je het.reg-bestand importeert, is het misschien een goed idee om de sleutel HKEY_CURRENT_USERSoftwareClassesDirectory van je register te exporteren en de kopie goed op te bergen. Daarmee kun je de oorspronkelijke toestand herstellen als er na een upgrade van Windows toch onverwachte problemen ontstaan met het snelmenu.

Met administrator-rechten

Je kunt zonder al te veel moeite een menu-optie maken om de Opdrachtprompt in een specifieke map te openen met administratorrechten door de inhoud van de sleutel …shellcmd te kopiëren naar een nieuw te maken buursleutel …shellRunAs. Alleen de (standaard)waarde van de sleutel moet je wijzigen in iets zinvols, zoals ‘Opdrachtprompt hier openen (administrator)’, want dat is de naam die het commando in het snelmenu krijgt. Je hoeft het commando dat wordt uitgevoerd niet te wijzigen: het starten met volledige rechten wordt bepaald door de sleutelnaam RunAs.

Als je liever met PowerShell werkt dan met Opdrachtprompt, kun je in plaats daarvan de inhoud van …shellPowershell op dezelfde manier kopiëren naar …shellRunAs en aanpassen. Je kunt op die manier echter geen ingangen voor beide shells met administratorrechten krijgen, want de sleutel RunAs kan maar één keer voorkomen. Ons .reg-bestand neemt daarom een andere route voor Power­Shell. Het maakt een nieuwe sleutel …shellPowerShellAsAdmin. Het voegt een commando toe om PowerShell uit te voeren en geeft bij de Opdracht­prompt-optie -command een commando mee dat via de cmdlet met Start-Process een andere PowerShell start. Die aanroep gebruikt de optie -Verb RunAs, waardoor de tweede PowerShell wordt geopend met administratorbevoegdheden. Bovendien ontvangt hij via de ArgumentList van Start-Process de instructie om met Set-Location naar de geselecteerde map te gaan.

Dat laatste detail klinkt eenvoudig, maar blijkt erg gecompliceerd te zijn. De gewenste mapnaam kan spaties bevatten en moet daarom tussen aanhalingstekens komen te staan. Maar het importeren van het .reg-bestand, elke start van PowerShell en de aanroep van Start-Process kosten ook elk een paar aanhalings­tekens. Bovendien verwijderen die bewerkingen extra aanhalingstekens die niet gemaskeerd zijn met een escape-teken volgens het gebruikte schema. Het resultaat is dat in het .reg-bestand de parameter voor de doelmap er nogal afschrikwekkend uitziet: \’’`\’%V`\’’\’ Het is niet aan te raden dat over te typen, dus we tonen hier dan ook niet het volledige commando maar adviseren je om in ons .reg-bestand te kijken als je daar in geïnteresseerd bent. Alle wijzigingen worden aangebracht in de sleutel HKEY_CURRENT_USER en zouden dus veilig moeten zijn bij mogelijke toekomstige creatieve invallen van Microsoft met betrekking tot gebruikersrechten voor het register. Zelfs als Microsoft ooit alle ingangen voor Opdrachtpromp uitroeit, herstelt het bestand ze weer, omdat het alles bevat wat nodig is als kopie van de huidige ingang uit HKEY_LOCAL_MACHINESoftwareClasses, maar met zinvolle aanpassingen. Het is een eenvoudig tekstbestand dat je makkelijk aan je wensen kunt aanpassen voordat je het importeert.

Andere manieren om Windows efficiënt te gebruiken, met tips en trucs voor Verkenner, start-menu, taakbalk en meer vind je in uitgave 9 van c’t magazine.

(Hajo Schulz en Noud van Kruysbergen, c’t magazine)

De allernieuwste uitgave
Het einde van Windows 10 – of niet?
€ 9.50
  • Ontdek hoe je veilig blijft zonder nieuwe pc te kopen.
  • Big Tech onder de loep
  • Alles over Wi-Fi 8
Bestel nu
De allernieuwste uitgave

Tip!

De laptop waar kracht, creativiteit en AI samenkomen!
De laptop waar kracht, creativiteit en AI samenkomen!

Ontworpen voor creators en professionals: configureer jouw eigen ASUS ProArt P16 nu.

Meer over

0

Praat mee

Abonneer
Laat het mij weten wanneer er
0 Reacties
oudste
nieuwste

Inspiratie in je mailbox

Blijf bij op IT-gebied en verbreed je expertise. Ontvang elke week artikelen over de laatste tech-ontwikkelingen, toepassingen, nieuwe hard- en software én ontvang tips en aanbiedingen.

Loginmenu afsluiten