9789463562881

Page 1


Inhoud

Opmerkingenvoorafxvii Vereistekennisenbenodigdhedenxvii Hoegebruikjeditboek?xix

Optie1:onderwerpnaonderwerp xix

Optie2:meteenstartenmethetuitbouwenvaneendomein xix

Optie3:uit hetboek halenwatnodigis xix Totslot

Deel1:WegwijsinPowerShell1

Opmerkingenbijdeoefeningen(virtualisatiehulpopvolgendepagina)5 OracleVirtualBoxenVMWare:OracleVirtualBox6 OracleVirtualBoxenVMWare:VMWare10 1Aandeslag12 2Eersteinstructieuitvoeren13 3GebruikmakenvanWindowsPowerShellISE13 4VisualStudioCode16 5TypischePowerShell-opmerkingen16 6Houdrekeningmetiedereen17 7Escapeteken17 8Cmdlets 18 9SnelwerkenmetPowerShell19 10Parametersbijcmdlets20 11AnatomievanPowerShell-commando21 12Bouwstenen21 13Waardetoekennenaaneenvariabele22 14Opbouwenvaneenstevigeinstructie23 15Gebruik-whatifominstructietecontroleren28 16Hulpkrijgenovercmdlets28 17Tweesoortenproblemenbijcmdlets29 18Begrijpdeverschillendesoortenhaakjes30 19Beveiligingsbeleidopordestellen32

20Eenvertrouwensrelatie(signed)vooreigenscripts33

Reference-envalue-datatypen95

Reference-envalue-vergelijkingen95 Oefeningen96

Deel2:VisualStudioCodeenPowerShellCore151

119VisualStudioCodeenPowerShellCore152

InstallatiePowerShellCore152 InstallatieVisualStudioCode152 PowerShellactivereninVisualStudioCode153 CommandPalette154 WerkomgevingvanPowerShellinVisualStudioCode155 NogmeernaareenidealePowerShell-omgeving156

Bronnen 159

Deel3:PowerShellCoregebruikeninLinux161

120PowerShellCoregebruikeninLinux162 InstallatievanPowerShellinDebian162 TheoretischwegwijsinGitHub163 InstallatievanPowerShellopeenRedHat-distributie165 WerkenmetPowerShellinLinuxinhetkort167 VisualStudioCodeinstallerenopLinux170 VerbindingopafstandopzettentussenLinuxenWindows171 Bronnen 174 Schoonmaak174

Deel4:EenCLI-netwerkomgevingindecloudenon-premises175

Introductie176

121WindowsServerCoreversusGUI176

122InstallatieWindowsServerCore177

123InstallatieHyper-VServer2019178

124InstallatieGUI-netwerkWindowsServerenWindowsClient179 Installatiedomeincontroller179 ClienttoevoegenaanhetdomeinviaPowerShell182 Eentweededomeincontrollerinhetnetwerk186

125WSCoresnelconfigureren189 OpWSCorewerkenalsdomeinadministrator189 126DHCPinstellenopDC189

GanaofdeDHCP-rolgoedwerkt190 DHCP-redundantie190

GanaofDHCP-failoverwerkt191

127DNSinstellenopDC191

128Replicatieforceren192

129ActiveDirectoryviaPowerShell193 OU-aanmaak193 Groepmaken194 Gebruikerstoevoegen194 Organisatiegerichtnadenken195 Testenenterugnaardeorigineleomgeving196 ActiveDirectoryopbouwenvia.csv-bestanden198

130PowerShellgrafischofviadeCLIbenaderen199 131EindeautomatiseringinWindowsServer201 132Microsoft365methetnetwerkverbinden201 Microsoft365-tenantopzetten202

Stappenplan(bestuitvoereninincognito-browser)202 VerbindingtussenWindowsServerendetenant202 AzurevanuitPowerShellbenaderen204 NieuwegebruikerinMicrosoft365-portaaltoevoegen206 Licentieaangebruikerstoewijzen206 BeveiligingsgroepinMicrosoft365toevoegen208 Microsoft365-groepinMicrosoft365toevoegen208 SharePoint-configuratie210 Teams-configuratie211 IntroductieinMicrosoftGraph213 133Docker 213 134ChocolateyofWinget216 135Anderescripttalen217 Belangrijkomweten218 136Scripttalencombineren218 137Extra’sinstallerenvoorinstructieverwerking218

Schoonmaak219

Deel5:PowerShell-bouwstenen221

138Scriptsenmodules222 139Scripts 222 140Functiesleidenvaaktoteenstart222 141Vanscriptnaarmodule223 142Voorbeeldvaneenmodule223 143Voorbeeldvaneenvolledigemodule224 144Scripts,modulesenfunctiesopbouwen226 Requires-statement226 Using-statement226 Commentaar226

175NieuwinPowerShell5.1,6en7300 Algemeen300 &alspipelineoperator300

Variabelentoegevoegd:$IsWindows,$IsMacOsen$IsLinux300 Toevoegingaancontextmenu300 TerugkerennaarvorigelocatieindeCLI300 Sneleenif-statementtesten301

Null-conditietesten301

Tab-completionsomsmogelijkna=301 ZoekenbinneninhoudviaPowerShell301 Eén,meerdereofgeeninstructie(s)uitvoeren301 Werkenmetexperimentelemogelijkheden302 Duidelijkerefoutweergave302 ForEach-Objectmetparameter-parallel302

