Distribusjon av Windows 7 - Del 22


Tips Bilde:
Du kan finne mer informasjon om automat LTI distribusjon i Windows 7 Resource Kit fra Microsoft Press. Jeg er hovedforfatter for denne Resource Kit og jeg også opprettholde Unofficial brukerstøtte for Windows 7 Resource Kit med svar på spørsmål postet av leserne, samt linker til de nyeste ressursene på Windows 7 utrulling, administrasjon og feilsøking.

I tidligere artikler i denne serien har vi undersøkt hvordan du konfigurerer og bruker MDT database for Lite Touch distribusjoner. For eksempel i artikkel 16 så vi hvordan du kan bruke Deployment Workbench å legge til nye målgrupper datamaskiner til databasen, slik at du kan tilpasse utrulling av Windows 7 basert på MAC-adressen eller UUID av hver målmaskin. Å gjøre dette manuelt ved hjelp av Deployment Workbench er kjedelig men-hva om du har dusinvis eller hundrevis av datamaskiner du ønsker å legge til databasen?

Det er der Windows Powershell kan være nyttig siden det tillater deg å skrive skript for å automatisere kjedelige administrative oppgaver. Mens MDT 2010 nå har innebygd Powershell-støtte, betyr det ikke inkluderer cmdlets for å manipulere MDT database. Imidlertid har Michael Niehaus utvikleren av MDT opprettet en egen Powershell-modul du kan bruke til å legge Powershell støtte for å manipulere MDT database. Denne artikkelen viser hvordan du importerer denne modulen og bruke Powershell til å ta et regneark med målmaskinen informasjon og bulk import denne informasjonen inn i MDT database som nye data elementer

Merk:.
Denne artikkelen forutsetter at du er en Powershell nybegynner med bare minimal tidligere erfaring å skrive Powershell script, men med en litt annen erfaring med programmering.

Installere Powershell-modulen for MDT

Begynn med å laste ned den komprimerte Powershell-modulen fil som heter MDTDB.zip fra dette blogginnlegget av Michael Niehaus eller ved å bruke denne direkte link. Høyreklikk på den nedlastede filen, velg Egenskaper, og klikk blokkering. Så pakk ut MDTDB.psm1 skriptfilen og kopiere den til en mappe (her antatt å være C: \\ Scripts) på MDT server.

Nå åpner Powershell-kommando shell og skriv Get-ExecutionPolicy
å vise gjeldende utførelse på serveren din (se her for mer informasjon):


< B> Figur 1:
Vise gjeldende utførelse

Hvis gjeldende henrettelsen politikken Begrenset, den MDTDB.psm1 script vil ikke kjøre, så bruker du Set-ExecutionPolicy Fri
kommandoen til å endre utførelse politikk å Ubegrenset som dette:


Figur 2:
Endre henrettelsen politikken til ubegrenset.

Nå skriver Import-Module -name C: \\ Scripts \\ MDTDB.psm1
å legge til MDT Powershell-modulen til dagens Powershell sesjon som vist her:


Figur 3:.
Importere MDT Powershell-modulen

Legg merke til at produksjonen fra å kjøre de Import-Module kommandoen lister alle de nye Powershell cmdlets vi nå har tilgjengelig for å manipulere MDT database. For eksempel, i figuren ovenfor kan du se New-MDTComputer
cmdlet som vi skal bruke senere i denne artikkelen for å legge til nye datamaskiner til databasen.

For å verifisere at modulen er importert, skriver Get-Module
som vist her:


Figur 4:
Kontrollere at Modulen har blitt importert

Tilkobling til MDT Database

Nå må vi koble våre Powershell sesjon til MDT database. For å gjøre dette, vil vi bruke Connect-MDTDatabase
cmdlet. Hvis du vil vise syntaksen for denne cmdlet, type Get-Help Connect-MDTDatabase
som vist her:


Figur 5:
Ser syntaksen for Connect-MDTDatabase

Tips:
Du kan også finne ut mer om denne cmdlet fra Michael blogginnlegg.

For å koble til en MDT database som heter MDT på en SQL Server eksempel heter SQLExpress på en MDT server som heter SEA-MDT-01, skriver denne kommandoen:

