Bygge en Fuld PowerShell-Værktøj
Denne artikel er en tekst-version af en lektion fra vores PowerShell og Active Directory-Essentials video kursus (brug kode “blog” gratis adgang).
kurset har vist sig at være virkelig populære, da det fører dig gennem at skabe en fuld Active Directory Management utility fra første principper.,
Få Gratis PowerShell og Active Directory-Essentials Video Kursus
Kodning Med PowerShell
Det kan være svært at komme i gang med PowerShell, især hvis man over årene har vænnet sig til, at arbejde med cmd.e .e kommandolinje eller batch-filer., I denne artikel (baseret på Lektion 2 af vores PowerShell og Active Directory, naturligvis), vil vi dække, hvordan og hvorfor du bør opgradere dine evner til at PowerShell og de grundlæggende principper for lanceringen af PowerShell redaktør, kommando afslutning, og hvordan man får altid up-to-date hjælp og eksempler.
Kører Kommandoer
PowerShell console er en interaktiv konsol, der gør det muligt at køre forskellige kommandoer i realtid. Der er ingen grund til at redigere et script i Notesblok og derefter køre det separat, en stor tidsbesparelse.,
Hvis du er i en organisation, der har eksisteret i længere tid, har du sikkert allerede fået nogle mindre scripts, bat-filer, eller procedurer, som du kører fra cmd.e commande kommandolinje. Gode nyheder! Du kan påberåbe sig alt dette fra med Po .ershell, dette var en dyb designbeslutning fra Microsofts side, da de forsøgte at gøre overgangen så let som muligt for sysadmins.
I udseende, PowerShell editor ser ud og fungerer ligesom cmd.e .e kommandoprompt miljø., De værktøjer og færdigheder, du allerede kender, fungerer inden for Po .ershell lige nu uden ændringer. Hvis du arbejder på at gøre overgangen fra engangsopgaver til at muliggøre et mere automatiseret netværk, er det en god måde at starte på at blive vant til at skyde Po .ershell i stedet for kommandoprompten.
alle dine ofte anvendte værktøjer som ping, ipconfig, dir osv.
Hvordan til at Finde PowerShell-Kommandoer
Folk elsker PowerShell, fordi det er så godt, stærk., Men den magt kommer fra en helt vanvittig mængde kompleksitet. Det er bare ikke muligt eller praktisk for nogen til at huske alle de forskellige kommandoer, cmdlets, flag, filtre og andre måder at fortælle PowerShell, hvad de skal gøre.heldigvis er indbygget i editoren flere værktøjer til at hjælpe dig med at håndtere denne kendsgerning.
fane afslutning
Der er ingen grund til at huske alle de forskellige kommandoer eller præcis stavning af en kommando., Skriv
get-c
ind i editoren og tryk på TAB – tasten-du cykler gennem alle kommandoer, der begynder med det, du havde input indtil videre. Dette fungerer på ethvert afsnit af kommandoen, du prøver at påberåbe, navnet (som vist nedenfor), men også flag og stier, som du manipulerer for at få det ønskede resultat.
Get-kommando
mens fanen færdiggørelse fungerer godt, hvad sker der, hvis du ikke kender navnet på den kommando, du leder efter? I så fald vil du bruge en kommando til at finde andre kommandoer: Get-kommando.,
Når du søger efter kommandoer, er det vigtigt at huske på, at der er en syntaks til dem: VERB-substantiv. Verberne er typisk ting som Get, Set, Add, Clear, Writerite and Read, og substantiverne er filerne, serverne eller andre elementer i dit netværk og applikationer.
Get-kommando er en opdagelse værktøj til at udforske de kommandoer til rådighed på dit system.,
PowerShell Kommando Syntaks
en person, beskrev engang Perl script-sprog, som man ser som “eksekverbare line støj” – et utroligt nyttigt redskab med en meget uigennemsigtig syntaks og en tilsvarende høj indlæringskurve.
selvom det ikke er helt til det niveau, er den traditionelle kommandoprompt i .indo .s ikke for langt væk. Overvej en fælles opgave som at finde alle elementerne i en mappe, hvis navne starter med strengen ‘Foo’.
CMD: FOR /D /r %G in ("Foo*”) DO @Echo %G
for og angiver, at det er en løkke.,
/D flag angiver, at dette er for Mapper
/r flag angiver, at “Filer Rødder på Vej,”
Det mønster, der definerer et sæt af filer at være loopes over, der er udpeget med “i”
@Echo pålægger script til at skrive resultatet af hver løkke og endelig
%G er den “implicitte parameter”, og er valgt, fordi de tidligere udviklere allerede havde brugt den sti format bogstaverne a, d, f, n, p, s -, t-og x. Så, begyndende med G er traditionelle, da det giver dig den største sæt af ubrugte bogstaver for returnerede variabler ( G, H, i, J, K, L, M) – med andre ord, det er et grimt hack.,
Undersøg, der til PowerShell tilsvarende:
PowerShell: Get-ChildItem -Path C:\Example -Filter ‘Foo*’
output er funktionelt det samme, men selv i denne temmelig trivielt eksempel, det er meget meget nemmere at forstå, hvad der sker. Det er umiddelbart indlysende, hvad alle elementerne i kommandoen gør, og hvordan du kan ændre dem. Den eneste lidt ikke-indlysende ting her er * wildildcard-tegnet (til stede i begge eksempler), hvilket indikerer, at mønsteret, der bruges til at matche elementer, skal starte med ‘Foo’ og ende i noget andet.,
det bliver bare bedre herfra, da du vil vide, hvordan du identificerer bare filer (ikke mapper) i stien? Du kan grave docs, Google rundt og forsøge at sortere det med kommandolinjeversionen, eller hvis du er i Po .ershell, skal du skrive “-” og trykke på tab-tasten og rulle gennem flagindstillingerne, indtil den indlysende løsning dukker op.
en stor streng vs objektegenskaber
servere er ikke gode for nogen, hvis de ikke er online., Hvilket er grunden til at folk bruger uforholdsmæssig meget tid på at foregive, at de er ekkolod operatører på en ubåd og ping ‘ ing dem (ja, det er faktisk derfor det hedder, at – https://en.wikipedia.org/wiki/Ping_(networking_utility)
Mens output fra ping er nyttigt (og du kan bruge ping-kommandoen, inden PowerShell), ved slutningen af dagen output er bare en stor string – en serie af bogstaver og tal-tegn med ikke fastlagt nogen pauser mellem dem).
Po .ershell har en kommando, der er analog med ping, men som returnerer data, der er struktureret, hvilket gør det nemt at arbejde med. Denne kommando er Test-forbindelse.,
nedenfor kan du se output af pinge en server (navngivet ‘DC’ på deres lokale netværk) og den tilsvarende Test-forbindelse output.
at se bort fra, at det er nemmere at læse, hvad der virkelig er vigtigt er, at du nu kan give denne information ud til en anden kommando, indarbejde det i en større nytte (det fulde kursus arbejder hen imod) eller blot justere det, så det giver mere mening.,
Geting Hjælpe System
indtil nu har vi fokuseret på, hvordan man kan manipulere en bestemt kommando, mens du er i midten af det (via tabulator-færdiggørelse), men når du begynder at gøre mere og mere med PowerShell kommandoer bliver mere komplekse med endnu mere komplekse muligheder. Mens verbet-substantiv syntaks hjælper, hvad der hjælper, endnu mere, har:
1. Opdateret dokumentation
2. Masser af eksempler
CmdLet hjælp
i praksis skal du kombinere Get-kommando (for at finde, hvad du skal bruge) og derefter bruge Get-Help til at finde ud af, hvordan du bruger den pågældende kommando.,
et praktisk eksempel på, hvordan du gør dette: Antag, at du skal identificere alle de kørende Servicesindo .s-tjenester på en maskine.
du ville starte med at lede efter kommandoer til service interaktion:
Get-Command service
som ville fortælle dig et overblik, at du var på rette spor. Når du tænker tilbage på standard Verb-substantiv syntaks af Po .ershell-kommandoer, vil du undersøge, hvordan du korrekt bruger ‘Get-Service’.
Microsofts Office Get-Service-dokumentation
til dette vil du bruge en ny kommando ‘Get-Help’., Start med at skrive
“Get-Help -” og tryk på Tab-tasten
vil Du hurtigt finde de tilgængelige valgmuligheder, skal de naturligvis passende man bliver “Navn”, så du må prøve:
Get-Help -Name Get-Service
Straks du får den fulde Syntaks (og at du kan medtage eller udelade navne baseret på filtre).,
Hvis du ønsker at dykke dybt ind i et bestemt aspekt af den kommando, som du kan bore yderligere ned med Få-Hjælp, herunder hver parameter
Get-Help -Name Get-Service - Parameter Name
PowerShell Hjælpe Eksempler
Fordi vi er alle mennesker der læser dette (no offense Google bot), vi har den samme mentale hurdler, der skal overvindes med hensyn til mønstergenkendelse og omsætte abstrakte kommando syntaks i, hvad vi skal skrive for at opnå det, vi har brug for at komme gennem dagen.,
Ved at indtaste i “-eksempler” eller inkluderet med “-Detalje” flag for Get-Help, vil du blive præsenteret med et sæt eksempler til brug af kommandoen.
Her er output for:
Get-Help -Name Get-Service -Examples
Opholder sig Op Til Dato
der er ikke Noget mere frustrerende end at komme ind i præcis, hvad et godt eksempel siger, at du skal, kun at det ikke arbejdet, som dokumenteres. Ofte skyldes dette forældet dokumentation, dårlige eksempler eller opdaterede biblioteker., undgå disse frustrationer samt få nye eksempler og rettelser med kommandoen
update-help
. du starter do .nloadprocessen.
næste trin med Po ?ershell
vil du lære mere? Brug unlock code ‘blog’ for fri adgang til den fulde Po .ershell og Active Directory Essentials video kursus.