Site Overlay

Hvordan Komme i Gang med PowerShell-og Active Directory-Scripting

Bygge en Full PowerShell Utility

Denne artikkelen er en tekst-versjon av en leksjon fra våre PowerShell-og Active Directory-Essentials video kurs (bruk koden ‘blogg’ for gratis tilgang).

kurset har vist seg å være veldig populært som det går du gjennom å opprette en full Active Directory management utility fra første prinsipper.,

Få Gratis PowerShell-og Active Directory-Essentials Video Kurs

jeg vil anbefale dette for både nye og avanserte PowerShell-brukere. Å bygge en ANNONSE verktøyet er en flott erfaring.

Koding Med PowerShell

Det kan være vanskelig å komme i gang med PowerShell, spesielt hvis over de årene du har blitt vant til å arbeide med cmd.exe-kommando-linje-eller batch-filer., I denne artikkelen (basert på Leksjon 2 av våre PowerShell-og Active Directory-kurs), vil vi dekke hvordan og hvorfor du bør oppgradere dine ferdigheter til å PowerShell, og det grunnleggende av starte PowerShell editor, kommando ferdigstillelse og hvordan du får alltid oppdatert hjelp og eksempler.

Kjører Kommandoene

PowerShell-konsollen er en interaktiv konsollen som lar deg kjøre diverse kommandoer i sanntid. Det er ingen grunn til å redigere et skript i Notisblokk, og deretter kjøre den separat, en stor tidsbesparende.,

Hvis du er i en organisasjon som har vært rundt for alle lengden av tid, har du sikkert allerede har fått noen mindre skript, bat-filer, eller prosedyrer som du kjører fra cmd.exe kommandolinjen. Gode nyheter! Du kan bruke alle at fra og med PowerShell, dette var en dyp utforming avgjørelse på den delen av Microsoft som de prøvde å gjøre overgangen så enkel som mulig for sysadmins.

I utseende, PowerShell redaktør ser ut og fungerer akkurat som den cmd.exe-ledeteksten miljø., Verktøyene og ferdighetene du allerede vet vil fungere i PowerShell akkurat nå, med noen endringer. Hvis du arbeider på å gjøre overgangen fra én av oppgaver for å få en mer automatisert nettverk, komme i vane med å skyte opp PowerShell i stedet for ledeteksten er en god måte å starte på.

Alle dine ofte brukte verktøy, for eksempel ping, ipconfig, dir, etc, vil alle fungere akkurat som du har kommet til å forvente.

Hvordan Finne PowerShell-Kommandoer

Folk elsker PowerShell fordi det er så, vel, kraftig., Men den kraften kommer fra en helt vanvittig mengde av kompleksitet. Det er bare ikke mulig eller praktisk for noen til å huske alle de forskjellige kommandoer, cmdlets, flagg, filtre og andre måter å fortelle PowerShell hva du skal gjøre.

Heldigvis, bygget rett inn i editor er flere verktøy for å hjelpe deg å håndtere dette faktum.

Kategorien Ferdigstillelse

Det er ikke nødvendig å huske alle de forskjellige kommandoer eller nøyaktig staving av en kommando., Type

get-c

I editoren, og trykk TAB-tasten, vil du bla gjennom alle kommandoer som begynner med hva du hadde innspill så langt. Dette fungerer på hvilken som helst del av den kommandoen du prøver å påberope seg, navnet (som vist under), men også flagg og stier som du er manipulering for å få ønsket resultat.

Få-Kommandoen

Mens kategorien fullføring fungerer godt, hva skjer hvis du ikke vet navnet på kommandoen du leter etter? I så fall, vil du bruke en kommando for å finne andre kommandoer: Get-Kommandoen.,

I å søke etter kommandoer, er det viktig å huske på at det er en syntaks til dem: VERB-SUBSTANTIV. Typisk verb er ting som Få, Sett, Legge til, Fjerne, Skrive og Lese, og Substantiv er filene, servere, eller andre elementer i ditt nettverk og programmer.

Get-Command er et discovery-verktøy for å utforske kommandoer som er tilgjengelige på systemet.,

PowerShell er Kommandosyntaksen

Noen gang beskrevet Perl skript-språk som ser ut som «kjørbar linje støy» – et utrolig nyttig verktøy med en vilt ugjennomsiktig syntaks og en tilsvarende høy læringskurve.

Selv om det ikke helt til det nivået den tradisjonelle ledetekst i Windows ikke er for langt unna. Vurdere en vanlig oppgave som å finne alle elementene i en mappe med navn som starter med strengen ‘Foo’.