Wegwijsin PowerShell

Introductie

PowerShelliseenobjectgeoriënteerdeshell-enscripttaalvoorMicrosoftWindowsmetals doeltakenteautomatiseren.Steldateenzelfdetaak200keerperjaarmoetwordenuitgevoerdendatdietaaktienminutenkost.Watis erdanbeter?Iederjaardie200takenhandmatiguitvoerenofeventijdstoppenineenscriptomdetaakteautomatiseren?Ditscript moetzowelvoormensalspctebegrijpenzijnennethiervoordientPowerShell.Hetscript omvateenuitlijninghoeeentaakperfectmoetwordenuitgevoerd.Ditbetekentdatdietaak steedsopnieuwopdezelfdemanierwordtuitgevoerdendusveiligerisdandatdemensdit handmatigzoudoen.

PowerShellstamtuit2006enerzijntweeverschillendeversies:5.1en7.X.Dezetweeversies slaanopdeklassiekeWindowsPowerShell(5.1)enPowerShellCore(7.X).Dezelaatstezalin detoekomstvooralgebruiktenalsenigeuitgebreid/vernieuwdworden,terwijldeklassieke enkelnogaanpassingenzalkrijgenvoorveiligheid(bijvoorbeeldkwetsbaarhedenoplossen).

Sommigeouderecommando’szijnindehuidigePowerShellnietmeermogelijk,maardebasisprincipesvanPowerShellzijnzogoedalsonveranderdsindsversie2.

DeklassiekePowerShellisgebaseerdophet.NET-FrameworkenPowerShellCoreop.NET Core,waardoorbeidesteedsup-to-datemoetenzijn.

.NETiseenframeworkontwikkelddoorMicrosoftenbiedteenontwikkelaarsplatformvoor applicatiesmetbibliothekenentoolswaarvanontwikkelaarsgebruikkunnenmakenomservicesmakkelijker,snellerenbetrouwbaardertegebruiken..NETFrameworkisdeoudsteenis closedsource.Hetbestaatuit:

• deCLR(CommonLanguageRuntime)diegebruiktwordtomappsuittevoerenenhet geheugengebruikindegatentehouden;

• eengrotebibliotheekmetbetrouwbare,tehergebruikencodevoorontwikkelaars.

Omdathetclosedsourceis,heeftMicrosoft.NETCoreopgerichtalsopensourcevariant,waardoorhetveelmeerinteressewektbijontwikkelaarseneveneensomdathetcross-platform gebruiktkanwordenovermeerderebesturingssystemenheen(Windows,Linux,Mac).Alles wordtingezetop.NETCore,waardoordezeversiedenieuwste,maarookdebestefeatures vanhet.NET-frameworkmoetomvatten.

PowerShellmaaktgebruikvancmdlets(commandlets).Demaker,JeffreySnover,heeftde termcmdletinhetlevengeroepenzodatviaeenzoekmachine(bijvoorbeeldGoogle)steeds relevantePowerShell-informatieterugwordtgegeven.

PowerShelliszoontworpendathetmakkelijkisomaantelerenenookeenvoudigisom scriptstelezenvanwegehetgebruikvancmdlets.Waarzitdandevalkuil?PowerShellkanin héélveelomgevingengebruiktworden,bijvoorbeeldAzureenMicrosoft365.Hetisnetindie omgevingendatPowerShellmoeilijkerwordtomtegebruikenentebegrijpen.

DecmdletsdieinPowerShellgebruiktword en,hebbenvaakeenduidelijkenaamdiedoenwat denaamzegttedoen.MetdekomstvanPowerShellCorezaleenzelfdecmdlettotdezelfde

image06

uitvoerkomen,maarwaarschijnlijkopeenietsanderemanier,afhankelijkvanhetbesturingssysteem.Dieietsanderemaniermaaktvoordegebruikernietuit,aangeziendeuitvoerhetzelfdeblijft.

PowerShellisheelkrachtigenkanzelfsmeerdanwathandmatigmeteenpcookzoukunnen. HetisbelangrijkomPowerShellsteedsalsadministratortestarten.Klikmetderechtermuisknopenkies Alsadministratoruitvoeren.BijhetopenenwordthetwoordAdministratorinde titelbalkgetoond.SindsWindows11heeftPowerShelleenzwarteachtergrondkleur.

PSstaatvoorPowerShell.HuidigelocatieishierC:\WINDOWS\system32.

DebestandslocatievanWindowsPowerShellopeen64-bitspc:

• x86:%SystemRoot%\syswow64\WindowsPowerShell\v1.0

• x64:%SystemRoot%\System32\WindowsPowerShell\v1.0

DeWindows-systeemmapsyswow64dientvoor32-bitssysteembestanden.

Waarom32-en64-bits?

Beideversieszijnnodig.Steldateen32-bitsbesturingssysteemaangestuurdmoetworden,ishetbelangrijktewerkenmetde32-bits(x86)-versie.Hetiszelfsnoodzakelijk omnategaanalseenscriptnietwerktopeen32-bitssysteemofditnietligtaande gebruikteinstructie.Ineeninstructiewordencmdletsencommando’stoegepasten hetzoukunnendatdezenietuittevoerenzijnvia32-bits.

Gelukkigwordt32-bitsopmodernesystemensteedsmindergebruiktenzijnermaar heelweiniginstructiesdienietzullenslagenomuitgevoerdtewordenopeen32-bits systeem,maarhetiswelbelangrijkhierrekeningmeetehoudenalsdezesituatiezich voordoet.

