I forrige artikkel i denne serien, viste jeg deg hvordan du oppretter et eksempel skript som er designet for å være sikker på at Hyper-V-rollen ble installert på en server som heter lab4. I denne artikkelen vil jeg vise deg hvordan du bruker skript som vi opprettet tidligere. Etter at jeg ønsker å komme tilbake til manus og viser deg hvordan du kan tilpasse den til å gjøre det mer nyttig
For ordens skyld referanse, her er det script som vi bygde i forrige artikkel.
Konfigurering PoseyConfig {Node “ lab4 ” {WindowsFeature HyperVExample {Sørg = “ Present ” Name = “ Hyper-V ” }}}
Det første vi må gjøre er å skape et sted på serveren for skriptet vårt til å ligge. Ved anvendelsen av denne artikkelen, jeg kommer til å plassere skriptet i en mappe som heter C: \\ DSC. Jeg opprettet mappen ved å åpne Powershell og oppgi disse kommandoene:
CD \\
MD DSC
Du kan se hvordan dette ser ut som i figur Figur A:. jeg har laget en mappe som heter DSC nå trenger vi å kopiere manuset til mappen som nettopp ble opprettet. Den enkleste måten å gjøre dette på er å skrive (eller kopier og lim inn) skriptet inn Notepad og lagre deretter Notisblokk dokumentet inn i C:. \\ DSC-mappen Det er tre viktige ting du må huske på som du oppretter skriptet. Først av alt, hvis du kopiere og lime inn manuset mitt da blir du nødt til litt endre manuset. Husk at lab4 (som er referert i skriptet) er navnet på en av mine lab servere. Du må endre dette for å matche navnet på din egen server. Som et alternativ til å angi et servernavn, kan du bruke localhost å gjøre manuset maskinen uavhengig. Den andre viktige ting å huske er at manuset er skissert ovenfor er egentlig bare en funksjon. En funksjon doesn ’ t gjøre noe av seg selv. Du kan bare påberope en funksjon ved å kalle det. Den enkleste måten å gjøre dette på er å legge til funksjonsnavnet til slutten av skriptet. Siden min funksjon er PoseyConfig for eksempel, ville jeg legge PoseyConfig til slutten av skriptet. Den komplette manuset ville se slik ut: Configuration PoseyConfig {Node “ lab4 ” {WindowsFeature HyperVExample {Sørg = “ Present ” Name = “ Hyper-V ” }}} PoseyConfig Den tredje tingen som du trenger å vite om manuset er at du må lagre filen med .PS1 forlengelse. Dette identifiserer koden som et Powershell script. Jeg skal navngi filen PoseyConfig.PS1. Når du har opprettet skriptet, kan du gå videre og utføre skriptet. Ved å gjøre det, må du referere til navnet på skriptet. I mitt tilfelle, er skriptet heter PoseyConfig.PS1. Derfor har jeg kjørt skriptet ved hjelp av følgende kommandoer: CD \\ CD DSC ./PoseyConfig.ps1 Du kan se hva dette ser ut som i figur B. Figur B:. Dette er hva det ser ut når du kjører skriptet Hvis du tilfeldigvis får en feilmelding når du kjører skriptet, det kan være relatert til en restriktiv utførelse. Du kan fjerne henrettelse politiske restriksjoner ved å skrive inn følgende kommando: Set-ExecutionPolicy Fri Bare husk at gjennomføringsreglene eksisterer for å beskytte deg, så det er en god idé å sette henrettelsen politikk til Begrenset eller til RemoteSigned når du er ferdig. Som du kan se i figuren ovenfor, har manuset opprettet en MOF-fil. Den MOF filen heter Lab4.MOF og den finnes i mappen C: \\ DSC \\ PoseyConfig mappen Så så jeg forklarte tidlig i denne serien, skript som vi skapte virkelig doesn ’ t gjøre noe med. seg selv. Skriptet ’ s jobb er å generere en MOF-fil, for ikke å håndheve en ønsket tilstand. Vi må bruke MOF-filen til å generere en ønsket tilstand. En MOF-fil er egentlig ikke noe mer enn en tekstfil som inneholder konfigurasjonsinformasjon. Som et spørsmål om faktum, kan det MOF-fil som vi opprettet være åpne i Notepad. Du kan se innholdet i MOF-filen i figur C. Figur C:. Dette er hva MOF-filen ser ut Selvfølgelig er dette bringer opp et interessant spørsmål. Hvis MOF-filen er egentlig bare en tekstfil så hvorfor har vi til å generere den ved hjelp av en Powershell konfigurasjon script? Hvorfor kan ’ t vi bare bygge en MOF-fil manuelt? Det er faktisk mulig å konstruere en MOF-fil manuelt, men det er vanligvis lettere å bruke en Powershell funksjon for å generere en MOF-fil enn det er å lage en MOF-fil fra bunnen av. Jeg innser at filen vist ovenfor isn ’ t veldig komplisert, men husk at vi bruker en enklest mulig ønsket tilstand Configuration. De fleste reelle ønsket statlige konfigurasjoner er mye mer kompleks og derfor generere mye lengre og mer komplisert MOF filene. Så nå som vi har en MOF-fil, hva gjør vi med det? Vi kan påberope seg MOF-filen ved hjelp av en Powershell cmdlet kalt Oppstart DscConfiguration. Denne cmdleten leser MOF-fil og deretter bestemmer hvilke Powershell cmdlets må kjøres for å oppnå konfigurasjons mål. For eksempel er skript som vi har brukt designet for å teste for tilstedeværelse av Hyper-V-rollen. Som sådan, en av de cmdlets som drives som en del av testprosessen er Get-Windows Feature Med det sagt, la ’ s. Gå videre og sette vår MOF-filen til å fungere. For å gjøre dette, må du starte Start-DscConfiguration kommandoen fra C: \\ DSC-mappen som vi opprettet tidligere. Kommandoen som vi skal bruke er:. Start = DscConfiguration – Vent – Verbose – bane \\ PoseyConfig – Vent parameter forteller Windows at du ønsker å kjøre kommandoen interaktivt. Den – Verbose bryteren forteller Windows at du vil ordrik utgang. . På den måten kan du se hva som egentlig skjer med kommandoen Du vil også legge merke til at vi bruker –. Sti bryteren etterfulgt av \\ PoseyConfig. Grunnen til dette er at Windows plassert min MOF-filen i en mappe som heter PoseyConfig som eksisterer som et barn av DSC-mappen. Hele banen er C: \\ DSC \\ PoseyConfig Du kan se hva som skjer når vi kjører kommandoen i figur D. Fordi vi kjørte kommandoen i verbose-modus, kan du se Get-WindowsFeature cmdlet som var. brukes til å verifisere at Hyper-V er installert på tjeneren. Du kan også se at kommandoen tok 15.041 sekunder å fullføre Figur D:.. Her er hva som skjer når vi kjører kommandoen Jeg er klar over at noen av dere kanskje lurer på hva som skjer hvis vi kjører kommandoen uten detaljert modus. Du kan se at resultatet i Figur E. Figur E: Her er kommandoen uten – Verbose parameter som brukes Som du kan se i figuren over, er det ingen synlige. utgang uten Verbose parameter. i neste artikkel i denne serien, jeg ønsker å gjøre et par ting. Først skal jeg vise deg hva som skjer når du kjører skriptet mot en server som ikke har den nødvendige rollen installert. Neste, jeg ønsker å bruke litt tid på å vise deg noen andre ting som du kan gjøre med manuset. På den måten vil du være i stand til å bygge skriptet ut til å virkelig oppnå dine ønskede innstillinger.
Konklusjon