160 likes | 361 Views
Windows PowerShell. Czym jest Windows PowerShell?. Nowa powłoka tekstowa Następca cmd.exe Nowy skryptowy język programowania Konkurencja dla shelli Uniksowych. Wiersz Polecenia. Jedna pętla, brak złożonych instrukcji warunkowych Mało możliwości pobierania danych od użytkownika
E N D
Czym jest Windows PowerShell? • Nowa powłoka tekstowa • Następca cmd.exe • Nowy skryptowy język programowania • Konkurencja dla shelli Uniksowych Marcin Badurowicz <ktos@ktos.info>
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 <ktos@ktos.info>
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 <ktos@ktos.info>
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 <ktos@ktos.info>
PowerShell Zmienne
Przekierowania • Do innego cmdletu poprzez znak pipe | • Do pliku poprzez > • Dopisanie do pliku poprzez >> Marcin Badurowicz <ktos@ktos.info>
Formatowanie • Wyświetlać w postaci listy Format-List • Wyświetlać w postaci tabeli Format-Table Marcin Badurowicz <ktos@ktos.info>
Wybieranie Where-Object • Do właściwości aktualnie „przechodzonego” obiektu dostajemy się poprzez $_ Marcin Badurowicz <ktos@ktos.info>
PowerShell Formatowanie i wybór
Obsługa klas .NET • Tworzenie obiektów poprzez New-Object <jakaś klasa> Marcin Badurowicz <ktos@ktos.info>
PowerShell Użycie klas .NET Framework
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 PowerShell vs Windows Scripting Host Marcin Badurowicz <ktos@ktos.info>