EenvoorbeeldishetcloudmanagementplatformvoorMobileDeviceManagement (MDM)vanMicrosoft:Intune.OndernemingenkunnenIntunegebruikenomonder anderealleWindows-systementebeherenenzoookPowerShell-scriptsteactiveren diemoetenwordenuitgevoerd.HiertoewordtopiedertoestelIntuneManagement Extensiongeïnstalleerd,wateen32-bitsprogrammais.Ondanksdatditeenzogoedals nieuwplatformis,wordenscriptsstandaardals32-bitsuitgevoerd.Gelukkigbestaaner verschillende64-bitsworkarounds(zolangMicrosofteenenandernognietheeftopgelost).

Bron: z-nerd.com/blog/2020/03/31-intune-win32-apps-powershell-script-installer/ Bron: docs.microsoft.com/en-us/mem/intune/apps/intune-management-extension

image7

ViahetmenuStartwordtinWindowsstandaardviermaalPowerShell(tweekeer64-bitsen tweekeer32-bits)gevondenmettweekerncomponenten:

• WindowsPowerShell–CLI–CommandLineInterface(=Shell)

• WindowsPowerShellISE–GUI–GraphicalUserInterface(=IDE-editor)

Naastdezezijnerookdooranderefirma’suitgebrachtePowerShell-editors,waarvanéén eveneensdoorMicrosoftgemaakt:VisualStudioCode.Meerzelfs:Microsoftdwingtiedereen overtestappennaarVisualStudioCode,omdatdeactieveondersteuningvoorPowerShellISE isweggevallenenVisualStudioCodecross-platformwerkt.

SurfnaardewebsitedieaangegevenstaatbijhetopenenvanPowerShellomPowerShellCore teinstalleren.OpdezewebsitevindjedenodigeinfoomPowerShellCoreteinstalleren,maar ookomouderePowerShell-versiesvoorWindowsteinstalleren.

ZowordtgeleerddatPowerShellsindsWindows7standaardmeegeïnstalleerdwordtviaeen WMF-installatiepakketbijdeWindows-installatie.WMFstaatvoorWindowsManagement Frameworkenbevatallerleibronnendiealssysteembeheerdergeraadpleegdkunnenworden, zoalsPowerShell,WinRMvoorCLIopafstand,WMI-enCIM-bevragingenomondermeer hardwareaantesprekenenzovoort.

DeinstallatievanPowerShellCoreenhetgebruikvanVisualStudioCodekomtpaslateraan bod.EerstwordtallesuitgevoerdinWindows PowerShell5.1enWindowsPowerShellISE.

Voeruit:

$psversiontable

Dezeuitvoerverteltwelkeversieenversienummergebruiktwordt.

Opmerking

OnderzoekwijstuitdatbeginnersenexpertsinPowerShellongeveerdezelfdekennis hebbenintheorie,maarinpraktijkkunnenexpertsveelsnellerproblemenoplossen.

Opmerkingenbijdeoefeningen(virtualisatiehulpopvolgendepagina)

MaaktweenieuweVM’s(clientenserver)inVirtualBoxofVMWare.Hyper-Vkanook,maarwordt inditboeknietuitgelegd.DeEvaluation-versieswordengebruiktdieWindowsgratisaanbiedt:

• Windows10Enterprise(wordtnoggebruiktomvirtualisatieproblementevermijden)

• WindowsServer(zoals2022)–Standard EvaluationDesktopExperience

• Nieuwereversieskunnenookgebruiktworden.

Downloadenkanvanaf microsoft.com/en-us/evalcenter.KiesaltijdhetEngelstalige.ISObestandenzorgdattijdensdownloadenendeinstallatiedeinternetverbindingactiefblijft!

DeVM’sbevattenelk50GB(dynamisch)aanopslagruimteendeNAT-NIC-instelling.Deserver bevat4GBRAMmettweevirtueleprocessorkernenendeclient2GBRAM.Opbeidemachinesmogendeadditions/VMWareToolsgeïnstalleerdworden.BijbeideisdetaalEngels(US). Time-&Currencyendekeyboard-optiewordtvolgenswatdegebruikerstandaardgebruikt, ingesteld.

Bijdetweeinstallatieswordt Custom gekozenendevolledigeschijfruimtevan50GB.

HetadminaccountopdeserverkrijgthetwachtwoordServer*netnainstallatieenbijde blauwebalkvanNetworkwordt Yes geselecteerd,zodatNetworkdiscoveryinordeis.Na installatiewordtbijdeclientdegebruikersregiogekozenmetdegepasteKeyboard-layout. Vervolgens: domainjoininstead linksonderwaarbijgebruiker ict wordtaanmaaktmet wachtwoord Server*.Beantwoorddedrievragenmetwillekeuriglangewaardenvoorde veiligheid.

Server*

HetwachtwoordServer*zaltijdensdegidsvaakaanbodkomen.Alsopmerkinghierbij kangegevenwordendat*geengoedtekenisomtegebruiken,omdat*ookalsjokertekendienstdoet,waardooreenonderliggendsysteemdittekenverkeerdkaninterpreteren.MaarhedendaagsesystemenmoetenhiermeeomkunnengaanenServer* heefttweevoordelen:hetissneltetypenenmakkelijkteonthoudenalswachtwoord voortestscenario’s.

