Powershell

Fra TermvaktWiki
Gå til: navigasjon, søk

Innhold

Powershell

Powershell er Microsofts scriptespråk for .net. Det er inkludert som standard på alle Windows 7 maskiner, både som kommandoshell og en scripteditor (ISE). Powershell kan sies å ligne en del på Perl, og mange av kommandoene er det samme som i linux. Get-help er den innebygde hjelpefunksjonen, og ligner veldig på man-pages i linux.

På våre maskiner er policyen for eksekvering av scripts satt til remote-signed slik at script som er lokalt på maskinen kan kjøres, men ikke script fra andre steder.

For å starte powershell, skriv powershell i søkefeltet:

Start powershell.PNG

Her har man mulighet til å kjøre en god del av linuxkommandoene på lik måte som i en linuxterminal, for eksempel ls, pwd, mkdir etc.

Linux-kommando.PNG

Powershell er objektorientert, og hver kommando du kjører gir tilbake ikke bare et svar, men også et objekt som har egenskaper og metoder. For å få en liste av disse kan man kjøre kommandoen og pipe resultatet i get-member-metoden for få listen. Følgende eksempel viser egenskapene og metodene til ps:

Get-member.PNG

Hvis man for eksempel vil ha antall prosesser som kjører på systemet kan man bruke count-egenskapen til objektet som ps returnerer:

Ps-count.PNG

One-liners

I en one-liner har man mulighet til å kjøre flere kommandoer og pipe og sende resultatet til en kommando til neste kommando ved hjelp av '|'. Følgende eksempel viser en linje (one-liner) som sorterer en liste av prosesser og viser de 5 som har største working set (WS):

PS M:\pc> ps | Sort-Object ws | select -last 5
Handles  NPM(K)    PM(K)      WS(K) VM(M)   CPU(s)     Id ProcessName
-------  ------    -----      ----- -----   ------     -- -----------
    925      56    61748      79692   309    36,08   3944 explorer
   3402      46    98352     107692   163             548 lsass
    586      24   116356     119732   573   163,21  10600 powershell
   2592      52   106916     122792   312           23960 spoolsv
   2792      73   167608     183408   390             584 svchost

Og denne viser antall nummer av alle filer på 'c:' som har .exe som filtype:

PS M:\pc> ls c:\ -r 2>$null | Where-Object {$_.extension -eq ".exe"} | foreach ($_){$sum++}; echo $sum; $sum=0
4779

Format table

Format-Table (ft) gir deg mulighet til å redigere outputen. Du kan bestemme hva du vil se (hvilke egenskaper) og i hvilken rekkefølge.

PS M:\pc> ls c:\ | ft mode , lastwritetime, length , name
Mode                          LastWriteTime                 length                        Name
----                          -------------                 ------                        ----
d----                         31.03.2011 13:38:56                                         adobe
d----                         25.02.2011 12:03:24                                         Daily2
d----                         03.11.2011 14:11:47                                         Dell
d----                         14.11.2011 10:47:44                                         etc
d----                         25.02.2011 13:14:44                                         flexlm
d----                         25.02.2011 12:52:27                                         java
d----                         25.02.2011 12:42:05                                         matlab
d----                         14.07.2009 05:20:08                                         PerfLogs
d----                         25.02.2011 12:45:33                                         php-man
d-r--                         16.11.2011 01:06:08                                         Program Files
d-r--                         16.11.2011 02:08:23                                         Program Files (x86)
d----                         25.02.2011 13:23:54                                         Python25
d----                         25.02.2011 13:09:52                                         Python27
d----                         25.02.2011 13:09:02                                         sonen
d----                         25.02.2011 12:44:02                                         SSH Communications Security
d----                         18.11.2011 13:43:52                                         temp
d----                         16.11.2011 00:50:59                                         Tivoli
d-r--                         20.11.2011 12:01:26                                         Users
d----                         16.11.2011 02:25:30                                         Windows
-a---                         16.09.2008 13:58:50           94417                         eql.output
-a---                         16.09.2008 13:58:49           32050                         eql.y
-a---                         01.12.2006 23:37:14           904704                        msdia80.dll
-a---                         05.01.2002 03:37:28           344064                        msvcr70.dll

Du kan til og med lage dine egne kolonner, det vil si lage nye metoder og egenskaper og legge til outputen. Her lager jeg og legger til en kolonne som viser eieren til mappa/fila:

PS M:\pc> ls c:\ | ft mode, @{Expression={(get-acl ).owner}; Label="OWNER";width=45} , lastwritetime, length , name
Mode               OWNER                                         LastWriteTime      length            Name
----               -----                                         -------------      ------            ----
d----              UIO\shahabb                                   31.03.2011 13:3...                   adobe
d----              UIO\shahabb                                   25.02.2011 12:0...                   Daily2
d----              UIO\shahabb                                   03.11.2011 14:1...                   Dell
d----              UIO\shahabb                                   14.11.2011 10:4...                   etc
d----              UIO\shahabb                                   25.02.2011 13:1...                   flexlm
d----              UIO\shahabb                                   25.02.2011 12:5...                   java
d----              UIO\shahabb                                   25.02.2011 12:4...                   matlab
d----              UIO\shahabb                                   14.07.2009 05:2...                   PerfLogs
d----              UIO\shahabb                                   25.02.2011 12:4...                   php-man
d-r--              UIO\shahabb                                   16.11.2011 01:0...                   Program Files
d-r--              UIO\shahabb                                   16.11.2011 02:0...                   Program Files ...
d----              UIO\shahabb                                   25.02.2011 13:2...                   Python25
d----              UIO\shahabb                                   25.02.2011 13:0...                   Python27
d----              UIO\shahabb                                   25.02.2011 13:0...                   sonen
d----              UIO\shahabb                                   25.02.2011 12:4...                   SSH Communicat...
d----              UIO\shahabb                                   18.11.2011 13:4...                   temp
d----              UIO\shahabb                                   16.11.2011 00:5...                   Tivoli
d-r--              UIO\shahabb                                   20.11.2011 12:0...                   Users
d----              UIO\shahabb                                   16.11.2011 02:2...                   Windows
-a---              UIO\shahabb                                   16.09.2008 13:5... 94417             eql.output
-a---              UIO\shahabb                                   16.09.2008 13:5... 32050             eql.y
-a---              UIO\shahabb                                   01.12.2006 23:3... 904704            msdia80.dll
-a---              UIO\shahabb                                   05.01.2002 03:3... 344064            msvcr70.dll

Eksterne linker

Personlige verktøy
Navnerom
Varianter
Handlinger
Navigasjon
Kategorier
Programvare
Andre
Translate
Verktøy