Skocz do zawartości

Skrypty PowerShell


Rekomendowane odpowiedzi

64px-Windows_PowerShell_icon.pngSkrypty PowerShell

 

 

 

Get-ConsoleAsHtml

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png Skrypt podaje czas startu komputera lub czas od ostatniego restartu. Prawidłowo działa w wersji konsoli CTP3.

Przykład

7

 

Get-SystemBootupTime

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png Bardzo fajny skrypt, który w czasie rzeczywistym koloruje składnię pisanego skryptu czy poleceń w konsoli.

Przykład

11

 

Limit-FileAge

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png Skrypt umożliwia sprawdzenie czy inny skrypt, polecenie zostało uruchomione z uprawnieniami administratora, pokazując wartość True lub False.

21

 

Profile

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png 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

outbal.jpg

 

Out-Balloon -Text "Polecenie nie zostało wykonane"

outbal1.jpg

 

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

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png 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

 

sysinterpu3.jpg 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)

 

showtools.th.jpg

34

 

Get-EnvPath

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png Pozwala na przegląd nazw WMI lokalnie lub zdalnie.

 

Przykład

43

 

Get-FolderUsage

 

poweraj6.png Pozwala sprawdzić rozmiar katalogu czy grupy katalogów. Downland na dole strony.

 

Przykład

44

 

Scan-Port

 

poweraj6.png 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

 

poweraj6.png Pozwala sprawdzić ortografię języka angielskiego. Wyświetla porpozycje i sugestie dla danego słowa z witryny Yahoo, Cdyne.

 

Przykład

46

 

GetServiceCreateWordTable

 

poweraj6.png 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)

 

wordster.th.jpg docpdffshell.th.jpg

47

 

Get-ChildItemRecurse

 

poweraj6.png 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 CTP3

Przykład

 

Parametr -FileGlob pozwala na wyszukanie pliku czy podkatalogu według pasującego wzorca.

 

Przykład

 

UpDate: Klik

48

 

Get-FileVersionInfo

 

poweraj6.png Skrypt ten pobiera i wyświetla informacje o wersji pliku, identyczne polecenie posiada pscx.

Przykład

49

 

Get-WindowsUpdate

 

poweraj6.png 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

 

poweraj6.png 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.

 

ceratehelp.th.jpg

 

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.

 

helptopic.th.jpg gethelptopic.th.jpg

 

Przełącznikiem -GroupBySnapIn, grupujemy cmdlety w osobnych tematach zestawów.

 

Przełącznikiem -OutDirectory, wybieramy ścieżkę do tworzonych plików pomocy.

 

Get-CompiledHelp

Dodatkowo 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

openhelp.th.jpg

 

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

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png 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

 

poweraj6.png Wyświetla wszystkie przychodzące pakiety IP.

 

Przykład: klik.

55

Odnośnik do komentarza
Pomoc jest darmowa, ale proszę rozważ przekazanie dotacji na utrzymanie serwisu: klik.

Select-PropertyValue

 

 

 

poweraj6.png Filtr pozwala na wygodny sposób odczytania wszystkich właściwości lub ich wartości oraz użyć funkcji debugowania.

56

 

 

 

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015

/>016
017
018
019
020
021
022
023
024
025
026
027
028
029
030


031
032
033
034
035
036
037
038
039
040
041
042
043
044

045
046
047
048
049
050
051
052
053
054
055
056
057
058
059

/>060
061
062
063
064
065
066
067
068
069
070
071
072
073
074


075
076
077
078
079
080
081
082
083
084

# ==============================================================================================

 

#

 