Vervolgenswordtopallevragendetweedekeuzegekozen(meestal No).Deinstallatieszijn danvoltooid!Maareerst:sluitbeidemachinesafenmaakeensnapshot!Installeerhiernade VM-additions/VMWareTools(typical)opbeideVM’s,sluitopnieuwafenmaaksnapshots.

• PowerShellenPowerShellISEwordenaltijdgestartalsadministrator.

• Indieneenpc-naam,gebruikersnaamenzovoortgetyptmoetworden,wordtverwachtdat diteenlogisch(=bestaand)itemis.Inditboekwordtdatdanonderstreeptweergegeven, bijvoorbeeld:pcnaam.Hetisookmogelijkdateenstuk cursief staat,watwijstopoptionele invoer.Bijvoorbeeld:-credential werkgroep/gebruikersnaam

• Alleoefeningenkunnenopdeclientofdeserver wordenuitgevoerd,tenzijandersvermeld.

• Allebestandenwordenbewaardindemappenaangegeventijdensdeoefeningen.

• AlsietsuitgevoerdmoetwordeninPowerShellCore,danzalletterlijkPowerShellCorein deopdrachtstaan.

OracleVirtualBoxenVMWare:OracleVirtualBox

Downloaddezesoftwarevanaf virtualbox.org.Virtualboxisdeidealegratisvirtualisatiesoftwareomtestenuittevoerenviavirtuelemachines.Bijdezeversiekanmakkelijkgebruik wordengemaaktvansnapshots,waardoordetoestandvaneenVM(virtuelemachine)kan wordenopgeslagen.

NainstallatievanVirtualBox,wordtookdeVMVirtualBoxExtensionPackgeïnstalleerd(eveneenstedownloadenvanaf virtualbox.org),watnogmeeroptiestoevoegtaanhetreeds geïnstalleerdepakket.Bijeenupdateofandere versie-installatievanVirtualBoxmoetde ExtensionPackopnieuwgedownloadengeïnstalleerdwordennaardegewijzigdeversie.

BijheteerstemaalopenenvanVirtualBox:klikop Bestand, Voorkeuren enkiesdestandaardmapwaardevirtuelemachinesopgeslagenmoetenworden(bijvoorkeuropeenSSD).

NahetinstallerenvaneenbesturingssysteemopeenVM,kunnendeGuestAdditionstoegevoegdwordenaandeVM.DezebiedentalvanextramogelijkhedenvoordeVM(guest)als onderdeelvandefysiekepc(host).

Werkenmetsnapshots(momentopnamesvande virtuelemachine)wordtalsvolgtgedaan:

Klikopdeknopenkies Snapshots.Vervolgenswordenanderemenuknoppengetoond.

Huidigestaatisgeselecteerd.KlikopNemenwaarbijdesnapshotNaInstallatiewordt genoemd.

DesnapshotnoemenweNaInstallatie.

Vanafnukangekozenwordendevolgendeinstructiesmeetedoenoftebegrijpenwat gebeurtaandehandvandeafbeeldingen.Klikop Nemen vooreensnapshotvandehuidige staat.

image9 image10

NaGuestAdditionstehebbengeïnstalleerd, wordtopnieuweensnapshotvandehuidigestaat gemaakt.Voordateennieuwesnapshotwordtgemaakt,ishetverstandigdeVMteherstarten.

Omnuallemogelijkhedenuitteleggen,iserpersnapshotééntekstbestandextraophetVMbureaubladgeplaatstmetalstiteldeletterdiehetzelfdeisalsdesnapshotnaam.

Dehuidigestaatbevatdusmomenteeleenbureaubladmettekstbestandend,e,feng.txt.Klik metderechtermuisknopopsnapshotfenklikop Restore.Hetvolgendegebeurt:

Snapshotgbestaatnog,maardehuidigestaatisaangepastnaardemomentopnamevan snapshotf.

image13

Snapshotgbestaatnog,maardehuidigestaatisaangepastnaardemomentopnamevan snapshotf.Nahetstartenvanafdehuidigestaat,istekstbestandg.txtverdwenenvanafhet VM-bureaublad.DeVMwordtopnieuwafgesloten.

Erwordtnuhersteldvanafsnapshotg.Erwordtgevraagdofernogeersteensnapshotgenomenmoetwordenvandehuidigestaat (ditkan,maarisnunietnodig).

Schakelditvinkjeuit.

Bijhetopenenvandenieuwehuidigestaat,staatg.txtopnieuwophetVM-bureaublad.

Nuwordtgekozenomsnapshotfteverwijderen.Klikop Verwijderen.Eventueelkanhetlang durenvoordathetverwijderenisvoltooid.Inditgevalisditnietzo,aangeziendesnapshots amperietsbevatten.

KlikopVerwijderen.

image14

image15

Snapshotfisnuverdwenen.

Dehuidigestaatblijfthetzelfde:alle.txt-bestandenstaannogophetVM-bureaublad.

Steldatnusnapshotgwordtverwijderd,danblijftdehuidigestaathetzelfdemetalle.txtbestandenophetVM-bureaublad,totwanneereenrestorenaareeneerderetoestandheeft plaatsgevonden.

image17

image18

Nuishettijdomterugtekerennaardeoorspronkelijkestaat:herstelvanafNaGuestAdditions enverwijderdaarnadeovergeblevensnapshotsdene,indienditmeeuitgevoerdwerd.

