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
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