Gemiddelde leestijd: 2 Minuten

Bij SBC Solutions gebruiken we graag PowerShell, dat voor diverse taken in te zetten is. Het is een ontzettend veelzijdige tool. Op het gebied van het beheer van virtuele machines (VM’s) bleek het bijvoorbeeld interessant te zijn op een manier waar ik nog niet eerder aan gedacht had.

Nog niet zo lang geleden had ik op een remote locatie een virtuele domeincontroller (DC) die problemen had. De DC probeerde nog wel verzoeken te authenticeren, echter slaagde dit niet. Hierdoor was het niet mogelijk om via een Active Directory (AD) account in te loggen op deze locatie, inclusief op de Hyper-V host. Ook de lokale accounts waren niet beschikbaar, waardoor de host niet toegankelijk was.

PowerShell bleek toen erg handig om dit op afstand alsnog voor elkaar te krijgen. PowerShell gebruikte namelijk een lokale DC bij PSRemoting voor de authenticatie, in plaats van de DC op de remote locatie. Hierdoor was het opeens wel mogelijk om te verbinden naar de Hyper-V host met een AD account en de virtuele machine te herstarten. Hierdoor heb ik kunnen voorkomen dat iemand naar de locatie moest en dat de machine hard herstart moest worden.

VM’s beheren

Natuurlijk is dit een voorbeeld dat (hopelijk) niet al te vaak voorkomt maar het was wel een moment dat ik erg blij was dat ik PowerShell gebruikte voor het beheren van virtuele machines. En dat ben ik vaker geweest. 

PowerShell maakt het namelijk een stuk eenvoudiger om VM’s te beheren, doordat veel taken te automatiseren zijn. Daarbij is het ook mogelijk om eigenschappen van andere VM’s mee te nemen. Daarnaast kun je VM’s in batches aanmaken, wat veel minder interactie vereist.

En dan is het ook nog eens mogelijk om restricties te leggen op welke scripts er in een VM gebruikt mogen worden. Zo is het mogelijk om aan te geven dat alleen scripts die ontwikkeld zijn met de juiste rechten in een bepaalde omgeving uitgevoerd mogen worden. Dat is een handig stuk beveiliging, wat op deze manier eenvoudig in te zetten is.

Universeel

De voornaamste reden dat ik graag voor PowerShell kies ten opzichte van andere tools, is echter dat het universeel op Windows toepasbaar is. Op het moment dat jij dingen in PowerShell zet, werkt dat hetzelfde op bijvoorbeeld Windows Server 2012 (R2) als op 2016, 2019 of Windows 7 of 10. Er zitten geen verschillen in hoe dingen aangesproken worden.

Bovendien is het tegenwoordig ook mogelijk om zelfs vanaf Linux- en Apple-apparaten met PowerShell te werken. Dan kun je dus vanaf een Linux-machine een Azure-omgeving beheren, waar je vervolgens weer Linux-machines kunt hebben draaien. Daardoor is het echt een universeel platform voor beheerstaken, ook als je geen Windows wilt gebruiken.