Så langt i denne artikkelserien, har jeg vist deg hvordan du gjør alle slags kule ting ved hjelp av Windows Powershell. Da jeg satte meg ned for å skrive denne artikkelen men det slo meg at jeg aldri hadde tatt seg tid til å snakke om Powershell ’ s muligheter og begrensninger
I de senere årene, Microsoft har hatt et stort problem med mangel på. konsistens. La ’ s ta Windows 8 for eksempel. Det er faktisk fire helt separate Windows 8 plattformer – PC, Windows Phone, Windows RT og Xbox One. Den virkelig sprø ting er at disse ulike Windows-plattformer er ikke kompatible med hverandre. Hver har sin egen app store og apps som du laster ned fra en app store er ikke kompatible med andre enhetstyper. Du kan ’ t for eksempel kjøre en PC-appen på Xbox One
Du har kanskje hørt mye nylig om Windows 10 og universelle apps.. Universal apps er Microsoft ’ s forsøk på å rydde opp i rotet som har vært forårsaket av plattform inkonsekvens. Tilsynelatende universelle apps vil kunne kjøres på alle Windows 10-enheten uavhengig av om det er en PC, nettbrettet, telefonen eller hva som helst.
Så hva kan alt dette muligens ha å gjøre med Powershell? Vel, har Microsoft hatt lignende kamper når det gjelder kommandolinjen. Tidligere versjoner av Powershell var svært begrenset. Det var relativt få cmdlets tilgjengelig, pluss det var flere kommandolinjegrensesnitt å velge mellom. Nyere versjoner av Powershell er mye kraftigere. Den gjeldende versjonen av Powershell støtter tusenvis av innfødte cmdlets, add-on cmdlets (som kan importeres gjennom moduler), og arven kommandoer fra andre miljøer.
Så hva er disse eldre kommandoer? Vel, de kommer i to forskjellige former. Den første arven kommandotypen kan best beskrives som DOS-kommandoer. Jeg vokste opp på 80-tallet, og da hvis du hadde en PC du bruker noe som heter Disk Operating System, eller DOS. DOS miljø inkludert mange innfødte kommandoer og hadde sin egen skriptspråk som ofte ble omtalt som batch-programmering.
De fleste av de tidligere versjoner av Windows var grafiske plattformer som kjørte på toppen av DOS. Moderne Windows-operativsystemer er sanne operativsystemer som er basert på NT-kjernen i stedet for på DOS. Likevel, selv de nyeste Windows-versjonene har et ledetekstvindu som fullt ut støtter DOS kommandoer som ble først brakt om over 30 år siden.
Tidlige versjoner av Powershell vedtatt noen DOS-kommandoer, slik som CLS, som klarner skjermen. Å si at disse versjonene av Powershell støttes fullt DOS-kommandoer men ville ha vært helt unøyaktig. De fleste DOS-kommandoer ble ikke støttet.
Nyere versjoner av Powershell inkluderer støtte for det store flertallet av DOS-kommandoer som jeg har prøvd å bruke. Selv om noen kilder tyder på at Powershell støtter fullt ut alle de samme kommandoene som Windows Command Prompt men det spiller ’ t faktisk støtte dem alle. Powershell støtter det meste av DOS-kommandoer som du kommer til å bruke på en jevnlig basis. Det ’ s stort sett de mer obskure kommandoer som mangler
Så hva kommandoer mangler.? Jeg ærlig don ’ t vet. Jeg har aldri sett en omfattende liste skisserte støttede og ikke-støttede kommandoer. Likevel kan jeg gi deg et eksempel på en manglende kommando.
Det var en tid da DOS ikke inkluderer et tekstredigeringsprogram. Tilbake da hvis du ønsket å lage en tekstfil, batch fil, eller hva du måtte skrive inn følgende kommando:
COPY CON < filnavnet >
Etter inn denne kommandoen du kan skrive filen ’ s innholdet og trykk Ctrl + C. Dette ville skape en fil med navnet du har angitt. Som du kan se i figur A, denne metoden fungerer fortsatt bruker Windows Command Prompt miljø
Figur A:.. De COPY CON kommandoen fungerer i Windows Command Prompt vinduet
Nå sjekke ut Figur B og du vil se hva som skjer hvis du prøver det samme i Powershell
Figur B:.. Den COPY CON kommandoen ikke fungerer i Powershell
Så dette er et stort problem? Sannsynligvis ikke. Nesten ingen bruker COPY CON lenger. Som jeg sa tidligere, støtter Powershell meste av gamle DOS-kommandoer som du sannsynligvis vil trenge, men det spiller ’. T støtter hver DOS kommando
Tidligere nevnte jeg at det var en annen type arv kommando som støttes innen Powershell. Jeg don ’ t virkelig vet hva jeg skal kalle disse kommandoene, så jeg vil kalle dem arven Windows kommandoer. Som tidligere nevnt, DOS hadde sin egen kommandosett. Senere versjoner av Windows som Windows 95 og Windows XP innført noen nye kommandoer som weren ’ t en del av den opprinnelige DOS kommandosettet. Disse nye kommandoer ble brukt i ledetekstvinduet.
Den gjeldende versjonen av Powershell synes å fullt ut støtte disse nyere kommandoer. Et eksempel på en slik kommando er Net. Net kommandoen kan brukes til mange forskjellige ting. Anta at du ønsket å vise datamaskin ’ s drive kartlegginger. For å gjøre dette, kan du bruke NET USE-kommandoen, som du kan se i figur C. Du kan også bruke NET USE å skape nye stasjonsbokstaver kartlegginger
Figur C:. Powershell støtter Net kommandoen Selvfølgelig Net er bare ett eksempel på kommandolinjemiljø kommandoer som støttes gjennom Powershell. Alle de “ utvidet kommando sette ” kommandoer som jeg har prøvd å bruke har jobbet gjennom Powershell. Som du kan se, er Powershell langt mer kapabel enn det noensinne har vært i det siste. Likevel, gjør Powershell har sine grenser. Powershell cmdlets eksisterer ikke for alle tenkelige formål. Heldigvis er Powershell utvidbar. Faktisk er det tre forskjellige måter å forlenge Powershell ’ s. Evner Den første metoden innebærer å skrive dine egne cmdlets. Dette emnet er utenfor omfanget av denne artikkelen serien (kanskje jeg vil dekke det i en fremtidig serie hvis det er nok interesse), men Microsoft gir deg alle verktøyene du trenger for å lage Powershell cmdlets å gjøre hva du vil. Den andre måten som er utvidbar Power er ved bruk av moduler. Moduler er i hovedsak samlinger av ikke-innfødte cmdlets. Du kan importere en modul i Powershell ved hjelp av Import-Module kommandoen. Det er dusinvis av moduler tilgjengelig for nedlasting både fra Microsoft og fra tredjeparts kilder. For eksempel kan du bruke en modul for å utvide Powershell, slik at du kan bruke den til å administrere Microsoft Azure. Den tredje måten Powershell er utvidbar er den mektigste av alle. Som jeg kort nevnt i min forrige artikkel, kan Powershell dra nytte av .NET. .NET Miljø gjør det mulig å gjøre ting som Powershell isn ’ t stand til å gjøre på egen hånd. For eksempel, hvis du ønsker å gjøre avansert matematikk gjennom Powershell så kan du gjøre det ved å utnytte kraften i .NET. Jeg hadde opprinnelig planlagt på å diskutere NET i denne artikkelen, men vil dekke det i del 9 i stedet. For de av dere som ikke er utviklere, la meg forsikre dere om at utnytte .NET miljøet gjennom Powershell er overraskende enkelt å gjøre. Jeg vil vise deg hvordan i min neste artikkel. Anmeldelser
Konklusjon