Koble-MDTDatabase -sqlServer SEA-MDT-01 -instance SQLExpress -database MDT


Figur 6:
Koble til MDT database

Arbeide med Computer Items

La oss begynne med å se om det er allerede noen dataposter i MDT database. For å gjøre dette, har vi tenkt å bruke Get-MDTComputer
cmdlet, så la oss bruke Get-Help
å vise syntaksen for denne cmdlet:


Figur 7:
Ser syntaksen for Get-MDTComputer

For å liste alle eksisterende dataposter i databasen, skriver du bare Get-MDTComputer
som dette:


Figur 8:
Oppføring datamaskiner i MDT database

Get-MDTComputer
cmdlet viser at det er en datamaskin element i databasen, og at denne datamaskinen elementet har en MAC-adressen til EE: EE: EE: FF: FF: FF og ID-nummer 2. ID-nummeret er nøkkelfelt for dataposter. Med andre ord, vil hver datamaskin element i databasen har et unikt ID-nummer.

Hvis vi åpner Deployment Workbench kan vi se denne datamaskinen element:


Figur 9:
Ser en datamaskin element med Workbench

Vi kunne slette denne datamaskinen element med Workbench, men la oss gjøre dette ved hjelp av Powershell i stedet. Hvis ønsket type Get-Hjelp Fjern-MDTComputer
å vise syntaksen for å slette dataposter. deretter skriver Fjern-MDTComputer -id to -verbose
å slette datamaskinen element og vise utførlig informasjon om drift:


Figur 10:
Fjerne en datamaskin element fra databasen

Importere Datamaskiner inn i Database

Nå la oss bulk import enkelte datamaskiner inn i databasen. Begynn med å lage et Excel-regneark med ulike kolonner for navnet, UUID, MAC-adresse og andre egenskaper av disse datamaskinene. Hver rad av regnearket vil svare til en enkelt datamaskin. For denne gjennomgangen har jeg laget et regneark med noen datamaskiner i min lab:


Figur 11:
Lag et regneark for målrette datamaskiner

Nå eksporterer dette regnearket som en kommaseparert (CSV) tekstfil (oppkalt C: \\ Data \\ machines.txt) som du kan åpne i Notepad for å se:


Figur 12:
CSV fil for måldatamaskinene

Nå bruker Import-Csv cmdlet
å importere CSV-filen og tilordne den til variabelen $ maskiner
som dette :

$ maskiner = Import-Csv C: \\ Data \\ machines.txt


Figur 13:
Importere CSV-filen inn en variabel

Innskriving $ maskiner
viser den importerte informasjonen, som lagres som en matrise:


Figur 14:
informasjon datamaskin lagres som en matrise

Du kan skrive $ machines.count
å vise antall elementer i denne matrisen:


Figur 15:
Matrisen har 3 elementer, én for hver datamaskin

For å vise det første elementet i matrisen, kan du taste $ maskiner [0]
som dette:


Figur 16:
Viser det første elementet i matrisen

Som du ser av figuren ovenfor, inneholder det første elementet i matrisen informasjon om den første datamaskinen. Å vise bare navnet på denne datamaskinen, trykk $ maskiner [0] .name
som dette:


Figur 17:
Viser navnet på den første datamaskin

Legge de importerte Datamaskiner til Database

Nå som vi vet litt om å manipulere matriser, er vi klare til å importere informasjonen som er lagret i matrisen variabelen $ maskiner i vår MDT database. For å gjøre dette, skal vi være med New-MDTComputer
cmdlet så la oss vise syntaksen for denne cmdlet:


Figur 18:
Vise syntaks for New-MDTComputer

