Windows PowerShell

Download Report

Transcript Windows PowerShell

Windows PowerShell

Czym jest Windows PowerShell?

 Nowa powłoka tekstowa  Następca cmd.exe

 Nowy skryptowy język programowania  Konkurencja dla shelli Uniksowych Marcin Badurowicz

Wiersz Polecenia

 Jedna pętla, brak złożonych instrukcji warunkowych  Mało możliwości pobierania danych od użytkownika  Brak autouzupełniania poleceń  Małe możliwości w standardzie Marcin Badurowicz

PowerShell

Jako normalna powłoka tekstowa

Cmdlety

 Cmdlet – pojedyncza komenda języka  Wbudowana bądź poprzez rozszerzenie np. napisane w C# (albo innym języku .NET)  Mogą mieć różne parametry  Mogą mieć różne nazwy (aliasy) Marcin Badurowicz

PowerShell

Cmdlety i aliasy

Zmienne

 Wszystkie zmienne są obiektami .NET

 Do zmiennych się odwołuje używając znaku $  Przypisuje do zmiennej wartość operator =  Operatorem , można tworzyć kolekcje  Zmienne mogą mieć zakresy widoczności  Zmiennym można nadawać typ Marcin Badurowicz

PowerShell

Zmienne

Przekierowania

 Do innego cmdletu poprzez znak pipe |  Do pliku poprzez >  Dopisanie do pliku poprzez >> Marcin Badurowicz

Formatowanie

 Wyświetlać w postaci listy Format-List  Wyświetlać w postaci tabeli Format-Table Marcin Badurowicz

Wybieranie

Where-Object  Do właściwości aktualnie „przechodzonego” obiektu dostajemy się poprzez $_ Marcin Badurowicz

PowerShell

Formatowanie i wybór

Obsługa klas .NET

 Tworzenie obiektów poprzez New-Object Marcin Badurowicz

PowerShell

Użycie klas .NET Framework

PowerShell vs Windows Scripting Host

Get-WmiObject Win32_USBControllerDevice | Foreach-Object { [wmi]($_.Dependent) } | Sort Object Description,DeviceID | Format-Table Description,DeviceID -auto strComputer = "." Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") Set colDevices = objWMIService.ExecQuery _ ("Select * From Win32_USBControllerDevice") For Each objDevice in colDevices strDeviceName = objDevice.Dependent

strQuotes = Chr(34) strDeviceName = Replace(strDeviceName, strQuotes, "") arrDeviceNames = Split(strDeviceName, "=") strDeviceName = arrDeviceNames(1) Set colUSBDevices = objWMIService.ExecQuery _ ("Select * From Win32_PnPEntity Where DeviceID = '" & strDeviceName & "'") For Each objUSBDevice in colUSBDevices Wscript.Echo objUSBDevice.Description

WScript.Echo objUSBDevice.PnPDeviceID ' Changed from Description to PnPDeviceID 'as this script can be altered to return any property 'of the Win32_USBControllerDevice collection.

Next Next Marcin Badurowicz