Strømshell til begyndere (Del 10): filtrering og hvor-objekt

Vi har allerede lært meget om Strømshell. Sidste gang vi arbejdede med MVM for begyndere (Del 9): Hent det hele fra vinduer med MVM og MVM nu er det efter min mening det bedste tidspunkt at fokusere på emnet “filtrering med MVM”. Men først, lad os se på øvelsen fra den sidste del.

alle dele af serien kan findes her: For begyndere (serie)

anmeldelse (Del 9)

Her er opgaven og løsningen fra Del 9:

Hent oplysninger om din harddisk. Brug Get-Vmiobject eller Get-CimInstance. Først skal du søge efter objektet, og når du har fundet det, skal du vise navnet, partitionerne, modellen, programmet og serienummeret.

for det første skal vi finde ud af navnet på VVM-instansen. Da opgaven refererer til harddisken, kunne vi f.eks.

Get-WmiObject *disk* -List

Unbenannt.PNG

Vind32_diskdrive lyder godt. Husk totrinsmetoden fra Del 8 for at få mere ud af Kraftshell:

Get-CimInstance win32_diskdrive | Get-Member

der finder du de relevante attributter. Brug nu Select-Object til at få dem alle.

Get-CimInstance Win32_DiskDrive | Select-Object Name,Partitions, Size,Model,FirmwareRevision,SerialNumber

Unbenannt.PNG

anmeldelse

giver læse-og skriveadgang til næsten alle vinduer indstillinger. Der er to vigtige cmdlet ‘ er: Get-Vmiobject og Get-CimInstance.

hvorfor filtrering?

filtrering er en nøgleteknologi i Kraftshell. Når du ved, hvordan du filtrerer, får du mere ud af Strømshell.

Nå, min opgave for denne del er at forklare, hvorfor filtrering er vigtig. Ok lad os sige, at du har mere end en harddisk. Udgangen ovenfor viser dig alle harddiske. Men du vil kun vise Samsung harddiske, for eksempel.

Unbenannt.PNG

hvorfor vil du gøre dette? Måske spørger din chef dig, hvor mange Samsung-diske der er i brug. På alle computere. Husk, at vi gør det muligt for dig at foretage fjernforespørgsler. Ok tilbage til emnet. Vi ønsker kun Samsung SSD med 500 GB. Se filterparameteren!

Get-CimInstance Win32_DiskDrive -Filter "Model='Samsung SSD 850 EVO 500GB'" | Select-Object Name,Partitions, Size,Model,FirmwareRevision,SerialNumber

Unbenannt.PNG

følgende er lidt ud over det sædvanlige og for mere avancerede Strømshell nørder, men hvorfor ikke? Følgende kommando får alle Samsung SSD ‘ er fra alle domænecomputere, men ikke fra servere.

Get-CimInstance Win32_DiskDrive -Filter "Model='Samsung SSD 850 EVO 500GB'" -ComputerName (Get-ADComputer -Filter {operatingsystem -notlike '*server*'}).Name | Select-Object Name,Partitions, Size,Model,FirmwareRevision,SerialNumber

Hvis dine kolleger tror, du står over for et uløseligt problem, skal du bare trykke på knapperne og vise dem, hvad du kan gøre. okay, lad os gå til eksemplerne for begyndere.

filtrering af objekter

kan du huske kommandoen Get-ChildItem? Jeg har brugt denne kommando meget ofte i denne serie.

Hvis du kører Get-Help Get-ChildItem, finder du en masse filtreringseksempler i hjælpen.

Get-Help Get-ChildItem -Online

Jeg foretrækker at bruge den lokale hjælp.

Get-Help Get-ChildItem -Examples

Unbenannt.PNG

Hvad har vi lært indtil videre?

filtrering er en nøgleteknologi i Kraftshell. Når du først har forstået, hvordan du filtrerer, får du mere ud af Strømshell.

filtrering af Active Directory-objekter

Hvis du er en IT-Pro, arbejder du sandsynligvis i et Active Directory-miljø. Filtrering er en nøgleteknik, når du arbejder med Active Directory-objekter.

følgende kommando bruger Filterparameteren til at få alle brugere, der er deaktiveret:

Get-ADUser -Filter {enabled -eq 'false'} | Select-Object Name

Unbenannt.PNG

du undrer dig måske over, hvordan jeg kender attributnavnene? Husk 2-trins metode til at få mere ud af objekter: 1. brug Get-medlem 2. brug Vælg-objekt.

Unbenannt.PNG

Filterparameteren

lad os se os omkring. Hvilke kommandoer bruger filterparameteren? Bemærk, at jeg er på en domænecontroller.

Get-Command -ParameterName Filter

som du kan se, bruges filterparameteren mest i Active Directory-kommandoer. Og jeg må indrømme, at jeg altid har brugt filterparameteren kun til Active Directory. Sådan er det. Så lad os koncentrere os om Active Directory. Sig, at vi vil have alle Domænecomputere (serveroperativsystem og Klientoperativsystem) sorteret efter operativsystem. Til dette skal vi bruge filterparameteren med *.

