Overvågning med PowerShell

PowerShell er Microsofts integrerede scripting værktøj som giver mulighed for automatisering af processer og administration af windows servere og windows klienter. Det giver adgang til en kommando shell hvor man kan udføre enkelt kommandoer eller scripts. PowerShell er en erstatning af VB Script.

PowerShell 2.0 indgik i ServicePacks til Windows XP, Vista og server 2003/2008. PowerShell version 3.0 er integreret i Windows Server 2012 samt 2012R2. PowerShell kan opgraderes på Windows 8.0 og 8.1. samt Windows 7 via en ServicePack. Det samme er gældende for Windows Server 2008 og 2008R2.

Microsoft udvikler løbende tools bestående af en række cmdlets, kommandoer til at konfigurere og administrere Windows funktioner med PowerShell.

I Neosec Security Server, giver vi mulighed for at kunne køre PowerShell cmdlets og scripts på de overvågede servere. Neosec Security Server benytter også PowerShell for Windows server monitorering. Neosec Security server understøtter ver. 3.0 og nyere.

Følgende monitore benytter PowerShell

  • windows DHCP Server 2012, 2012R2

Klargøring af Neosec Security Server og PowerShell

Før man kan benytte PowerShell via Neosec Security server, skal de rigtige versioner installeres.

På windows Server 2008 er version 2.0 installeret. Denne skal opgraderes til version 3.0 for at udnytte de nye features.

Følgende skal installeres før version 3.0 kan installeres.

  • WinRm 2.0  : Windows Management Framework Core for Windows server 2008
  • BITS 4.0 : Windows Management Framework BITS for Windows server 2008

Download Windows Management Framework 3.0

Server 2008 SP2

  • Windows6.0-KB2506146-x86.msu
  • Windows6.0-KB2506146-x64.msu

Windows 7 Service Pack 1

  • Windows6.0-KB2506143-x86.msu
  • Windows6.0-KB2506143-x64.msu

Windows 2008R2 SP1

  • Windows6.0-KB2506143-x64.msu

Windows 2012 og 2012R2

  • Her er version 3.0 allerede installeret

Powershell kommunikation

Lokalt

Kørsel af PowerShell scripts lokalt benyttes den konto man er logget ind med. Man kan også angive brugernavn og password for lokal kørsel af script via -Credential parameter.

Kørsel af PowerShell scripts lokalt er normalt tilladt og kan kører uden ekstra konfiguration.

Remote

Når man vil udføre et Powershell script på en remote maskine, kan man benytte parameteren -ComputerName. Her kan man angive den server man vil udføre scriptet på som NETBIOS navn eller FQDN. Den cmdlet eller script der skal udføres er placeret på den maskine hvor man kører Powershell scriptet fra. Det vil sige hvis man vil udføre opgaver på en server fra en Windows 8.x maskine, så skal cmdlets og script være installeret på Windows 8.x maskinen.

PowerShell benytter HTTP og SOAP for remote kommunikation. Portene tcp/5985 og tcp/5986 benyttes ved kommunikationen.

Hvis man ikke har cmdlets samt Scrips lokalt, så kan man udføre scriptet remote ved at oprette en Powershell session til den server man vil udføre scriptet på.

En af udfordringerne med remote management med Powershell er at WinRM kræver at man benytter server navnet på serveren når man forbinder sig med den. Man kan ikke benytte IP adresse eller DNS Alias. Hvis man vil benytte sig af IP adresse og DNS alias, så skal man tilføje den server man vil kommunikere med i TrustedHosts.

Følgende kommando skal køres i en PowerShell kommando prompt med Administrator rettigheder.

Set-Item WSMan:\localhost\Client\TrustedHosts -value *

For at slette informationen i TrustedHosts skal følgende kommando udføres.

Clear-Item WSMan:\localhost\Client\TrustedHosts

For at verificere at man har konfigureret TrustedHosts skal følgende kommando udføres.

Get-Item WSMan:\localhost\Client\TrustedHosts

Hvis man skal forbinde sig til en Windows Server 2008 eller 2008R2, så skal man først aktivere WinRM, dette er ikke automatisk startet. På Windows Server 2012 og 2012R2 er WINrm automatisk startet.

Via Windows PowerShell skrives følgende kommando

Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -force

Via Windows PowerShell skrives herefter følgende kommando som aktivere alle de firewall regler der skal være for at kommunikere med serveren via WINrm. Udover dette konfigureres der også en HTTP service som acceptere WS-Man forbindelser, som er det vi benytterin ved remote kommunikation.

Configure-SMRemoting.ps1 -force -enable

PowerShell Query og login

Krypteret forbindelse, her udføres kommando og validering via Kerberous. Man skal kalde serveren med FQDN i det at certifikatet der kryptere forbindelse bliver valideret.

Ukrypteret forbindelse, her udføres kommando og validering ved Basic authentication uden kryptering. Her kan man benytte IP addresse eller FQDN for servernavnet.

Nyttige links

Wikipedia for PowerShell

Nyttige kommandoer

Get-Module -ListAvailable -all

Viser hvilke cmdlets og moduler der er installeret.

Import-Module -name <modulename>

installere moduler der endnu ikke er installeret.