Aan de slag met Windows Powershell

Door: Edmond Varwijk | 27 juni 2014 10:30

Apps & Software

Inhoudsopgave

  1. Inleiding
  2. pagina 2
  3. pagina 3

05 Knippen en plakken in PowerShell

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 hergebruiken. Om tekst in de console te selecteren, gebruik je de muis.

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

06 Helpfunctie

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.

Na een update van de helpfunctie geeft de opdracht geen foutmelding, maar duidelijke uitleg.

PowerShell kan ook uitleg online zoeken en direct in de browser openen.

07 Handig formuleren

Bij het invoeren van commando's kun je in de console gebruikmaken van een aantal handigheidjes. De eerste is tab-completion, dat wil zeggen dat als je het eerste deel van een opdracht typt en dan de Tab-toets indrukt, het commando wordt aangevuld. Is er maar één vervolg mogelijk, komt dat er te staan, zijn er meer mogelijkheden dan kun je net zo vaak de Tab-toets indrukken tot de goede aanvulling er staat. Dus met Get- en de Tab-toets blader je door alle Get-commando's.

En dat werkt ook bij argumenten. Zo gaat het sneller en maak je minder fouten. Ook kun je gebruikmaken van wildcards om delen van tekst te vervangen. Zoek je informatie over Outlook, iets wat later in dit artikel nog gebeurt, dan hoef je 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 akkoord is.

08 PowerShell ISE

Het PowerShell-team binnen Microsoft wilde de console nog veel beter maken, maar werd daarbij door het Windows-team gehinderd. Dus besloten ze een eigen PowerShell-programmeeromgeving te bouwen. Dat werd PowerShell ISE: de Integrated Scripting Environment. Je kunt deze starten net als elk ander Windows-programma via het startmenu of met het commando ISE vanuit de PowerShell-console.

ISE combineert het consolevenster met een handige bibliotheek waarin alle cmdlets staan. Mocht je die niet zien, via View / Show Command Add-on schakel je deze 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.

PowerShell ISE is de betere versie van de PowerShell-console: dezelfde mogelijkheden en nog veel meer.

09 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 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.

Een hangend programma sluiten via PowerShell.

10 Programma's zoeken

Behalve wanneer er een snelkoppeling op het bureaublad staat, kan het starten van een programma ook veel klikken kosten. Dat gaat opnieuw sneller via de PowerShell. Met Start-Process kun je een programma starten, bijvoorbeeld Excel via Start-Process Excel. Zien welke programma's allemaal geïnstalleerd zijn, is iets 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 specifiek programma of Metro-App te zoeken kun je gebruikmaken van de mogelijkheid commando's na elkaar te gebruiken via 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.

Specifieke programma's zoeken met PowerShell.

11 Overzicht van services en status

Via Configuratiescherm / Systeembeheer/ Services kun je de services zien die op de pc aanwezig zijn, welke gestart en welke gestopt. Dat zijn alweer een aantal klikken en als je wilt sorteren op welke opstart of gestopt zijn, komen er daar nog een paar bij. Het kan ook met het commando Get-Service | Where-Object {$_.Status -eq "Stopped"} om de services te zien die gestopt zijn of met "Running" voor alle actieve services.

12 Informatie over netwerkadapters

Een andere handige informatiebron is de Get-NetAdapter cmdlet. Deze geeft een overzicht van de netwerkkaarten in de pc, merk en model, de status van de verbinding en het MAC-adres en de snelheid. Een mooi overzicht van alle geavanceerde instellingen die zo diep weggestopt in Windows zitten, krijg je via Get-NetAdapterAdvancedProperty en dankzij een streepje kun je de output beperken tot alleen de actieve netwerkkaart, bijvoorbeeld Get-NetAdapterAdvancedProperty | where name -like "Ethernet 2" als Ethernet 2 de actieve netwerkkaart is. En via Get-NetConnectionProfile zie je of het netwerk dat de kaart gebruikt als openbaar, werk of privé is aangemerkt.

Een snel en compleet overzicht over de netwerkverbindingen en alle instellingen kost in PowerShell maar een paar commando's.

3 Reactie(s) op: Aan de slag met Windows Powershell

  • Om te reageren moet je ingelogd zijn. Nog geen account? Registreer je dan en praat mee!
  • 27 juni 2014 14:08 Anoniem
    Ik zie het wel weer, Bash is een stuk gebruiksvriendelijker.
    Wanneer je een reactie plaatst ga je akoord
    met onze voorwaarden voor reacties.
  • 9 juli 2014 19:18 Anoniem
    One small point - $host does not give the powershell version - it gives the version of the host that hosts PowerShell. Use $psversiontable for that.
    Wanneer je een reactie plaatst ga je akoord
    met onze voorwaarden voor reacties.
  • 18 oktober 2015 18:24 Anoniem
    ok
    Wanneer je een reactie plaatst ga je akoord
    met onze voorwaarden voor reacties.

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