DeVMopnieuwstartenkanenkelenalleenvanafdehuidigestaat!Bijopstartzalgemerkt wordendatgeenvandetekstbestandennogaanwezigis.

HetkanhandigzijnomeerstdevolledigeVM-mapteback-uppen,voorterugtekerennaar eenbepaaldesituatie.GahiervoorinVerkennernaardelocatievandeVM.

VirtualBoxheeftsomsvolgendeeigenaardigheden:

• naeentijdbeginnendeVM’ssteedstragertewerken;

• naeenupdatevanVirtualBoxwerkendeVM’sdiealbestondenhallucinanttraag.

HopelijkzijndezeproblemenmetdenieuwereversiesvanVirtualBoxverledentijd.Eventueel kanhetvolgendewordentoegepast:verwijderVirtualBoxzonderdeVM’seninstalleerde meestrecenteversieopnieuw.DaarnakunjeeennieuweVMmakenendevirtuelevaste schijfvandeoudeVMhieraankoppelen.

OracleVirtualBoxenVMWare:VMWare

NaastVirtualBoxisookVMwarebekendevirtualisatiesoftware.Degratisversiehiervanheet VMwareWorkstationPlayermaarheeftgeensnapshotfunctieaanboord.Omvirtueleapparatenzoalseenvasteschijftoetevoegen,moetdegebruikeradministratorzijn.

Daaromwordtvoorgesteldomtewerkenmet VMWareindienVMWareWorkstationPro gebruiktkanworden.Metdezeversieishetwelmogelijkommetsnapshotstewerken.Het kannamelijkgoedmogelijkzijndatteruggekeerdmoetwordennaareeneerderetoestand omdateenPowerShell-instructiedestaatvanhetbesturingssysteemheeftbeschadigd.

VoorVMWarekomthetgebruikvansnapshots opdezelfdemanierneer.Klikmetderechtermuisknopopdenaamvandevirtuelemachineenkies Snapshot

HierkaneensnapshotgenomenwordenofkanviadeSnapshotManagerteruggekeerdwordennaareeneerderesnapshot.

SnapshotManager.

image19 Onderaanstaanenkeleknoppendiezeerinteressantzijn.

Optiesvoorsnapshots.

image21

• Clone Letterlijkeenkopiemakenvanafeentoestand.

• GoTo Alsgekliktwordtopeeneerderesnapshot,isditdeknopomterugtekerennaar diesnapshottoestand.

• AutoProtect Ditiseenfunctiediedagelijkshetzelfingesteldeaantalsnapshotsautomatischaanmaakt.Eensoortvanback-up,diestandaardnietwordtgeactiveerd.

BijhetmakenvaneenVMmoetenenkelekeuzeswordengemaakt:

• EerstwordtdeWindows-versiegekozenvoorinstallatie.Staathiergeen64-bitsbij,dan moetwaarschijnlijknogdehardwarevirtualisatieaangevinktwordenindeBIOS-ofUEFIinstellingenvandeCPUbijhetbootenvandehost(hetfysieketoestel).

• BijdenieuwsteWindows-versiesstaatHyper-Vstandaarduit,maarcontroleerditook evenophetfysieketoestel: Configuratiescherm (kleinepictogrammen), Programma’sen onderdelen, Windows-onderdelenin-ofuitschakelen of Instellingen, Apps, Optionele onderdelen, MeerWindows-functies (onderaan).OpenalleplusjesbijHyper-Venkijkna ofergeenenkeleisaangevinkt.MochtVMwareopdepcgeïnstalleerdzijn,danisditnormaalgeenenkelprobleemomVirtualBoxtegebruikenenomgekeerd.

• DaarnamoetdekeuzeinRAMgemaaktworden.

• Vervolgensmoetendekeuzesbetreffende deschijfwordengemaakt.Kiesvoordynamischetoewijzing.Ditbetekentdatdeschijfruimteopdefysiekeschijfenkeldatzalinnemen watopdevirtueleschijfisgebruikt.Steldatdit16GBisnainstallatievanWindowsopde VM,danwordteropdefysiekeschijfmaar 16GBgebruikt.Viadeandereoptiewordt meteengekozenom50GBvandefysiekeschijftebenutten.

KliknahetmakenvandeVMopdenaamervanenkiesInstellingen,waarbijvolgendezaken wordengecontroleerd(demeesteinstellingenkunnenookgewijzigdwordenterwijldeVMin gebruikis):

• InstellenRAM.

• Processor:eventueelmeerkernengeven,ditkanopgezochtwordenviaWindowsTaakbeheer,Prestatiesenbekijkhoeveelkernen ergebruiktworden(opdetabProcessor). Deelhetaantalkernendoor2omhieropaftestemmen.BijvoorbeeldvierkernenbetekentmaximaaltweevirtueleCPU’suitdelenaandeVM.

• Voeghet.iso-bestandtoeomtekoppelenzodathetbesturingssysteemwordtgeïnstalleerd.

• NetwerkinschakelenopNATofNAT-netwerk:dezeoptiezorgtervoordatdevirtuelenetwerkkaarteenIP-adreszalkrijgenvandezogehetenvirtueleNAT-router,waardoordeVM zichnietinhetzelfdenetwerkzalbevindenalsdefysiekepc.Veiligheidsbewustzijn!Via eenbridgezaldeVMzichwelinhetfysiekenetwerkbevinden.

Nadittelezenenuittevoeren,staandevirtuelemachinesklaarommeeaandeslagtegaan! NainstallatievanWindowsServerwordtgevraagdomCtrl+Alt+Delintedrukken:

• InVirtualBoxisditoptelossendoorenkelderechter-Ctrl-toets+Delintedrukken.De rechter-Ctrl-toetsisdehosttoets.Dezemoetbijvoorbeeldookingedruktwordenalsde cursornietbuitendeVMgeraaktofomvolledigbeeldtegeven:Ctrl+F.

• InVMWareisditoptelossendoorindemenubalk VM tekiezenenvervolgens Send Ctrl+Alt+Del.Omteschakelentussenhost-enguest-OSwordtgebruikgemaaktvanlinkerCtrl+Alt.

Hetisaanteradenomvanafnualleoefeningen indevirtuelemachinestemaken,zodathet fysieketoestelgeenschadelijdt.Hiertoekunjedebestandenmetinstructieregelsuitde bestandsmapgebruiken.BijVirtualBoxkiesjeopelkeVM Apparaten, Drag-and-drop, Bidirectioneel inhetmenu.Ditmaakthetslepenvanbestandenenmappenmogelijk.Kopiërenen plakkenwerktvaakniettussenfysieke envirtuelemachine;vandaarslepen.

1Aandeslag

StartPowerShellnietalsadministratoropdeclientenserver.Dehuidigelocatieszijn:

• Client:PSC:\users\ict>

• Server:PSC:\Windows\system32> ofPSC:\Users\Administrator>

Typ exit inbeideCLI-schermenenstartPowerShellopnieuwalsadministrator.Delocatieszijn nu:

• Client:PSC:\Windows\system32>

• Server:PSC:\Users\Administrator>

Typ exit indeCLIvandeserverensluitdeservervolledigaf,omdatdeserverpaslaternodig is.Deinstructiesdieopdeclientwordenuitgevoerd,zijnookvantoepassingopdeserver.

Voervanafnuallesuitopdeclient.Voerdecmdlet get-childitem uit.Dezecmdlettoontalle onderliggendemappenenbestanden.

Typ powershell,waardooreennieuweWindowsPowerShell-sessiestartinhetzelfdePowerShellvenster.Ditkanhandigzijnomeenvolledigenieuwesessietestarten.

Typtweemaal exit,waardoorbeidesessiesinWindowsPowerShellafsluiten.

2Eersteinstructieuitvoeren

Metinstructiewordthetuitvoerenvan een(reeks)opdracht(en)bedoeldvanafeen PowerShell-sessie.Binneneenopdrachtkunnenéénofmeerderecommando’sgebruiktworden.Zoalsreedsbekend,wordtinPowerShelldenaamcmdletgebruiktinplaatsvancommandoindienhetgaatomeenPowerShell-commandoof-functie.

OpenPowerShellopdeclientalsadministratorenvoeruit: rename-computer-newname“psclientInitialen”

Merkopdatgevraagdwordtomdepcopnieuwoptestarten.Voeruit: restart-computer

ControleernadeherstartzowelgrafischalsinPowerShellofdenaamswijzigingisdoorgevoerd.StartPowerShellentypdeglobalevariabele: $env:computername

3GebruikmakenvanWindowsPowerShellISE

MeestalwordtdeCLIgeopendvoorhetgebruik vanmakkelijkecmdletsofhetuitvoerenvan werkendescripts.IndeontwikkelingvanWindowsPowerShellwerddevraagsteedsgroter naareenIDE(IntegratedDevelopmentEnvironment)omzelfgebruiksvriendelijkescriptste creëren.DitwerdmogelijkviadeimplementatievanWindowsPowerShellISE(Integrated ScriptingEnvironment).

WindowsPowerShellISEbestaathoofdzakelijkuiteenscriptpaneel(1)eneenconsolepaneel (2),dieondermeergebruikmakenvanIntelliSense(3;automatischsuggestiesaanbiedenwat bijdecodekanhoren)eneencommandview(4),waardoorcmdletssnelencorrectgevormd kunnenworden.Deweergavekanaangepastwordenviahetmenu View indemenubalk.

DaarnaasttoontdeISEookkleurenomeencmdlet,functie,variabeleofandertypetekstaan tegeven.Erkanmeteengestartwordenmettypeninofwelhetscript-ofhetconsolepaneel. Hetverschilligtheminhetgebruikvanhetaantalregels.

Inhetscriptpaneelkunnenenkeleregelscodeonderelkaargeplaatstwordenzonderuitte voeren.Druk,wanneergereed,opF5ofopdeknop RunScript endeoutputverschijntinhet consolepaneel.

Indiendeuitvoerperregelmoetwordengetoond,wordtgebruikgemaaktvanhetconsolepaneel,waarbijeenregelgetyptwordtensteedsbevestigdwordtmetEnter.DitkomtophetzelfdeneeralsgebruikvandeCLI,metalsvoordeelhetgebruikvanIntelliSense.

Werkbalk. 12345678

Knoppenopdewerkbalk:

1 Maakconsolepaneelleeg

2 RunScript(F5)

3 RunSelection(F8):voergeselecteerderegelsuit

4 StopOperation(Ctrl+spatie)

5 NewRemotePowerShellTab:activeerremotesessiemetandereclient