# 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

 

 

 

 

 

 

 

 

  1. # =============== #

     

  2. #                 #

     

  3. # Przykład użycia #

     

  4. #                 #

     

  5. # =============== #

     

  6.  

  7. PS> Get-WmiObject Win32_Service | spv -NoWMISystem

     

  8.  

  9. Caption                 : Karta wydajności WMI

     

  10. CreationClassName       : Win32_Service

     

  11. Description             : Udostępnia informacje biblioteki wydajności uzyskane do dostawców WMI HiPerf.

     

  12. DisplayName             : Karta wydajności WMI

     

  13. ErrorControl            : Normal

     

  14. ExitCode                : 1077

     

  15. Name                    : WmiApSrv

     

  16. PathName                : C:\WINDOWS\system32\wbem\wmiapsrv.exe

     

  17. ServiceType             : Own Process

     

  18. StartMode               : Manual

     

  19. StartName               : LocalSystem

     

  20. State                   : Stopped

     

  21. Status                  : OK

     

  22. SystemCreationClassName : Win32_ComputerSystem

     

  23. SystemName              : Komputer

     

  24.  

  25. PS> Get-WmiObject Win32_Service | spv 

     

  26.  

  27. __CLASS                 : Win32_Service

     

  28. __DERIVATION            : {Win32_BaseService, CIM_Service, CIM_LogicalElement, CIM_ManagedSystemElement}

     

  29. __DYNASTY               : CIM_ManagedSystemElement

     

  30. __GENUS                 : 2

     

  31. __NAMESPACE             : root\cimv2

     

  32. __PATH                  : \\Komputer\root\cimv2:Win32_Service.Name="WmiApSrv"

     

  33. __PROPERTY_COUNT        : 25

     

  34. __RELPATH               : Win32_Service.Name="WmiApSrv"

     

  35. __SERVER                : MIKI

     

  36. __SUPERCLASS            : Win32_BaseService

     

  37. Caption                 : Karta wydajności WMI

     

  38. CreationClassName       : Win32_Service

     

  39. Description             : Udostępnia informacje biblioteki wydajności uzyskane do dostawców WMI HiPerf.

     

  40. DisplayName             : Karta wydajności WMI

     

  41. ErrorControl            : Normal

     

  42. ExitCode                : 1077

     

  43. Name                    : WmiApSrv

     

  44. PathName                : C:\WINDOWS\system32\wbem\wmiapsrv.exe

     

  45. ServiceType             : Own Process

     

  46. StartMode               : Manual

     

  47. StartName               : LocalSystem

     

  48. State                   : Stopped

     

  49. Status                  : OK

     

  50. SystemCreationClassName : Win32_ComputerSystem

     

  51. SystemName              : Komputer

     

     

     

 

 

 

 

 

 

ConvertWordToPdf

 

 

 

poweraj6.png 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

 

 

 

converttopdf.jpg

 

 

 

 

001
002
003
004
005
006
007
008
009
010
011
012
013
014
015

/>016
017

# 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

 

 

poweraj6.png 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

 

 

poweraj6.png Pozwala zmienić (ustawić) lokalne hasło konta na jednym lub większej liczbie komputerów.

 

Przykład: Klik

59

 

 

 

 

 

 

Prevent-Screensaver

 

 

poweraj6.png Pozwala na "imitację" aktywności użytkownika, co ma zapobiec pojawianiu się wygaszacza ekranu. Domyślnie jest to 60 minut.

 

60

 

 

 

 

 

 

rtfPSHighlighter

 

 

poweraj6.png Skrypt dobry do prezentacji, w oddzielnym oknie WPF prezentuję składnię kodu w kolorze wybranego skryptu. Wymagania: PS 2.0, testowane w CTP3.

 

 

shelllights.th.png

 

 

61

 

 

 

 

 

 

g

 

 

poweraj6.png 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.

 

 

skroshell.th.jpg

 

 

62

 

 

 

 

 

 

 

Usuwanie pustych podkatalogów

 

 

poweraj6.png 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

findfolder.th.jpg

 

 

 

 

Prune-Directory

Prune Directories with PowerShell

64

delprundirect.th.jpg

 

 

 

 

 

 

 

Set-FileLines

 

 

poweraj6.png 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.

 

 

 

 

 

setfilelines.th.png

 

65

 

 

 

 

 

 

 

 

CreateCab

 

 

