KolegaDudysa Opublikowano 27 Maja 2010 Zgłoś Udostępnij Opublikowano 27 Maja 2010 Skrypty PowerShell Get-ConsoleAsHtml Jest to zwykły skrypt, ale jaki!!! Potrafi zapisać do pliku html to co robiliśmy czy robimy aktualnie w konsoli zachowując przy tym lustrzane odbicie wnętrza konsoli. Bardzo dobre do prezentacji czy dokumentacji, zamieszczenia na stronę www. Przykład: Posh.html (tymczasowo niedostępny). Testowałem na CTP3.1 Copy-Console Jest to również skrypt, który wykonuje lustrzaną kopie konsoli, zapisując do schowka systemowego, którą można wkleić do programu Word. Downland na dole strony.Przykład 2 Get-ConsoleAsText Skrypt, który zapisuje wszystkie czynności, które były wykonywane w konsoli, jako tekst do pliku txt lub dokumentu Word.Przykład 3 Copy-Script To kolejna wariacja. Skrypt ma za zadanie kopiować do schowka systemowego inny skrypt z edytora CTP3, zachowując w pełni strukturę koloru składni, który można wkleić np. do dokumentu Word. Skrypt utworzy nowe menu Copy Script w edytorze, które użyte skopiuje edytowany skrypt do schowka systemowego. Downland na dole strony.Przykład 1 , przykład 2 4 Set-ClipboardScript Skrypt, który spełnia podobne zadanie co do podanych wyżej. Funkcja kopiuje inny skrypt do schowka systemowego zachowując składnię koloru w formacie RTF lub HTML. Przykład użycia w samej konsoli: Przykład PS> Set-ClipboardScript.ps1 "D:\Skrypty\TwójSkrypt" 5 Start-DrawingMode Całkowicie zapomniałem o tym skrypcie, a jest dostępny od jakiegoś czasu. Funkcja skryptu przyda się do prezentacji, umożliwia zaznaczanie "piórem" kawałka kodu z możliwością zmiany koloru, grubości lini, minimalizowania zaznaczenia, czyszczenia zaznaczenia z możliwością dalszego użycia, funkcjonalność podobna do ZoomIt, jednakże nie posiada lupy. Działa w ISE.Przykład 6 Get-UpTime Skrypt podaje czas startu komputera lub czas od ostatniego restartu. Prawidłowo działa w wersji konsoli CTP3.Przykład 7 Get-SystemBootupTime Skrypt pełni tą samą funkcję co podany wyżej, jednakże podaje dokładną godzinę startu systemu lub restartu.Przykład 8 Get-WindowsKey Skrypt umożliwia pobranie klucza produktu systemu Windows, który był użyty podczas instalacji systemu. Skrypt działa w systemach Windows XP, Vista x64, Windows 7 x64 oraz Windows Server 2003 i Windows Home Server. Skrypt umożliwia pobranie klucza produktu zdalnie lub lokalnie.Przykład 9 Show-WmiClass Jeśli chcemy znaleść konkretną klasę czy grupę i nie chce się wpisywać stosu poleceń, wystarczy użyć tego skryptu. Show-WmiClass jest to wyszukiwarka klass, można także szukać klas w innej przestrzeni nazw.Przykład 10 Start-Colourizer Bardzo fajny skrypt, który w czasie rzeczywistym koloruje składnię pisanego skryptu czy poleceń w konsoli.Przykład 11 Limit-FileAge Skrypt pozwala na filtrowanie plików po ostatniej modyfikacji co pozwala na uporządkowanie zawartości folderów i zrobienie porządku. Można filtrować po najświeższej modyfikacji pliku lub najstarszej. Dobre bo nie trzeba rozisywać poleceń, a jedynie określić próg czasowy.-minimumage -maximumage Przykład 12 Convert-PowerPack2Ps1 Skrypt konwertuje pliki PowerPack , które tworzone są dla PowerGUI,poszerzające program o nowe możliwości do formatu pliku PS1 i pozwala korzystać z ich funkcji w PowerShellu. Działa w PowerShell V1 i V2, w wersji CTP3 mogą pojawić się problemy.Przykład 13 Get-MicrosoftUpdates Skrypt umożliwia dokłady przegląd zainstalowanych aktualizacji systemowych pobieranych z witryny WindowsUpdate poprzez usługę automatyczne aktualizacje, listuje szczegółowy opis pobranej aktualizacji, adres, itp, nie wykaże aktualizacji pobranych ręcznie, aby uzyskać pełną listę należy z poziomu wmic, użyć aliasu qfe, z poziomu PS - klasy Win32_QuickFixEngineering (alias Qfe korzysta z tej samej klasy) lub w wersji konsoli V2 jest dostępne polecenie Get-HotFix jednakże nie uzyskamy tak szczegółowego opisu aktualizacji. Do działania, wymaga uruchomionej usługi Automatyczna aktualizacja.Przykład 14 ListSoftwareUpdates Skrypt umożliwia przegląd aktualnie dostępnych aktualizacji dla systemu, pobieranego za pośrednictwem witryny Windows Update. Wyświetla szczegółowe informacje dla każdej aktualizacji. Do działania, wymaga uruchomionej usługi Automatyczna aktualizacja.Przykład 15 Copy-FilePlus Skrypt umożliwia funkcję kopiowania pliku z jednej lokalizacji do innej, wyświetlając w GUI postęp kopiowania. Wymagania: PS V2 CTP3.Przykład 1 , przykład 2 16 Get-WMILocalTime Skrypt umożliwia uzyskanie czasu lokalnego, wyświetla takie wartości, jak dzień w tygodniu, tydzień w miesiącu, kwartał,itp. Do skryptu można dodać np. dzień w roku - More Fun with Dates (and Times). Wymagania: PS V2 CTP3.Przykład 17 Get-DiskFreeSpace Skrypt umożliwia uzyskanie informacji na temat dysku, listując, takie wartości, jak: rozmiar dysku, procent zajętego miejsca, typ plików, ilość wolnego miejsca. Wymagania: PS V2 CTP3.Przykład 18 Get-PerformanceHistory Skrypt umożliwia listowanie historii poleceń, jakie zostały użyte w konsoli, jest zamiennikiem polecenia Get-History, jednakże wyświetla średni czas uruchomienia się polecenia Average oraz czas trwania polecenia Duration. Wersja skryptu umozliwia pracę w PS 1.0, ja testowałem w V2 CTP3. Samo użycie bez przełącznika, wykaże listing ostatniego polecenia, natomiast przełącznikiem -Count, wybieramy liczbę ostatnich użytych poleceń w historii. O rozwoju skryptu będę informował.Przykład 19 Print-File Całkiem fajny skrypt, który umożliwia drukowanie dokumentów Word czy Pdf oraz plików OneNote 2007, Excel 2007 z poziomu konsoli. Pozwala na rekrusywne przeszukanie wybranego katalogu i wydrukowanie całej grupy dokumentów znajdujących się w nim lub drukowanie wybranego dokumentu. Więcej na temat funkcji znajdziecie w temacie Print-File Function. Testowałem w PS V2 CTP3. Przykład Jak wydrukować grupe dokumentów znajdujących się w wybranym katalogu: dir *.doc -r | print-file Jak wydrukować wybrany dokument: print-file c:\downloads\myfile.pdf Word 2007 print-file X:\MójPlik.docx 20 IsAdmin Skrypt umożliwia sprawdzenie czy inny skrypt, polecenie zostało uruchomione z uprawnieniami administratora, pokazując wartość True lub False.21 Profile Skrypt umożliwia ładowanie wybranych funkcji w profilu PowerShell z zewnętrznego pliku, jest to dość wygodne rozwiązanie jeśli skrypt jest większych rozmiarów, a profil posiada takich kilka. W profilu umieszczamy ten niewielki skrypcik w którym podajemy lokalizację wybranego skryptu. Downland na dole strony.22 Set-PowerGUIWelcomePage Skrypt umożliwia zmianę strony powitalnej nakładki PowerGUI, którą to można dostosować do własnych potrzeb. Czy to prywatnie czy to w firmie, wstawiając logo lub jakąś informację czy też zmienić dla estetyki. Wersja skryptu jest zaktualizowana, umożliwia teraz przywrócenie domyślnej strony powitalnej: Set-PowerGUIWelcomePage.ps1 -ResetToDefault $true Przykład W skrypcie należy podać ścieżkę do pliku, który ma zmienić wygląd strony powitalnej, zapisany w formacie MHT, WORD. Przykład Więcej znajdziecie na Dmitry's PowerBlog UpDate: Set-PowerGUIWelcomePage v1.3 - wersja ta jest zgodna z PowerGui 1.8 23 Copy-Data To kolejna wariacja skryptu, który umożliwia kopiowanie plików pomiędzy folderami, wyświetlając w pasku stanu, procent skopiowanych plików. Przykład 24 Replace-Word Skrypt ten pozwala na manipulację tekstu w dokumentach Word, a dokładniej daje możliwość zastąpienia istniejącego tekstu nowym w całym dokumencie. Może być to dość przydatne jeśli dokument jest większych rozmiarów, a do poprawy czy zmiany tekstu jest mało czasu. Udana operacja zmiany tekstu w konsoli zwraca wartość True. Przykład: Przykład 1 , przykład 2 PS> Replace-Word -Document 'C:\Przykład.docx' -Replace "StaryTekst" -NewText "NowyTekst" lub Replace-Word 'C:\Przykład.docx' "StaryTekst" "NowyTekst" 25 TreeForm Skrypt pozwala na listowanie wybranej lokalizacji na dysku, wyświetlając dane w postaci drzewa katalogów, posortowanych alfabetycznie z rozmiarem i liczbą plików w formie rozwijanej listy w GUI. Puste katalogi odznaczone są kolorem. Skrypt domyślnie listuje katalog Temp. Downland na dole strony. Przykład UpDate: 2009/06/01 klik (dodano funkcję debugowania) 26 Tree Skrypt pozwala na listowanie wybranej lokalizacji na dysku z poziomu konsoli w formie drzewa, wyświetlając ilość i rozmiar plików w katalogu czy podkatalogu z wyświetleniem sumy ilości podkatalogów w przeszukiwanej lokalizacji. Skrypt domyślnie listuje katalog Temp. Downland na dole strony. Przykład 27 AddPowerShellShortcutQuickLaunch Skrypt pozwala na stworzenie skrótu PowerShell w pasku zadań. W kodzie można wprowadzić argumenty, takie, jak: uruchamianie bez loga programu, bez profilu, wybrać skrót klawiaturowy czy uruchamiać w danej lokalizacji. Przykład 28 Restart-PowerShell Skrypt pozwala na restartowanie powłoki PowerShell. Skrypt należy umieścić w profilu. Starsze wersje znajdują się w temacie Restart your engine - The PowerShell way Przykład 29 Out-Balloon Skrypt pozwala tworzyć baloniki informacyjne w obszarze powiadomień - zasobnika systemowego. Wymagania: PS V2 CTP3. Dane wprowadzane są bardzo łatwo bo parametrami: Parametry: -Text (pozwala wstawić tekst opisowy) -iconFile (pozwala wstawić wybraną ikone w zasobniku systemowym, domyślną ikoną jest ikona PowerShella) -TimeoutSeconds (pozwala ustalić czas trwania dymka, czas domyślny - 3 sekundy) -Title (pozwala wstawić tytuł informacji w dymku) -BuiltInIcon (pozwala wstawić ikonę informacyją w dymku) Ikony informacyjne: warning (Ostrzeżenie) error (Błąd) info (Informacja) Przykład użycia: Out-Balloon -text "Polecenie nie zostało wykonane" -Title "Błąd" -BuiltInIcon error -TimeoutSeconds 10 Out-Balloon -Text "Polecenie nie zostało wykonane" Więcej przykładów znajdziecie korzystając z pomocy: Get-Help X:\Out-Balloon.ps1 -Example Więcej na temat parametrów znajdziecie korzystając z pomocy: Get-Help X:\Out-Balloon.ps1 -Parameter * Uwaga: Skrypt może ulec aktualizacji. 30 Get-PrinterTestPage Skrypt ten umozliwia wydrukowanie strony testowej wszystkich drukarek zainstalowanych w systemie. Skrypt pobiera wszystkie drukarki, a następnie stara się wydrukować stronę testową. Udany wynik zwraca wartość 0. Brak mozliwości wyboru drukarki. Wymagania: PS V2 CTP3. Przykład 1 ,przykład 2 31 Get-Parameters Skrypt umożliwia otrzymać listę dostępnych parametrów dla wybranego cmdletu. Przykład użycia: PS>Get-Parameters Get-Alias KEY ...................... Name Exclude Scope Definition 32 Get-Fan Skrypt umożliwia otrzymać listę właściwości wentylatora w systemie. Na przykład, wiatraczek chłodzący CPU. Może być przydatny do analizy. Skrypt korzysta z klasy Win32_Fan. Wymagania: PS V2 CTP3.33 UpDate-SysInternals Skrypt pozwala na pobieranie czy aktualizowanie narzędzi Marka Russinovicha i Bryce Cogswella ze stajni SysInternals. Pozwala określić katalog docelowy. Możliwość pobierania pojedyńczych narzędzi do wybranej lokalizacji. Dodatkowo zostaną wykonane kopie zapasowe poprzednich wersji narzędzi. Przykład Pobierz: UpDate-SysInternals.ps1.Txt Get-SysInternals To kolejna wariacja skryptu, który umożliwia na przegląd dostępnych narzędzi z witryny SysInternals, na aktualizację narzędzi, na sprawdzenie i pobranie narzędzi, które nie wystepują w systemie, pobranie pojedyńczego narzędzia, skrypt automatycznie sprawdza ścieżkę po czym wykonuje aktualizację -> Get-SysInternals (script to update your tools) 34 Get-EnvPath To mała funkcja, która ma za zadanie wyświetlić listę ścieżek znajdujących się z zmiennej środowiskowej. Przykład 35[/b] New-Script 2 Pozwala utworzyć nowy skrypt z serii poleceń zachowanej w historii podczas sesji lub skopiować je do schowka systemowego. Przykład: New-Script NowySkrypt 4 -tworzy skrypt z ostatnich czterech komend New-Script Clipboard -id 10,11,12,14 -wysyła wybrane polecenia z historii do schowka systemowego. Uwaga: Clipboard korzysta z Cmdletu zawartegp w PSCX - Out-Clipoard, uruchomienie omawianego skryptu automatycznie doda snap-in PSCX do sesji, aby skorzystać w tej funkcji. Notepad (New-Script NowySkrypt 20) -wysyła dwdzieścia ostatnich poleceń użytych w historii do skryptu NowySkrypt, a następnie otwiera go w notatniku. Skrypty zostaną zapisane w bierzącym folderze, jakim się znajdujemy. Przykład Źródło skryptu: Creating PowerShell Scripts from your Command History 36 Start-ProcessAsAdministrator Skrypt pozwala na uruchomienie dowlonego programu z poziomu konta administracyjnego. Wprowadza identyczny monit "Uruchom jako" i pozwala wybrać konto. Jest to dość wygodna metoda. Przykład 37 Out-Zip Skrypt pozwala na tworzenie archiwum z plików lub katalogów. Pozwala na rekrusywne przeszykanie katalogu czy katalogów i stworzenia urchiwum po typie plików. Przykład 38 Create-myZIP Skrypt również pozwala na tworzenie archiwum. Wyświetla w pasku stanu przebieg operacji. Pozwala także stworzyć archiwum w chierarchi plików i folderów czyli zachować drzewo. Przypuścmy że mamy katalog ze z różnymi plikami i zdjęciami, a w nim podkatalogi, które również posiadają zdjęcia. Chcemy stworzyć archiwum tylko ze zdjęciami z zachowaniem drzewa katalogów. Do tego posłuży parametr -IncludeSubDir. Do tej czynności skrypt używa darmowej biblioteki ICSharpCode.SharpZipLib.dll, którą można pobrać stąd. Domyślna lokalizacja biblioteki "C:\Documents and Settings\UserProfile" Przykład 1 , przykład 2 Paczka PSCX zawiera praktycznie taki sam cmdlet Write-Zip, którym można wykonać tą samą czynność. Jednakże nie każdemu może być potrzebny cały zbiór, a właśnie pojedyńcza funkcja. 40 Out-Report Pozwala wysyłać wyniki do programu Excel, PDF czy pliku obrazu .jpeg. Aby skrypt mógł działać poprawnie wymagane jest: Pobranie i zainstalowanie Microsoft Report Viewer 2008 SP1 Redistributable lub wersje wcześniejsze, ja testowałem na Microsoft Report Viewer Redistributable 2008 oraz ReportExporters do eksportowania do pliku Pdf, Excel, obrazów, całkowicie darmowy, nie wymagający instalacji, dostępny w codeproject. Po pobraniu i wypakowaniu, aplikację należy umieścić w folderze "Libraries" w domyślnej lokalizacji "C:\". Przykład: get-alias | out-report "c:\aliasy.pdf" pdf Konsola , Excel , Pdf 41 Get-HotFix Funkcja pozwala na wykaz zainstalowanych poprawek systemowych zdalnie lub lokalnie, jako uzupełnienie funkcjonalności w konsoli V1, wersja V2 posiada juz taki cmdlet.42 Get-WmiNamespace Pozwala na przegląd nazw WMI lokalnie lub zdalnie. Przykład 43 Get-FolderUsage Pozwala sprawdzić rozmiar katalogu czy grupy katalogów. Downland na dole strony. Przykład 44 Scan-Port Pozwala skanować lokalne porty lub na zdalnej maszynie oraz wykonać test portów. Użycie: Scan-port -ComputerName XXX -ports 135, 445, 1024 Przykład 45 Get-Spelling Pozwala sprawdzić ortografię języka angielskiego. Wyświetla porpozycje i sugestie dla danego słowa z witryny Yahoo, Cdyne. Przykład 46 GetServiceCreateWordTable Całkiem fajny skrypt i dodatkowo także w VBS. Pozwala zebrać wyniki do programu Word 2007, ustawia każde własności w kolumnach. Wstawianie dodatkowych kolumn jest dość proste i można korzystać z różnych klas dla uzyskania różnych informacji. Fomatowanie używa metody AutoFormat, który to posiada gotowe "szablony". Jest ich około 43. Zresztą można tworzyć własne. W powyższym linku są dokumentacje metody. Po czym tworzyć dokumentacje w pdf. Przykład: $objTable.AutoFormat(20) 47 Get-ChildItemRecurse Funkcja pozwala na rekrusywne wyszukiwanie plików czy podkatalogów z określeniem poziomu wyszukiwania. Im wyższy poziom, tym wyszukiwanie jest bardziej szczegółowe, jak wykaz podlatalogów, plików w podkatalogach, bez podkatalogów. Wymagania: PS v2 CTP3Przykład Parametr -FileGlob pozwala na wyszukanie pliku czy podkatalogu według pasującego wzorca. Przykład UpDate: Klik 48 Get-FileVersionInfo Skrypt ten pobiera i wyświetla informacje o wersji pliku, identyczne polecenie posiada pscx. Przykład 49 Get-WindowsUpdate Skrypt ten umożliwia na przegląd dostępnych aktualizacji w witrynie WindowsUpdate oraz na ich pobranie i zainstalowanie. Do poprawnego działania wymaga uruchomionej usługi Aktualizacje automatyczne.Przykład 50 Compile-Help Skrypt ten umożliwia generowanie plików pomocy HTML Help dla aliasów, cmdletów, dostawców, snap-in, które trzeba dodać do sesji, aby została dla nich stworzona pomoc. Do poprawnego działania skryptu należy pobrać HTML Help Workshop, który pozwala tworzyć dokumenty w formacie .chm, kompilację należy wykonać ręcznie. Przełącznikiem -GroupBySnapIn, grupujemy cmdlety w osobnych tematach zestawów. Przełącznikiem -OutDirectory, wybieramy ścieżkę do tworzonych plików pomocy. Get-CompiledHelpDodatkowo funkcją Get-CompiledHelp, możemy korzystać z pomocy ze stworzonego pliku, wywołując interesujący nas cmdlet z poziomu konsoli, który zostanie otwarty w pliku. Przykład: Get-CompiledHelp Export-OneNote Domyślna lokalizacja pliku pomocy - C:\, jeśli plik będzie w innej to nie zostanie wywołana pomoc, więc w skrypcie należy ustawić ściężkę pliku w którym aktualnie się znajduje. Uwaga! Aby móc skorzystać z pomocy cmdletów innych wydawców poleceniem Get-CompiledHelp z poziomu konsoli, konkretny snap-in musi być dodany do sesji, w innym przypadku pomoc będzie niedostępna. Test przeprowadzony w systemie: XP SP3, PS V2 CTP3 Pobierz próbkę pliku pomocy (CTP3), zawarte są w niej paczki innych wydawców Pscx 1.2, OnetNote Provider, Pshx-SAPIEN, ITVisions_PowerShell_Extensions, SDMSoftware.PowerShell.GPMC, VMware, GetGoogleGeocodeSnapin, Com.H9Labs.PS.Commands -> Download - tymczasowo niedostępny 51 Get-BufferHtml Jest to kolejna wariacja, która wykonuje lustrzaną kopię konsoli do html-a. Dodakowo pozwala parametrami zmienić wielkość czcionki -fontsize, ustalić inną czcionkę-font, ustalić ilość ostatnich linii, które mają zostać zawarte w pliku html -last , usuwac puste spacje -trim, wprowadzić styl -palette, style: PowerShell - zachowuje lustrzaną kopię wnętrza konsoli (wartość domyślna) Standart - zmienia kolor na DarkMagenta i DarkYellow, wyszczególniając komunikaty konsoli Print - nadaje się do wydruku, zmienia kolorystkę na jasno-szarą. Przykład użycia: Get-BufferHtml -fontsize 12 -font 'Courier' -last 20 > Konsola.html Przykład: Tymczasowo niedostępny. 52 Get-ChildItemColor Skrypt pozwala przeszukiwać katalogi sortując typy plików w określonych kolorach. Źródło: Get-ChildItem (dir) Results Color-Coded by Type Przykład: klik. 53 One-Liner Skrypt pozwala przeszukiwać katalogi w poszukiwaniu pojedyńczych skryptów, wykazać ich nazwę, ścieżkę, datę utworzenia, ostatnią modyfikację, podpis cyfrowy. Przykład: klik. 54 Get-Packet Wyświetla wszystkie przychodzące pakiety IP. Przykład: klik. 55 Odnośnik do komentarza
KolegaDudysa Opublikowano 28 Maja 2010 Autor Zgłoś Udostępnij Opublikowano 28 Maja 2010 (edytowane) Select-PropertyValue Filtr pozwala na wygodny sposób odczytania wszystkich właściwości lub ich wartości oraz użyć funkcji debugowania. 56 001002003004005006007008009010011012013014015 />016017018019020021022023024025026027028029030 031032033034035036037038039040041042043044 045046047048049050051052053054055056057058059 />060061062063064065066067068069070071072073074 075076077078079080081082083084 # ============================================================================================== # # Microsoft PowerShell Source File -- Created with SAPIEN Technologies PrimalScript 2009 # # NAME: Select-PropertyValue.ps1 # # AUTHOR: Jeffery Hicks , SAPIEN Technologies # DATE : 6/10/2009 # # COMMENT: This function can be used in a pipelined expression # to return all properties of a given object that have a defined value. # # Using an expression like: # # get-process PowerShell | select * # # Is a handy way to see all properties and their values. But sometimes # you may only want to see properties that have actual values. For # those situations, use this function. # # get-process PowerShell | Select-PropertyValue # # This if you dot source this script it will also create an # alias for the function of spv # # get-process PowerShell | spv # # The -debug parameter will turn on debug messages. Use # -NoWMiSystem to filter out WMI System properties like # __GENUS when you pipe a WMI object to the function. # DISCLAIMER AND WARNING: # THIS CODE AND INFORMATION ARE PROVIDED "AS IS" WITHOUT WARRANTY OF ANY # KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE # IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. # TEST THOROUGHLY IN A NON-PRODUCTION ENVIRONMENT. IF YOU DON'T KNOW WHAT THIS # SCRIPT WILL DO...DO NOT RUN IT! # ============================================================================================== Filter Select-PropertyValue { Param([switch]$NoWMISystem,[switch]$debug) if ($debug) { $debugPreference="Continue" } Write-Debug "In process" if (-Not $properties) { Write-Debug "Creating property list" #get properties for the pipelined object sorted by property name $properties=$_ | Get-Member -membertype Properties | sort Name #filter out WMI System properties if -NoWMISystem if ($NoWMISystem) { Write-Debug "Filtering out WMI System properties" $properties=$properties | where {$_.name -notlike "__*"} } Write-Debug "Found $($properties.count) properties" } #create an empty custom object Write-Debug "Creating empty object" $obj=New-Object PSObject #enumerate the list of properties foreach ($property in $properties) { Write-Debug "Checking $($property.name)" #if object has a value for the current property if ($_.($property.name)) { Write-Debug "found value $($_.($property.name))" #assign properties $obj | Add-Member -MemberType Noteproperty -name $property.Name -value ($_.($property.name)) } #end If } #end ForEach #write the custom object to the pipeline write $obj } #end function Set-Alias -Name spv -value Select-PropertyValue # =============== # #                 # # Przykład użycia # #                 # # =============== # PS> Get-WmiObject Win32_Service | spv -NoWMISystem Caption                 : Karta wydajności WMI CreationClassName       : Win32_Service Description             : Udostępnia informacje biblioteki wydajności uzyskane do dostawców WMI HiPerf. DisplayName             : Karta wydajności WMI ErrorControl            : Normal ExitCode                : 1077 Name                    : WmiApSrv PathName                : C:\WINDOWS\system32\wbem\wmiapsrv.exe ServiceType             : Own Process StartMode               : Manual StartName               : LocalSystem State                   : Stopped Status                  : OK SystemCreationClassName : Win32_ComputerSystem SystemName              : Komputer PS> Get-WmiObject Win32_Service | spv __CLASS                 : Win32_Service __DERIVATION            : {Win32_BaseService, CIM_Service, CIM_LogicalElement, CIM_ManagedSystemElement} __DYNASTY               : CIM_ManagedSystemElement __GENUS                 : 2 __NAMESPACE             : root\cimv2 __PATH                  : \\Komputer\root\cimv2:Win32_Service.Name="WmiApSrv" __PROPERTY_COUNT        : 25 __RELPATH               : Win32_Service.Name="WmiApSrv" __SERVER                : MIKI __SUPERCLASS            : Win32_BaseService Caption                 : Karta wydajności WMI CreationClassName       : Win32_Service Description             : Udostępnia informacje biblioteki wydajności uzyskane do dostawców WMI HiPerf. DisplayName             : Karta wydajności WMI ErrorControl            : Normal ExitCode                : 1077 Name                    : WmiApSrv PathName                : C:\WINDOWS\system32\wbem\wmiapsrv.exe ServiceType             : Own Process StartMode               : Manual StartName               : LocalSystem State                   : Stopped Status                  : OK SystemCreationClassName : Win32_ComputerSystem SystemName              : Komputer ConvertWordToPdf Skrypt pozwala na konwertowanie dokumentów word .doc, docx do pliku pdf. Może okazać się bardzo pomocny, kiedy zachodzi potrzeba konwertowania kilkudziesięciu lub więcej dokumentów jednocześnie, czyniąc pracę wygodniejszą i mniej czasochłonną. Wymagania: Word 2007, dodatek: 2007 Microsoft Office Add-in: Microsoft Save as PDF or XPS 57 001002003004005006007008009010011012013014015 />016017 # NAME: ConvertWordToPdf.ps1 $wdFormatPDF = 17 $word = New-Object -ComObject word.application $word.visible = $false $folderpath = "c:\Test*" $fileTypes = "*.docx","*doc" Get-ChildItem -path $folderpath -include $fileTypes | foreach-object ` { $path = ($_.fullname).substring(0,($_.FullName).lastindexOf(".")) "Converting $path to pdf ..." $doc = $word.documents.open($_.fullname) $doc.saveas([ref] $path, [ref]$wdFormatPDF) $doc.close() } $word.Quit() ConvertFrom-DMTFDate Filtr pozwala na konwertowanie dat WMI 58 [color= #fff; background-color: #012456][PS:10][/color] [color= #ff0; background-color: #012456]Get-WmiObject[/color] [color= #0ff; background-color: #012456]Win32_NTLogEvent[/color] [color= #088; background-color: #012456]|[/color] [color= #ff0; background-color: #012456]where[/color] {[color= #0f0; background-color: #012456]$_[/color][color= #088; background-color: #012456].[/color]logfile [color= #088; background-color: #012456]-eq[/color] [color= #0ff; background-color: #012456]"ProcessWatcher"[/color]} [color= #088; background-color: #012456]|[/color] >> [color= #ff0; background-color: #012456]ConvertFrom-DMTFDate[/color] [color= #088; background-color: #012456]|[/color] >> [color= #ff0; background-color: #012456]ft[/color] [color= #0ff; background-color: #012456]Message[/color][color= #088; background-color: #012456],[/color] [color= #0ff; background-color: #012456]LogFile[/color][color= #088; background-color: #012456],[/color] [color= #0ff; background-color: #012456]TimeGenerated[/color][color= #088; background-color: #012456],[/color] [color= #0ff; background-color: #012456]TimeWritten[/color] [color= #ff0; background-color: #012456]-AutoSize[/color] >> Message Logfile TimeGenerated TimeWritten ------- ------- ------------- ----------- mmc.exe... ProcessWatcher 2009-06-15 10:15:59 2009-06-15 10:15:59 mmc.exe... ProcessWatcher 2009-06-15 10:15:55 2009-06-15 10:15:55 mmc.exe... ProcessWatcher 2009-06-15 10:15:51 2009-06-15 10:15:51 cmd.exe... ProcessWatcher 2009-06-15 10:15:44 2009-06-15 10:15:44 cmd.exe... ProcessWatcher 2009-06-15 10:15:42 2009-06-15 10:15:42 iexplore.ex... ProcessWatcher 2009-06-15 10:15:37 2009-06-15 10:15:37 iexplore.ex... ProcessWatcher 2009-06-15 10:15:34 2009-06-15 10:15:34 mmc.exe... ProcessWatcher 2009-06-15 10:15:32 2009-06-15 10:15:32 [color= #fff; background-color: #012456][PS:11][/color] [color= #ff0; background-color: #012456]Get-WmiObject[/color] [color= #0ff; background-color: #012456]Win32_NTLogEvent[/color] [color= #088; background-color: #012456]|[/color] [color= #ff0; background-color: #012456]where[/color] {[color= #0f0; background-color: #012456]$_[/color][color= #088; background-color: #012456].[/color]logfile [color= #088; background-color: #012456]-eq[/color] [color= #0ff; background-color: #012456]"ProcessWatcher"[/color]} [color= #088; background-color: #012456]|[/color] >> [color= #ff0; background-color: #012456]ft[/color] [color= #0ff; background-color: #012456]Message[/color][color= #088; background-color: #012456],[/color] [color= #0ff; background-color: #012456]LogFile[/color][color= #088; background-color: #012456],[/color] [color= #0ff; background-color: #012456]TimeGenerated[/color][color= #088; background-color: #012456],[/color] [color= #0ff; background-color: #012456]TimeWritten[/color] [color= #ff0; background-color: #012456]-AutoSize[/color] >> Message LogFile TimeGenerated TimeWritten ------- ------- ------------- ----------- mmc.exe... ProcessWatcher 20090615101559.000000+120 20090615101559.000000+120 mmc.exe... ProcessWatcher 20090615101555.000000+120 20090615101555.000000+120 mmc.exe... ProcessWatcher 20090615101551.000000+120 20090615101551.000000+120 cmd.exe... ProcessWatcher 20090615101544.000000+120 20090615101544.000000+120 cmd.exe... ProcessWatcher 20090615101542.000000+120 20090615101542.000000+120 iexplore.ex... ProcessWatcher 20090615101537.000000+120 20090615101537.000000+120 iexplore.ex... ProcessWatcher 20090615101534.000000+120 20090615101534.000000+120 mmc.exe... ProcessWatcher 20090615101532.000000+120 20090615101532.000000+120 Set-LocalPassword Pozwala zmienić (ustawić) lokalne hasło konta na jednym lub większej liczbie komputerów. Przykład: Klik 59 Prevent-Screensaver Pozwala na "imitację" aktywności użytkownika, co ma zapobiec pojawianiu się wygaszacza ekranu. Domyślnie jest to 60 minut. 60 rtfPSHighlighter Skrypt dobry do prezentacji, w oddzielnym oknie WPF prezentuję składnię kodu w kolorze wybranego skryptu. Wymagania: PS 2.0, testowane w CTP3. 61 g Funkcja pomocna do przechodzenia w konsoli do innych katalogów, poprzez skróty - aliasy, które w prosty sposób można dodawać własne. 62 Usuwanie pustych podkatalogów Funkcje pomocne do usuwania pustych podkatalogów w głównym katalogu. Puste katalogi zostaną również usunięte. FindFolder Powershell function to remove empty directories 63 Prune-Directory Prune Directories with PowerShell 64 Set-FileLines Skrypt ma za zadanie usuwać puste wiersze w plikach tekstowych. Uruchomienie bez parametru usunie wszystkie puste wiersze.Parametr -lines (opcjonalny) pozwala określić ile wierszy ma pozostać w pliku, usuwa każde wiersze. 65 CreateCab Skrypt służy do tworzenia archiwum .Cab 66 Find-String Skrypt wyszukuje tekstu w plikach. Autor twierdzi że działa szybciej niż grep i ack. Korzysta z Out-ColorMatchInfo do podświetlenia kolorem wyniku. Download (Find-String & Out-ColorMatchInfo) 67 Edit-File in Notepad++ Funkcja pozwala na edycję kodu źródłowego w Notepad++. Parametrami można określić czy ma zostać otwarty jeden plik czy wiele, uruchomić notatnik bez wtyczek, uruchomić bez zapamiętania poprzedniej sesji, otworzyć w konkretnym numerze wiersza, wybrać kolorowanie składni, otworzyć plik w trybie "tylko do odczytu", wyłączyć karte interfejsu. 68 Out-Notepad Funkcja pozwala na przesłanie wyniku do pliku tekstowego i automatyczne otwarcie w notatniku. 69 Get-SourceAsHTML Funkcja pozwala na zapis do pliku html wybranego skryptu z kolorowaniem składni. Aby zapisać dane do schowka systemowego należy mieć zainstalowany PSCX. #---------------------------------------------------------------- # function Get-PrimeFactors #---------------------------------------------------------------- function Get-PrimeFactors() { param([uint64]$number = $null); [uInt64[]]$factors = @(); if ( $number ) { [uInt64]$max = [Math]::Sqrt($number); # iterate from 2 to the Sqrt of $number for([uInt64]$factor=2; $factor -le $max; ++$factor) { # Iterate through until we get to the first factor (modulus eq 0). if ( ($number % $factor) -eq 0 ) { # If modulus zero then it's divisible so add it to the array $factors += @($factor); # Call function recursively on the number divided by the factor. $number /= $factor; $subfactors = Get-PrimeFactors $number; if ( ($null -ne $subfactors) -and ($subfactors.Length -ne 0) ) { $factors += $subfactors; } else { $factors += @($number); } break; } } } $factors; } 70 Replace-InTextFile Skrypt pozwala na zamienienie tekstu na inny w pliku tekstowym. 71 Install-Module Funkcja pozwala na instalację pojedyńczego modułu do katalogu Modules lub do innej lokalizacji oraz na wszystkich kontach w systemie. Wystarczy podać lokalizację modułu, a funkcja utworzy dla niej folder o takiej samej nazwie i przeniesie całość w wyznaczone miejsce. Jest to dość wygodne oraz rozwiązuje problem, gdy omyłkowo folder posiada błąd w nazwie i konsola ma kłopot z uruchomieniem samego modułu. 72 Get-KbInfo Get-KbInfo pozwala na szybkie odczytanie w artykule bazy wiedzy Microsoft informacji o pliku lub poprawce. 73 Out-HTMLTable Funkcja tworzy zaawansowany raport html z możliwością sortowania wyników. Wymaga wprowadzenia przynajmniej dwóch właściwości klasy czy obiektu oraz wprowadzenia ścieżki i nazwy istniejącego folderu do zapisania wyniku. Jeśli folder nie istnieje to zostanie utworzony. Funkcja tworzy trzy pliki - plik html, plik css oraz skrypt .js , który umożliwia sortowanie wyników w pliku html. Parametrem pozwala określić tytuł raportu w oknie przeglądarki. 74 Format-Hex Wyświetla pliki w formacie szesnastkowym. Coś w stylu edytora heksadecymalnego. 75 Get-SysInternalsHelp Funkcja łączy się z witryną Sysinternals i pobiera wszystkie pliki pomocy, konwertując ją do plików pomocy PowerShella z których pomocy można korzystać poleceniem Get-Help 76 Take-Screenshot Skrypt pozwala wykonać zrzut całego ekranu lub aktywnego okna i zapisać do pliku (jpg,png,bmp). Domyślny format zapisu to bmp. 77 ConvertDoc-ToHtml Skrypt pozwala przekonwertować dokument Word (doc, docx) do formatu Html. Wygodne bo umożliwia konwersję całej grupy plików. 78 Search-WmiNamespace Szuka klas wmi. Parametrami można określić czy ma szukac tylko klasy, klasy lub właściwości czy wyszukiwać klasy, właściowści, oraz opisy, które podane są we wzorcu. 79 Search-Help Search-Help szuka w dokumentacji Pomocy PowerShella zadanego słowa kluczowego. 80 Demo-HereString Pozwala na dodanie pomocy do skryptu z wyborem opcji. 81 Get-SysInternals (Keep in-sync with SysInternals tools) Pobiera, aktualizuje narzędzia SysInternals za pomocą usługi SysInternals Live. Domyślnie tworzy folder sysint na dysku C:\. Tworzy ChangeLog z dziennikiem zdarzeń w katalogu źródłowym. Do poprawnego działania musi być uruchomiona usługa systemowa WebClient. 82 Edytowane 12 Lutego 2011 przez KolegaDudysa Odnośnik do komentarza
Rekomendowane odpowiedzi
Jeśli chcesz dodać odpowiedź, zaloguj się lub zarejestruj nowe konto
Jedynie zarejestrowani użytkownicy mogą komentować zawartość tej strony.
Zarejestruj nowe konto
Załóż nowe konto. To bardzo proste!
Zarejestruj sięZaloguj się
Posiadasz już konto? Zaloguj się poniżej.
Zaloguj się