6 StartPowerShell.exe:StartCLI

7 Startcommandviewinnieuwvenster

8 Tooncommandviewrechtsinhetzelfdevenster

Oefening

StartWindowsPowerShellISEenzorgdathetscript-enconsolepaneelendecommandview zichtbaarzijn.Eventueelwordtop View gekliktombepaaldevensterstetonenen/ofrechtsbovenomhetscriptvensteropenteklappen.

1 Typinhetscriptpaneeldetekst cdc:\ endrukopEnter.

2 Typdevolgenderegel: get-childitem.

3 VoeruitviaF5ofdeknop RunScript enbekijkdeuitvoerinhetconsolepaneel.

4 Typ exit inhetconsolepaneel,waarbijgevraagdwordtomhetscriptopteslaanalseen .ps1-bestand.Klikop Ja,maakeennieuwemap PowerShell-scripts ophetC:\-stationen slahetbestandopmetdenaam itemsOpStationC.ps1.

5 GanaardemapPowerShell-scriptsendubbelklikopitemsOpStationC.ps1,waarbijKladblokopent.Tip:kijkookevennaofde.ps1-extensiezichtbaaris.Zoniet,maakzedan zichtbaar(Beeld, Bestandsnaamextensies of View, Extensions).

image25

PowerShellisstandaardbeveiligdtegenhetopenenvanbestandenmetPowerShell-extensie. Endatismaargoedook,wanthetwoordPowerverwijstnaarkrachtigenPowerShellkan inderdaadmetééntotenkelecmdletshetbesturingssysteemflinkbeschadigen.Inplaatsvan PowerShellwordtKladblokgeopend,waarbijtweeregelswordengetoond.Merkopdatde regelmet exit nietgetoondwordt.KlikmetderechtermuisknopopitemsOpStationC.ps1en voeruitinPowerShell.

image27

IndieneenmeldingwordtgetoondbetreffendeExecution-Policy,isditvrijnormaal.DrukopA omhetscriptuittevoeren.OpdezeExecution-Policywordtlaterteruggekomen,aangeziendit voorPowerShellzeerbelangrijkis.Typ set-executionpolicyremotesigned bijproblemen. HetscriptwordtineenmumvantijdinPowerShelluitgevoerd,maardeuitvoerwordtniet getoond.Datisnietfijn.Dubbelklikopnieuwophetbestand,voeginKladblokalslaatsteregel hetwoord pause toeenslaopmetCtrl+S.KlikopnieuwmetderechtermuisknopophetbestandenvoeruitinPowerShell.SluitafdooropEntertedrukken.HeteerstePowerShell-script iseenfeit!Tip:vervang pause door start-sleep5

Uitvoer.

4VisualStudioCode

StandaardwordtdeIDE-omgevingWindowsPowerShellISEgeïnstalleerdviaeenWindowsinstallatie.Ditgebeurtnatuurlijknietopanderebesturingssystemen,waardooreenIDEvoor PowerShellCoreontbreekt.

ViadeinstallatievanVisualStudioCodewordthetmogelijkomPowerShellExtensionsteactiveren,waardoorVisualStudioCodegebruiktkanwordenalsIDEvoorPowerShellopandere besturingssystemen.Belangrijkomteweten:

• GebruikPowerShellISEwanneercodeopWindowsuitgevoerdmoetwordenendezenog voldoetvoorPowerShellversie5.1,maarweetdatdezeISE-versiegeenoptimaleondersteuningmeerheeft,waardoorbekendebugseventueelnietmeerwordenopgelost.

• GebruikPowerShellISEopWindowsalseennietkant-en-klaarscriptspeciaalvoorWindowsmoetwordenuitgevoerd,zodatfoutenduidelijkeraangetoondworden.

• GebruikVisualStudioCodeinalleanderegevallen.

DeinstallatievanVisualStudioCodevolgtindeel2vanditboek.

5TypischePowerShell-opmerkingen

Vaakzalgebruikwordengemaaktvaninstructiesdietemakenhebbenmetservicesenprocessen,omdatdieveelkunnenaantonenzonderdepcofdevirtuelemachinetebeschadigen.Er zijnnogenkeleaanvullendezakendiewerkenmetPowerShellvergemakkelijken:

• PowerShellisniethoofdlettergevoelig.Decmdletsenmeerdiegebruiktworden,zullen vaakmetofzonderhoofdletterindeopgegeveninstructiesstaan.

• PowerShellhoudtrekeningmetwatdegebruikeralkent.Linux-gebruikerswerkenveelin eenCLI(CommandLineInterface)enmakendaarvooronderanderegebruikvanUNIXcommando’s.Windows-gebruikersdievroegerveelmetCMD(Opdrachtprompt)werkten, gebruikenookverschillendecommando’s.

Aldezecommando’szijninPowerShellgeïmplementeerd,waardoorheelwatcmdlets alternatieven(aliassen)hebben.

• Decmdletget-childitemkanbijvoorbeeldgebruiktwordendoor dir (commandoin Windowsvoordirectory)ofls (UNIX-enLinux-commandovoorlist)tetypen.

Oefening

1 StartPowerShellenganaarlocatieC:\: cdc:\ of cd\ indiendeC-partitiealactiefis.

2 Voerachtereenvolgensdecommando’s ls en diruit. Indiencorrectuitgevoerd,wordt tweemaaldezelfdeoutputgetoond.