Husk fra artikkel 16 at data elementer må være entydig identifisert i databasen ved hjelp av en (eller flere) av følgende felt:

  • universiell unik identitet (UUID)
  • Asset tag
  • Serienummer
  • MAC-adressen

    La oss legge til en datamaskin element for første datamaskin i våre regneark med sin MAC adresse som identifikator. For å gjøre dette, vi skriver du inn følgende kommando:

    Ny-MDTComputer -macAddress $ maskinene [0] .mac -Innstillinger @ {OSInstall = 'YES'} Anmeldelser


    Figur 19:
    Legge den første datamaskinen til databasen ved hjelp av MAC-adressen som identifikator

    Lukk og re-åpne Workbench å oppdatere den, og du bør se den nye datamaskinen element:


    Figur 20:
    ny datamaskin element har blitt lagt til databasen

    Hvis du dobbeltklikker på denne datamaskinen elementet du kan vise sine egenskaper:


    Figur 21:
    Egenskaper av den nye datamaskinen elementet

    Velge kategorien Detaljer viser at OSinstall eiendommen er satt til JA som forventet:


    Figur 22:
    Detalj egenskapene til den nye datamaskinen elementet

    Men over at OSDComputerName tilhører den nye datamaskinen elementet har notat i figuren ingen verdi. Den OSDComptuerName egenskapen angir navnet du vil MDT tilordne til målmaskinen, og hvis du henviser til figur 11 vil du se at vi ønsket denne egenskapen er satt til DESK-A for denne datamaskinen.

    La oss se hvordan du legger til en ny datamaskin til databasen samtidig angi datamaskinens navn. For å vise hvordan du gjør dette, la oss legge til en datamaskin element for den andre datamaskinen i vårt regneark ved hjelp av MAC-adressen som identifikator, og også angi navnet (som som du kan se fra forrige figur 11 bør være DESK-B). For å gjøre dette, vi skriver du inn følgende kommando:

    Ny-MDTComputer -macAddress $ maskiner [1] .mac -Innstillinger @ {OSInstall = 'YES'; OSDComputerName = $ maskiner [1] .name }


    Figur 23:
    Legge den andre datamaskinen til databasen ved hjelp av MAC-adressen som identifikator og angi datamaskinens navn

    Hvis du lukker og åpne Workbench, åpne egenskapene for den nye datamaskinen, og velg kategorien Detaljer, kan du se at denne gangen OSDComputerName eiendommen har forventet verdi DESK-B tilknyttet:


    Figur 24:
    Detalj egenskapene til den nye datamaskinen elementet

    La oss prøve et eksempel og legge til en datamaskin element for tredje datamaskin i våre regneark ved hjelp av MAC-adressen som identifikator og samtidig angi navnet på datamaskinen , organisasjonsnavn, og brukerens fulle navn. For å gjøre dette, vil vi skrive en enkelt Powershell-kommando, men fortsetter det over flere linjer for å gjøre den mer lesbar:

    New-MDTComputer -macAddress $ maskiner [2] .mac -Innstillinger @{

    OSInstall='YES';

    OSDComputerName=$machines[2].name;

    FullName='Michael Allen ';

    ORGNAME =' Contoso Ltd '}


    Figur 25:
    Legge tredje datamaskinen til database med flere eiendommer blir spesifisert

    Merk at i Powershell trenger du ikke å bruke noen spesiell linje videreføring karakter dersom kommandoen avbryter over en rekke spesifisert av klammeparentes.

    Lukk og åpne Workbench, åpne egenskapene for den nye datamaskinen, og velg fanen Detaljer for å se at de forventede egenskapene har blitt konfigurert:


    Figur 26:
    Detalj egenskapene til den nye datamaskinen elementet

    Bulk Opprettelse av Computer Elementer i Database

    Vi vet nå hvordan de skal bruke en enkelt Powershell-kommando for å opprette en ny datamaskin element i MDT database og konfigurere forskjellige egenskapene til dette elementet. La oss nå se hvordan vi kan bruke et skript for å automatisere denne prosessen, slik at vi kan bulk skape mange datamaskiner i databasen i ett trinn.

    Først, i stedet for å skrive egne kommandoer for å lage hver datamaskin i databasen, la oss bruke en for løkke for å iterere gjennom elementene i $ maskiner matrise som dette:

    For ( $ i = 1; $ jeg le $ machines.count; $ i ++)
    {
    New-MDTComputer -macAddress $ maskinene [$ i-1] .mac -Innstillinger @ {OSInstall = "ja"; OSDComputerName = $ maskinene [$ i-1] .name;}
    }


    Figur 27:
    Ved hjelp av en For løkke å legge til datamaskiner til databasen

    Merk at løkken ikke kjøre før du er ferdig med å skrive den avslutt brace-du trenger ikke å bruke noen linje fortsettelsestegn som i VBScript.

    Resultatet av å kjøre denne kommandoen kan sees ved å åpne Workbench:


    Figur 28:
    Tre data elementer har blitt laget ved hjelp av en enkelt kommando

    Nå la oss snu alt dette i et script som gjør følgende:

  • Installerer MDT Powershell-modulen
  • Kobles til MDT database
  • Importerer CSV-fil med målmaskinen info
  • Oppretter data elementer i databasen, inkludert navnene på datamaskiner og organisasjonsnavnet Contoso Ltd.

    For å gjøre dette, skriver du inn følgende Powershell script i Notepad:

    Import -Module -name C: \\ Scripts \\ MDTDB.psm1

    Connect-MDTDatabase -sqlServer SEA-MDT-01 -instance SQLExpress -database MDT

    < B> $ maskiner = Import-Csv C; \\ Data \\ machines.txt

    For ($ i = 1; $ jeg le $ machines.count; $ i ++) Anmeldelser

    {

    Ny-MDTComputer -macAddress $ maskiner [$ i-1] .mac -Innstillinger @ {

    OSInstall = 'YES';

    OSDComputerName = $ maskinene [$ i-1] .name;

    ORGNAME = 'Contoso Ltd '

    }

    }

    Nå lagre denne tekstfilen som Create.ps1 siden Powershell script må ha .ps1 filtypen. Åpne Workbench og slette eventuelle eksisterende data elementer i databasen, og deretter lukke Workbench.

    Nå bla til Create.ps1 filen, høyreklikk på den og velg Kjør Med Powershell. The Powershell-kommando shell vil bli vist for et øyeblikk, og deretter lukkes. Som et alternativ til å dobbeltklikke på .ps1 fil, kan du åpne Powershell kommandoskall, gå til katalogen der Create.ps1 filen ligger, og skriv Create.ps1 å kjøre skriptet.

    Nå åpner Workbench og du skal se den nye datamaskinen elementer. Vi har nådd målet vårt om å være i stand til å fylle MDT database med flere PC-elementer i ett trinn.

    Her er en bonus for deg. Administratorer ofte ønsker å nevne datamaskiner ved hjelp av noen standard navnekonvensjon, og la oss si at vi ønsker å navngi disse tre datamaskiner DESK-A, skrivebord-B og skrivebord SEA-CLI-001, SEA-CLI-002 og SEA-CLI-003 i stedet for -E. Vi kan gjøre dette ved å endre skriptet ovenfor med litt fancy streng manipulasjon som følger:

    Import-Module -name C: \\ Scripts \\ MDTDB.psm1

    Koble-MDTDatabase -sqlServer SEA-MDT-01 -instance SQLExpress -database MDT

    $ maskiner = Import-Csv C; \\ Data \\ machines.txt

    For ($ i = 1; $ jeg le $ machines.count; $ i ++)

    {
    $ n = "{0: D3 } "-f $ i fra New-MDTComputer -macAddress $ maskinene [$ i-1] .mac -Innstillinger @ {
    OSInstall = 'YES';
    OSDComputerName = 'SEA-kli-' + $ n
    ORGNAME = 'Contoso Ltd'
    }
    }

    Lagre dette skriptet som Create2.ps1 og deretter kjøre skriptet. Når du f.eks Kategorien Detaljer av egenskapene til datamaskinen opprettet av skriptet, vil du se at datamaskinene er navngitt med den angitte navnekonvensjon:


    Figur 29:
    Opprette data elementer ved hjelp av en navnekonvensjon

    Andre ressurser

    Det er mange gode Power ressurser der ute, men for nybegynnere anbefaler jeg deg å sjekke ut kapittel 13 i Windows 7 Resource Kit som har en god innledende tutorial skrevet av Ed Wilson aka The Scripting Guy.