PowerShell en Opdrachtprompt snel starten: tips en trucs

Noud van Kruysbergen
0

Inhoudsopgave

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.

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.

VHD-bestand toevoegen via opdrachtprompt of powershell

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_ROOT\Directory\shell 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_ROOT\Directory\Background\shell. Ten slotte bevatten ingangen onder HKEY_CLASSES_ROOT\Drive\shell 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_ROOT\Directory\shell.

Meer oplossingen om Windows efficiënt te gebruiken lees je in c't sep/2019

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_MACHINE\Software\Classes en HKEY_CURRENT_USER\Software\Classes. 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_USER\Software\Classes\Directory\shell\cmd aanmaken, als die nog niet bestaat, en daar een DWORD-item HideBasedOnVelocityId met de waarde 0 maken. Hetzelfde geldt voor de bovengenoemde kopieën.

PowerShell en Opdrachtprompt snel starten snelmenu register aanpassing

Ons registerbestand omzeilt de kunstmatige belemmeringen waarmee Microsoft snelmenu’s voor mappen beperkt.

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_MACHINE\SOFTWARE\Classes en zet het die in HKEY_CURRENT_USER\Software\Classes, 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_USER\Software\Classes\Directory 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.

Doorlezen is gratis, maar eerst even dit:

Dit artikel is met grote zorg samengesteld door de redactie van c’t magazine – het meest toonaangevende computertijdschrift van Nederland en België. Met zeer uitgebreide tests en praktische workshops biedt c’t de diepgang die je nergens online vindt.

Bekijk de abonnementen   Lees eerst verder

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 …\shell\cmd te kopiëren naar een nieuw te maken buursleutel …\shell\RunAs. 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.

PowerShell en Opdrachtprompt snel starten snelmenu Shift rechtsklik

Het menu dat je opent met Shift en een rechter muisklik op een map, kan met een paar trucs worden uitgebreid met zinvolle opdrachten.

Als je liever met PowerShell werkt dan met Opdrachtprompt, kun je in plaats daarvan de inhoud van …\shell\Powershell op dezelfde manier kopiëren naar …\shell\RunAs 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 …\shell\PowerShellAsAdmin. 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_MACHINE\Software\Classes, 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)

Uitgebreide achtergrondinfo en meer lees je op je gemak in c't mei/2020

Meer over

Software

Deel dit artikel

Lees ook

Overal back-uppen: snel en eenvoudig met het gratis Duplicati

Back-uppen zonder kosten, op allerlei apparaten? Duplicati is geheel gratis, snel geïnstalleerd en geconfigureerd en draait onder alle gangbare deskto...

Outlook thuis of onderweg gebruiken via het web

Overal toegang tot je werk e-mail? Je kunt Outlook thuis of onderweg gebruiken met de versie voor in een browser. Die webversie is soms zelfs praktisc...

0 Praat mee
avatar
  Abonneer  
Laat het mij weten wanneer er