Get-ADComputer -Filter * -Properties Name,Operatingsystem,OperatingSystemVersion,IPv4Address | Sort-Object OperatingSystem | Select-Object Name,OperatingSystem

Unbenannt.PNG

med hensyn til filtrering var dette en simpel opgave.

Filtreringsmetoden

nu forsøger vi at få alle de computere, der har vinduer 10 installeret. Til dette skal vi sætte filterparameteren i buede parenteser.

Get-ADComputer -Filter {operatingsystem -like '*windows 10*'}

det er tid til at nedbryde detaljerne.

beslagene

Sæt filteret i buede beslag.

Unbenannt.PNG

attributterne

find derefter navnet på egenskaber (attributter). Vi har allerede diskuteret det i Kraftshell for begyndere (Del 8): kraften i Kraftshell – at komme i kontakt med objekter (Get-medlem, Vælg-objekt). Husk de to trin metode!

Unbenannt.PNG

Get-ADComputer client01 -Properties * | Get-Member

Unbenannt.PNG

side Bemærk: Bemærk egenskabsparameteren. I Active Directory vises ikke alle egenskaber som standard.

operatørerne

næste brug en operatør.

Unbenannt.PNG

en operatør kunne være-som, -som, -lige, -ne og så videre … for mere om parametre type

help about_operators

Dette åbner en tekstfil, der er gemt på din computer.

erklæringen

Hvis vi vil filtrere noget, har vi brug for en betingelse. Denne betingelse skal placeres i anførselstegn.

Unbenannt.PNG

gennemgå

Hvis du arbejder med filtre, skal du først se afsnittet Hjælp. Filtre placeres normalt i parentes. Ofte bruges en operatør også.

nogle flere Filtereksempler … uden meget at tale …

søgning efter brugere, der har et dårligt antal adgangskoder på 0. Her er et eksempel på Petras konto:

Unbenannt.PNG

Get-ADUser -Filter {badpwdcount -eq '0'} | Select-Object Name

Unbenannt.PNG

søgning efter brugere, der har et dårligt antal adgangskoder på 0 og er aktiveret. (Du vil se, at Petra ikke er aktiveret).

Get-ADUser -Filter {(badpwdcount -eq '0') -and (enabled -eq 'true')} | Select-Object Name

Unbenannt.PNG

Vis alle vinduer Server domæne computere, men kun dem, der kører vinduer Server 2016 og hvis navne starter med DC.

Get-ADComputer -Filter {(operatingsystem -like '*2016*') -and (name -like 'dc*')}

Unbenannt.PNG

men nogle gange er du nødt til at finde en anden måde. Nemlig når der ikke er nogen filtrering tilgængelig. Så bruger vi hvor-objekt.

filtrering med hvor-objekt

hvor-objekt er altid på højre side af røret. Filtrering til venstre. Hvad det betyder, fordele og ulemper i slutningen af indlægget. For denne del vil vi koncentrere os om hvor-objekt.

Her er nogle eksempler fra hjælpen.

Get-Process | Where-Object {$_.handles -gt 200 -and $_.name -eq "svchost"}
Get-ChildItem c:\scripts | Where-Object {$_.length -gt 100000}

Jeg vil dog gerne bruge et eksempel fra et af mine bidrag.

Get-Hotfix | Where-Object HotfixID -like KB31*

Unbenannt.PNG

Vær opmærksom på Hotfiksid. Det refererer til en attribut.

den anbefalede procedure (på grund af bagudkompatibiliteten) ser sådan ud:

Get-Hotfix | Where-Object {$_.HotfixID -like 'KB31*'}

Unbenannt.PNG

Der er noget nyt nu. Hvad betyder$_?

$ _ er en variabel, der gentager over hvert objekt/element, der er passeret fra det foregående (rør). Kort sagt: tag hotfikset fra hvert objekt, der kommer fra røret.

filtrering vs. hvor-objekt

Hvis der ikke findes noget filter, skal du bruge hvor-objekt. Hvis du er i stand til at bruge et filter på venstre side af røret, skal du bruge det! Hvorfor? Nå, det er en forskel, om du sender 1000 genstande over røret eller kun 500, i tilfælde af hvor-objekt alle objekter skal passere gennem røret, og først derefter filtreres de. Husk røret fra Del 7: Strømshell til begyndere (Del 7): røret (og mange eksempler at lege med)

anmeldelse

hvor-objekt er altid på højre side af røret. Filtrering til venstre. Hvis du har valget mellem et filter på venstre side af røret eller hvor-objekt på højre side, skal du vælge venstre side.

øvelse

Her er øvelsen til næste del.

hvor-objekt:

brug Get-Service og hvor-Object til kun at vise tjenester, der kører.

Filter (Active Directory påkrævet):

brug filterparameteren til at få alle brugere, der er deaktiveret.

Vi ses næste gang på emnet: Strømshell til begyndere (Del 11): have det sjovt med Strømshelldrev

Patrick Gruenauer, MVP Strømshell

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.