poweraj6.png

 

Skrypt służy do tworzenia archiwum .Cab

 

 

 

createcab.th.png

 

 

 

 

expandcab.th.png

 

66

 

 

 

 

 

 

 

Find-String

 

 

poweraj6.png

 

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)

 

 

 

 

findstring.th.png

 

67

 

 

 

 

 

 

 

Edit-File in Notepad++

 

 

poweraj6.png

 

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.

 

 

 

 

 

 

cosnolestartpad.th.png

 

 

 

 

notepadl.th.png

 

68

 

 

 

 

 

 

 

Out-Notepad

 

 

poweraj6.png

 

Funkcja pozwala na przesłanie wyniku do pliku tekstowego i automatyczne otwarcie w notatniku.

 

 

 

 

outnotepad.th.png

 

69

 

 

 

 

 

 

Get-SourceAsHTML

 

 

poweraj6.png

 

 

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

 

 

poweraj6.png

 

Skrypt pozwala na zamienienie tekstu na inny w pliku tekstowym.

 

 

 

 

 

replacetxt.th.png

 

71

 

 

 

 

 

 

Install-Module

 

 

poweraj6.png

 

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.

 

 

 

 

instmod.th.png

72

 

 

 

 

 

 

Get-KbInfo

 

 

poweraj6.png

 

Get-KbInfo pozwala na szybkie odczytanie w artykule bazy wiedzy Microsoft informacji o pliku lub poprawce.

 

 

 

 

baseget.th.png

73

 

 

 

 

 

 

 

 

Out-HTMLTable

 

 

poweraj6.png

 

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.

 

 

 

 

outhtmltable.th.png

74

 

 

 

 

 

 

 

 

Format-Hex

 

 

poweraj6.png

 

Wyświetla pliki w formacie szesnastkowym. Coś w stylu edytora heksadecymalnego.

 

 

 

 

formathex1.th.png

 

75

 

 

 

 

 

 

 

 

Get-SysInternalsHelp

 

 

sysinterpu3.jpg

 

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

 

 

 

 

syshelp1.th.png

 

syshelp.th.jpg

76

 

 

 

 

 

Take-Screenshot

 

 

poweraj6.png

 

Skrypt pozwala wykonać zrzut całego ekranu lub aktywnego okna i zapisać do pliku (jpg,png,bmp). Domyślny format zapisu to bmp.

 

 

takescreen.th.png

 

 

 

 

 

77

 

 

 

 

 

 

 

 

ConvertDoc-ToHtml

 

 

poweraj6.png

 

Skrypt pozwala przekonwertować dokument Word (doc, docx) do formatu Html. Wygodne bo umożliwia konwersję całej grupy plików.

 

 

doctohtml.th.png

 

 

 

 

 

78

 

 

 

 

 

 

Search-WmiNamespace

 

 

poweraj6.png

 

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.

 

 

psserwmina.th.png

 

 

 

 

 

79

 

 

 

 

 

 

Search-Help

 

 

poweraj6.png

 

Search-Help szuka w dokumentacji Pomocy PowerShella zadanego słowa kluczowego.

 

 

pssehelp.th.png

 

 

 

 

 

80

 

 

 

 

 

 

 

Demo-HereString

 

 

poweraj6.png

 

Pozwala na dodanie pomocy do skryptu z wyborem opcji.

 

 

fixhelp.png

 

 

 

 

 

81

 

 

 

 

 

 

Get-SysInternals (Keep in-sync with SysInternals tools)

 

 

sysinterpu3.jpg

 

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.

 

 

syspsdrive.png

 

dirsysintlive.png

cdsysint.png

 

sysintdown.png

 

sysupdate.png

 

changelog.png

 

 

 

 

 

 

 

82

Edytowane przez KolegaDudysa
Odnośnik do komentarza

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ę
  • Ostatnio przeglądający   0 użytkowników

    • Brak zarejestrowanych użytkowników przeglądających tę stronę.
×
×
  • Dodaj nową pozycję...