CMD: FOR /D /r %G in ("Foo*”) DO @Echo %G

FOR og GJØRE tyder på at det er en loop.,
/D flagg indikerer at dette er for Kataloger
/r flagget angir at «Filer Forankret på Banen»
mønster som definerer et sett av filer å være repeterende over er angitt med «i»
@Echo instruerer skriptet til å skrive ut resultatet av hver sløyfe og til slutt
%G er «implisitt parameter» og er valgt fordi tidligere utviklere hadde allerede brukt banenavn-format bokstavene a, d, f, n, p, s, t og x. Så, med utgangspunkt G er tradisjonelle som det gir deg den største satt av ubenyttede brev for returnerte variabler ( G, H, i, J, K, L, M) – med andre ord, det er en stygg hack.,

Sammenligne det til PowerShell tilsvarende:

PowerShell: Get-ChildItem -Path C:\Example -Filter ‘Foo*’

output er funksjonelt den samme, men selv i denne ganske trivielt eksempel, det er mye mye lettere å forstå hva som skjer. Det er umiddelbart klart hva alle elementene i kommandoen gjør, og hvordan du kan endre dem. Det er bare litt ikke-åpenbare ting her er * jokertegn (til stede i begge eksempler) som indikerer at mønsteret som brukes til å knytte elementer bør starte med ‘Foo’, og ender på noe annet.,

Det blir bare bedre fra her, så si at du ønsker å vite hvordan å finne ut av akkurat filer (ikke-kataloger) i banen? Du kan grave opp dokumenter, Google rundt og prøve å sortere det ut med kommando linje versjon, eller hvis du er i PowerShell, kan du skrive inn «-» og trykke på tab-tasten, rulle gjennom flagget alternativer til den åpenbare løsningen dukker opp.

En Stor String vs Objekt Egenskaper

Servere noe godt til noen hvis de ikke er online., Som er hvorfor folk bruker en overdreven mengde tid på å late som de er ekkolodd operatører på en ubåt og ping ‘ ing dem (ja, det er faktisk grunnen til at det heter at – https://en.wikipedia.org/wiki/Ping_(networking_utility)

Mens produksjonen fra ping er nyttig (og du kan bruke ping innen PowerShell), på slutten av dagen utgang er bare en stor string – en serie med bokstaver og tall tegn med ingen definert pauser mellom dem).

PowerShell har en kommando som er analogt til ping, men som returnerer data som er strukturert, noe som gjør det enkelt å jobbe med. At kommandoen er Test-Forbindelse.,

Nedenfor kan du se resultatet av å pinge en server (som heter » DC » på sine lokale nettverk) og tilsvarende Test-Tilkobling utgang.

å Sette til side at det er enklere å lese, noe som er veldig viktig er at du nå kan sende denne informasjon ut til en annen kommando, innlemme det inn i en større utility (som denne full kurset er å jobbe mot) eller bare justere den slik at det er mer fornuftig.,

Geting Hjelp-System

Opp til nå har vi fokusert på hvordan å manipulere en spesiell kommando som du er i midten av det (via fanen ferdigstillelse), men som du begynner å gjøre mer og mer med PowerShell kommandoer blitt mer komplekse med enda mer komplisert valg. Mens Verb-Substantiv syntaks hjelper, hva som hjelper, enda mer, er å ha:

1. Oppdatert dokumentasjon
2. Massevis av eksempler

– CmdLet-Help

I praksis, bør du kombinere Get-Kommandoen (for å finne ut hva du skal bruke) og bruk deretter Få-Hjelp til å finne ut hvordan å bruke den aktuelle kommandoen.,

Et praktisk eksempel på hvordan du gjør dette: tenk deg at du trenger å identifisere alle kjører Windows-Tjenester på en maskin.

Du kan begynne med å se for kommandoer for service interaksjon:

Get-Command service

Som ville fortelle du på et øyeblikk at du var på rett spor. Tenker tilbake til den vanlige Verb-Substantiv syntaks av PowerShell-kommandoer, du ønsker å finne ut hvordan du skal bruke «Get-Service’.

MicroSoft Office Get-Service Dokumentasjonen

For dette, vil du bruke en ny kommando «Få-Hjelp»., Start ved å skrive

«Få-Hjelp -» og trykke på Tab-tasten

vil Du raskt finne de tilgjengelige alternativene, mest åpenbart egnet være «Navn», så du bør prøve:

Get-Help -Name Get-Service

med en gang du får full Syntaks (og som du kan inkludere eller ekskludere navn basert på filtre).,

Hvis du ønsket å dykke dypt inn i en bestemt del av den kommandoen du kan bore ned ytterligere med Få-Hjelp inkludert hver parameter

Get-Help -Name Get-Service - Parameter Name

PowerShell Hjelpe Eksempler

Fordi vi er alle mennesker som leser dette (ingen krenkelser Google bot), vi har den samme mentale hindringer å overvinne med hensyn til mønstergjenkjenning og oversette abstrakt kommando syntaxes til hva vi bør faktisk skriver for å oppnå det vi trenger for å komme gjennom dagen.,

Ved å legge inn «-eksempler» eller følger med «-detaljer» flagg for Få-Hjelp, vil du bli presentert med et sett av eksempler på bruk av kommandoen.

Her er resultatet for:

Get-Help -Name Get-Service -Examples

holde seg Oppdatert

Ingenting er mer frustrerende enn å skrive inn i akkurat det som et eksempel sier at du bør, bare for å ha det fungerer ikke som dokumentert. Dette er som regel forårsaket av utdatert dokumentasjon, dårlige eksempler, eller oppdatert biblioteker.,

Omgå disse frustrasjoner, samt få nye eksempler og løser med

update-help

– Kommandoen. du vil starte nedlastingen.

Neste Trinn med PowerShell

Vil du vite mer? Bruk låse opp koden ‘blogg’ for gratis tilgang til full PowerShell-og Active Directory-Essentials video kurs.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *