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