3 Typ get-ch endrukdaarnaopdetabtoets.Get-Childitemwordtsnelgetoond. Tab-completion iseentoevoegingomsnellerbinnenPowerShelltewerken. Daarnaastkanalsaliasvoordecmdletget-childitem, gci gebruiktworden,wat get-childitemafgekortisenindelijstvanaliassenisopgenomen: get-aliasgci.

6Houdrekeningmetiedereen

StartPowerShellISEenvoegvolgendecodetoe:

cdhkcu:\Software

new-itemNSleutel

new-itemproperty-pathNSleutel-nametest-value“testwaarde”

Eentoepasselijkenaamvoorditscriptzoukunnenzijn:AanmaakRegistersleutel.ps1.

Slaopals.ps1-bestandmetdezegekozennaam enbewaarindemap“PowerShell-scripts”.

Bovenstaandscriptzouvoordegebruikerduidelijkerzijnmetcommentaar.Commentaarkan inPowerShellwordentoegevoegdvia#vooreenenkeleregelen<##>voormeerdereregels.

Voegbovenaanhetvolgendecommentaartoeaanhetscriptendaarondereenapartecommentaarregel:

<#-------------------------------------------------

Auteur:naam

Datum:datum

Functie:registersleutelen-waardetoevoegenaanHKCU–Software -------------------------------------------------#>

cdhkcu:\Software

new-itemNSleutel#Toevoegenregistersleutel new-itemproperty-pathNSleutel-Nametest-value“Testwaarde”

#waardetoevoegenaanregistersleutel

Slahetscriptopnieuwopenvoeruit.Vooriederegebruikerishetnuduidelijkwathetscript doet.OpenRegeditengaopzoeknaardegemaaktesleutel.Verwijderdezehandmatig.

7Escapeteken

InPowerShellwordt`(backtick)gebruiktalsescapeteken.Zoekdezeophettoetsenbord. Indienhettekennietgevondenwordt,kan eenkopiewordengemaaktvandittekenopeen websitewaarhetgevondenwordtviadezoekterm escapecharacterpowershell inGoogle. Eenescapetekenkanlaterineeninstructiehandigzijn.Enkelevoorbeelden:

• `t=tab

• `n=nieuweregel

Bijvoorbeeld: "Nieuwe`nregel">c:\powershell-scripts\escape.txt.Openhetbestanden merkopdatNieuweopdeeersteregelstaatenregelopdetweede.Tochkanhetzijndat

bepaaldetekstprogramma’sditnogopéénregelweergeven.Omditoptelossenmoet `r toegevoegdwordennetvoor `n.

Oefening

StartPowerShellenklikmetderechtermuisknopindetitelbalk.Besteedongeveertweeminutenaandeverschillendeinstellingenvandeshell.Deshellkanbijvoorbeeldaantrekkelijker wordengemaakt.Hetisbijvoorbeeldbelangrijkomeengoedlettertypetekiezenomhetverschiltezientusseneenaccent’enhetescapeteken:`.

Hetescapetekenkanookgebruiktwordenomeencoderegelaftebrekennaareenvolgende regel,wathetlezenvandecodesomsvergemakkelijkt.Ditwordtindevoorbeeldensomstoegepast,omaantegevendateeninstructieopéénregelhoort.

Pasgeenkleurenaan,tenzijditechtgewenstis.Hetisnamelijknietmakkelijkomterugte kerennaardestandaardeigenschappenvanPowerShell.

Nietalleinstellingenvoorhetuiterlijkvande PowerShell-CLIkunnengrafischaangepastworden;eenvoorbeeldisdetitelwijzigenvandegestartesessie.Voerdaarvoordevolgende instructiein:

$host.ui.RawUI.WindowTitle=“Administrator:NieuwesessievanNaamVoornaam”

8Cmdlets

Waaromget-childitemgebruikenalshetookkorterkanmetdir?JeffreySnover,demakervan PowerShell,wildecommando’simplementerendieduidelijkwareninhetgebruikvanhetsysteem.Eencmdletwordtsteedsgevormdvia verb-noun,waarbijhetwerkwoord(verb)algemeenverteltwathetcommandozaldoenenhetzelfstandignaamwoord(noun)daarnahet commandospecificeert.Vaakvoorkomendeverbszijn add, clear, convertFrom, convertTo, disable, enable, export, get, set, new, remove, import, start, stop, test, write.Zeallemaal zienkanvia get-verb

invoke iseenandereveelgebruikteenspecialeverb,dievooralwordtgebruiktbijsessiesop afstandomeeninstructieuittevoeren.Denkbij invoke aandeNederlandsevertaling“beroep doenop”.

Enkelebasis-cmdletszijn compare-object, sort-object, select-object, convertFromSecureString, Get-Alias, New-Alias, Get-Command, Get-Credential, Set-Date, GetExecutionPolicy, Get-Host, Set-Location, Stop-Process, Remove-PSDrive, Get-Service, Set-Variable, Read-Host. Uitbovenstaandevoorbeeldenkunjealsnelafleidenwaarvoordeverbofdecmdletstaat.

Merkopdatcmdletsaltijdinhetenkelvoudeindigen:bijvoorbeeld get-service enniet getservices.

Turn static files into dynamic content formats.

Create a flipbook
Issuu converts static files into: digital portfolios, online yearbooks, online catalogs, digital photo albums and more. Sign up and create your flipbook.