PowerShell vrijdag: aan de slag met PowerShell en PowerCLI
Gepubliceerd op 6 november 2015 • 5 min leestijd • 1.031 woorden
Ik doe veel dingen met PowerShell, zelfs voor VMware met PowerCLI. PowerCLI voegt functionaliteit toe aan een reeds geïnstalleerde PowerShell om uw VMware-omgeving vanaf de opdrachtregel te beheren. Maar voordat ik naar PowerCLI afdwaal, moet ik uitleggen wat PowerShell is en doet.
Dit bericht is de eerste in een (hopelijk) lange reeks berichten over PowerShell en PowerCLI en andere componenten in uw VMware-omgeving, zoals opslag, computerplatform en meer.
Wat is PowerShell en waarom wil ik het
Van de Microsoft-website:
PowerShell is een automatiseringsplatform en scripttaal voor Windows en Windows Server waarmee u het beheer van uw systemen kunt vereenvoudigen.
Ja, oké, maar we hebben al veel andere automatiserings- en scriptingtools, VBScript, JavaScript, batch-/opdrachtbestanden en de lijst gaat maar door. Waarom hebben we nog een scripttool nodig?
De site vervolgt:
Windows PowerShell is een taakgebaseerde opdrachtregel-shell en scripttaal die speciaal is ontworpen voor systeembeheer. Windows PowerShell is gebouwd op het .NET Framework en helpt IT-professionals en ervaren gebruikers bij het beheren en automatiseren van het beheer van het Windows-besturingssysteem en de applicaties die op Windows draaien.
Met Windows PowerShell-opdrachten, genaamd cmdlets, kunt u de computers beheren vanaf de opdrachtregel. Met Windows PowerShell providers hebt u net zo eenvoudig toegang tot gegevensarchieven, zoals het register en het certificaatarchief, als tot het bestandssysteem. Bovendien beschikt Windows PowerShell over een rijke expressie-parser en een volledig ontwikkelde scripttaal.
Windows PowerShell bevat de volgende functies:
- Cmdlets voor het uitvoeren van algemene systeembeheertaken, zoals het beheren van het register, services, processen en gebeurtenislogboeken, en het gebruik van Windows Management Instrumentation (WMI).
- Een taakgebaseerde scripttaal en ondersteuning voor bestaande scripts en opdrachtregelprogramma’s.
- Consistent ontwerp. Omdat cmdlets en systeemgegevensarchieven algemene syntaxis en naamgevingsconventies gebruiken, kunnen gegevens eenvoudig worden gedeeld en kan de uitvoer van de ene cmdlet worden gebruikt als invoer voor een andere cmdlet zonder opnieuw te formatteren of te manipuleren.
- Vereenvoudigde, op commando’s gebaseerde navigatie van het besturingssysteem, waarmee gebruikers door het register en andere gegevensarchieven kunnen navigeren met behulp van dezelfde technieken die ze gebruiken om door het bestandssysteem te navigeren.
- Krachtige mogelijkheden voor objectmanipulatie. Objecten kunnen direct worden gemanipuleerd of naar andere tools of databases worden verzonden.
- Uitbreidbare interface. Onafhankelijke softwareleveranciers en bedrijfsontwikkelaars kunnen aangepaste tools en hulpprogramma’s bouwen om hun software te beheren.
Dus, om samen te vatten: PowerShell kan me helpen het register, de services enzovoort te beheren vanaf de opdrachtregel, met een objectgeoriënteerde stroom. Als ik het goed doe, kan het mijn dagelijkse werkzaamheden vereenvoudigen.
Is het moeilijk?
Een nieuwe taal leren is niet eenvoudig, maar de jongens die PowerShell hebben gebouwd, hebben er zeker alles aan gedaan om een taal te creëren die gemakkelijk te begrijpen is.
PowerShell gebruikt een naamgevingssysteem voor werkwoorden, waarbij elke cmdlet-naam bestaat uit een standaardwerkwoord gecombineerd met een zelfstandig naamwoord. De werkwoorden zijn niet altijd Engels, maar staan voor acties in PowerShell. Zelfstandige naamwoorden in PowerShell lijken veel op zelfstandige naamwoorden in welke taal dan ook. Ze beschrijven de typen objecten die u kunt manipuleren in de context van systeembeheer.
Een paar voorbeelden van gebruikte/goedgekeurde werkwoorden: Get, Set, Stop, Start. Deze werkwoorden worden gecombineerd tot een volledige opdracht/cmdlet met een ‘-’ en een zelfstandig naamwoord, bijvoorbeeld ‘Process’ voor alles wat met processen te maken heeft. Dat geeft je opdrachten zoals Get-Process, Stop-Process, Start-Process.
Voor een volledige lijst met werkwoorden gaat u naar de
Microsoft-site
. Voor een volledige lijst met cmdlets start u uw PowerShell op en typt u Get-Command
Kun je mij een voorbeeld geven van hoe dit werkt?
Natuurlijk kan ik dat. Ik kan het beter, ik geef je meerdere voorbeelden. De ‘#’ betekent dat het een commentaar/opmerkingsregel is. U hoeft het niet na de opdracht te typen.
Get-Process # Haal alle processen op
Get-Process [pw]* # Haal alle processen op die beginnen met een 'p' of 'w'
Get-proces [pw]* | Stop-Process # Stop alle processen die beginnen met een 'p' of 'w'
Get-ChildItem C:\Temp\*.log # Haal logbestanden op in een map en toon hun attributen
Als u al deze bestanden op uw scherm wilt weergeven, kunt u het volgende gebruiken:
Get-ChildItem C:\Temp\*.log | krijg-inhoud
Als je de inhoud van een omgevingsvariabele wilt weten, doe je hetzelfde, maar dan met een andere ‘schijf’:
Get-ChildItem Env:windir
Een van de handigste opdrachten is ‘Get-Help’:
‘Get-Help Get-ChildItem -full’
Hiermee krijgt u de ingebouwde hulp voor de cmdlet Get-ChildItem.
Voordat u een van de voorbeelden uitvoert, moet u ervoor zorgen dat u begrijpt wat ze doen.
Maar wat is PowerCLI dan?
VMware vSphere PowerCLI is een opdrachtregelinterface (CLI)-tool voor het automatiseren van vSphere- en vCloud-beheer.
PowerCLI-opdrachten worden uitgevoerd in Windows PowerShell met behulp van PowerShell-cmdlets. PowerCLI-cmdlets zijn beschikbaar voor verschillende VMware-taken en -componenten, zoals HA- en DRS-installatie, het configureren van virtuele machines en andere taken.
Op dezelfde manier waarop u processen start en stopt, kunt u virtuele machines starten en stoppen. Bijvoorbeeld:
Start-VM [wp]*
Start alle VM’s die beginnen met ‘w’ of ‘p’. Natuurlijk kun je ook allerlei combinaties van cmdlets voor VMware maken:
Get-VM
* | Verwijder-VM
Waarmee de VM’s uit vCenter worden verwijderd. indien gecombineerd met ‘-DeletePermanently’ worden de VM’s verwijderd uit vCenter EN van schijf verwijderd. Wees voorzichtig.
Zijn er nog meer PowerShell-modules/snapins/orwhatyoucallthem?
Er zijn er nog veel meer. Ik heb modules/snapins gezien voor:
- vSphere
- Horizonweergave
- vCloud Director
- NetApp
- Infoblox
- Cisco UCS
- HP-servers
- Dell-servers
- git-bronbeheer
- PowerShell Community-extensies
En er zijn waarschijnlijk honderden, zo niet duizenden, meer.
Waar kan ik meer informatie vinden over PowerCLI?
Mijn belangrijkste bronnen voor PowerCLI zijn:
- Googlen (natuurlijk)
- Alan Renouf’s Virtu-al.net
- LucD.info
- Wikipedia’s pagina over PowerShell
Ik ben ervan overtuigd: hoe kan ik PowerShell en PowerCLI verkrijgen?
Windows 2012 en Windows 8 bevatten al Windows PowerShell 3.0. Als u PowerShell 4.0 wilt installeren, lees dan [de instructies] ( https://www.microsoft.com/en-us/download/details.aspx?id=40855 ) zeer zorgvuldig over wat en waar u moet installeren.
U kunt PowerCLI (en meer hulp) vinden op www.vmware.com/go/powercli
