Co nowego w Windows PowerShell 5.0

Windows PowerShell 5.0 zawiera znaczące nowe funkcje, które rozszerzają jego użycie, zwiększają użyteczność i umożliwiają łatwiejsze i kompleksowe zarządzanie środowiskami opartymi na systemie Windows oraz zarządzanie nimi.

Windows PowerShell 5.0 jest zgodny z poprzednimi wersjami. Polecenia cmdlet, dostawcy, moduły, przystawki, skrypty, funkcje i profile, które zostały zaprojektowane dla Windows PowerShell 4.0, Windows PowerShell 3.0 i Windows PowerShell 2.0 zazwyczaj działają w Windows PowerShell 5.0 bez zmian.

Instalowanie programu Windows PowerShell

Windows PowerShell 5.0 jest instalowany domyślnie w Windows Server 2016 Technical Preview i Windows 10.

Aby zainstalować Windows PowerShell 5.0 w Windows Server 2012 R2, Windows 8.1 Enterprise lub Windows 8.1 Pro, pobierz i zainstaluj Windows Management Framework 5.0. Przed zainstalowaniem Windows Management Framework 5.0 należy przeczytać szczegóły pobierania i spełnić wszystkie wymagania systemowe.

W tym temacie:

aktualizacje Windows PowerShell 4.0 w zestawie zbiorczym aktualizacji z listopada 2014 r. (KB 3000850)

Wiele aktualizacji i ulepszeń Windows PowerShell Desired State Configuration (DSC) w wersji Windows PowerShell 4.0 jest dostępnych w zestawie zbiorczym aktualizacji z listopada 2014 r. dla Windows RT 8.1, Windows 8.1 i Windows Server 2012 R2 (KB3000850). Możesz określić, czy KB3000850 jest zainstalowana w systemie, uruchamiając polecenie Get-Hotfix -Id KB3000850 w Windows PowerShell.

  • Aktualizacje do istniejących poleceń cmdlet w module PSDesiredStateConfiguration

  • Nowe polecenia cmdlet w module PSDesiredStateConfiguration

  • Ulepszenia języka

    • Element DependsOn obsługuje teraz zasoby złożone.
    • Element DependsOn obsługuje teraz liczby w nazwach wystąpień zasobów.
    • Wyrażenia węzła, które mają wartość pustą, nie zgłaszają już błędów.
    • Naprawiono błąd, który występuje, jeśli wyrażenie węzła zwróci wartość pustą.
    • Konfiguracje wywołujące konfiguracje działają teraz w konsoli Windows PowerShell.
  • Ulepszenia trybu ściągania

    • Tryb ściągania obsługuje teraz wszystkie pliki ZIP.
    • Funkcja AllowModuleOverwrite działa teraz poprawnie.
  • Ulepszenia odporności

    • Nowy tryb DebugMode umożliwia ponowne ładowanie modułów zasobów.
    • Jeśli wystąpi błąd konfiguracji, plik pending.mof nie zostanie usunięty.
    • Lokalna Configuration Manager (LCM) jest teraz bardziej odporna, gdy ustawienia metakonfiguracji uległy uszkodzeniu.
  • Ulepszenia diagnostyczne

    • Ostrzeżenie jest wyświetlane, gdy narzędzie LCM ustawia czasomierz na inne ustawienia niż określono.
    • Pliki dziennika błędów zawierają teraz stos wywołań dla zasobów Windows PowerShell.
  • Ulepszenia elastyczności

    • Zasób LocalConfigurationManager ma nową właściwość ActionAfterReboot.
      • KontynuujKonfiguracja (wartość domyślna): Automatycznie wznawia konfigurację po ponownym uruchomieniu węzła docelowego.
      • StopConfiguration: nie wznawiaj konfiguracji automatycznie po ponownym uruchomieniu węzła.
    • Uruchomienie spójności może teraz występować częściej niż operacja PULL lub na odwrót.
    • Obsługa wersji: DSC może teraz rozpoznać dokument wygenerowany na nowszym kliencie (dołączonym do programu WMF 5.0).
  • Ulepszenia zapobiegania błędom

    • Wersja modułu jest teraz wymuszana przed zastosowaniem konfiguracji.
    • Funkcja DebugPreference jest teraz poprawnie ustawiana dla wywołań Get-, Set-lub Test-TargetResource.
  • Ulepszenia obsługi poświadczeń

    • Certyfikat jest teraz używany, jeśli określono zarówno certyfikat, jak i PSDscAllowPlainTextPassword .
    • Poświadczenia są odszyfrowywane, nawet w przypadku polecenia Get-TargetResource.
    • Poświadczenia metakonfiguracji są szyfrowane i odszyfrowywane.
    • Obiekty PSCredential są teraz odszyfrowywane, gdy znajdują się w obiekcie osadzonym.
  • Ulepszenia wbudowanego zasobu

    • Zasób pakietu
      • Nie instaluje już niewłaściwego pakietu (ze źródeł lokalnych lub internetowych).
      • Teraz obsługuje protokół HTTPS.
    • Obecnie w zasobie pakietu jest dostępna obsługa protokołu HTTPS.
    • Zasób archiwum obsługuje teraz poświadczenia.

Nowe funkcje w Windows PowerShell 5.0

Nowe funkcje w Windows PowerShell

  • Począwszy od Windows PowerShell 5.0, można opracowywać przy użyciu klas, składni formalnej i semantyki, które są podobne do innych języków programowania obiektowego. Klasy, wyliczenia i inne słowa kluczowe zostały dodane do języka Windows PowerShell w celu obsługi nowej funkcji. Aby uzyskać więcej informacji na temat pracy z klasami, zobacz about_Classes.

  • Windows PowerShell 5.0 wprowadza nowy, ustrukturyzowany strumień informacji, którego można użyć do przesyłania danych ustrukturyzowanych między skryptem a jego obiektami wywołującymi (lub środowiskiem hostingu). Teraz możesz użyć Write-Host, aby emitować dane wyjściowe do strumienia informacji. Strumienie informacji działają również dla programu PowerShell.Streams, zadań, zaplanowanych zadań i przepływów pracy. Poniższe funkcje obsługują strumień informacji.

    • Nowe polecenie cmdlet Write-Information, które pozwala określić, jak Windows PowerShell obsługuje dane strumienia informacji dla polecenia. Write-Host to otoka do zapisu informacji. Write-Information jest również obsługiwanym działaniem przepływu pracy.
    • Dwa nowe typowe parametry, InformationVariable i InformationAction, umożliwiają określenie sposobu wyświetlania strumieni informacji z polecenia. Prawidłowe wartości funkcji InformationAction to SilentlyContinue, Stop, Continue, Inquire, Ignoruj lub Wstrzymaj, a ustawienie DyskretnieContinue jest wartością domyślną. InformationVariable określa ciąg jako nazwę zmiennej, do której mają zostać zapisane dane Write-Host.
    • Nowa zmienna preferencji InformationPreference określa domyślną preferencję dla danych strumienia informacji w sesji Windows PowerShell. Wartość domyślna to SilentlyContinue.
    • Dodano dwa nowe typowe parametry przepływu pracy, PSInformation i InformationAction.
    • Gdy używasz polecenia Format-Table, kolumny tabeli są teraz automatycznie sformatowane przez ocenę pierwszych 300 ms danych przechodzących przez strumień.
  • We współpracy z firmą Microsoft Research dodano nowe polecenie cmdlet ConvertFrom-String. ConvertFrom-String umożliwia wyodrębnianie i analizowanie obiektów strukturalnych z zawartości ciągów tekstowych. Aby uzyskać więcej informacji, zobacz ConvertFrom-String.

  • Nowe polecenie cmdlet Convert-String automatycznie formatuje tekst na podstawie przykładu podanego w parametrze -Example.

  • Nowy moduł Microsoft.PowerShell.Archive zawiera polecenia cmdlet, które umożliwiają kompresowanie plików i folderów do plików archiwum (znanych również jako ZIP), wyodrębnianie plików z istniejących plików ZIP i aktualizowanie plików ZIP przy użyciu nowszych wersji plików skompresowanych w nich.

  • Nowy moduł PackageManagement umożliwia odnajdywanie i instalowanie pakietów oprogramowania w Internecie. Moduł PackageManagement (wcześniej znany jako OneGet) jest menedżerem lub multiplekserem istniejących menedżerów pakietów (nazywanych również dostawcami pakietów) w celu ujednolicenia zarządzania pakietami systemu Windows za pomocą jednego interfejsu Windows PowerShell.

  • Nowy moduł, PowerShellGet, umożliwia znajdowanie, instalowanie, publikowanie i aktualizowanie modułów oraz zasobów DSC w Galeria programu PowerShell lub w wewnętrznym repozytorium modułów, które można skonfigurować, uruchamiając polecenie cmdlet Register-PSRepository.

  • Dodano nowe słowo kluczowe języka Ukryte w celu określenia, że element członkowski (właściwość lub metoda) nie jest domyślnie wyświetlany w wynikach Get-Member (chyba że dodasz parametr -Force). Właściwości lub metody, które zostały oznaczone jako ukryte, również nie są wyświetlane w wynikach funkcji IntelliSense, chyba że w kontekście, w którym element członkowski powinien być widoczny; na przykład zmienna automatyczna $This powinna pokazywać ukryte elementy członkowskie w metodzie klasy.

  • Ulepszono funkcje New-Item, Remove-Item i Get-ChildItem w celu obsługi tworzenia linków symbolicznych i zarządzania nimi. Parametr -ItemType dla New-Item akceptuje nową wartość , SymbolLink. Teraz możesz utworzyć linki symboliczne w jednym wierszu, uruchamiając polecenie cmdlet New-Item.

  • Get-ChildItem ma również nowy parametr -Depth, którego używasz z parametrem -Recurse, aby ograniczyć rekursję. Na przykład Get-ChildItem -Recurse -Depth 2 zwraca wyniki z bieżącego folderu, wszystkie foldery podrzędne w bieżącym folderze i wszystkie foldery w folderach podrzędnych.

  • Copy-Item teraz umożliwia kopiowanie plików lub folderów z jednej sesji Windows PowerShell do innej, co oznacza, że można kopiować pliki do sesji podłączonych do komputerów zdalnych (w tym komputerów z systemem Nano Server, a tym samym nie ma innego interfejsu). Aby skopiować pliki, określ identyfikatory PSSession jako wartość nowych parametrów -FromSession i -ToSession, a następnie dodaj odpowiednio parametry -Path i -Destination, aby określić ścieżkę źródła i lokalizację docelową. Na przykład Copy-Item -Path c:\myFile.txt -ToSession $s -Destination d:\destinationFolder.

  • Windows PowerShell transkrypcja została ulepszona w celu zastosowania do wszystkich aplikacji hostingowych (takich jak Windows PowerShell ISE) oprócz hosta konsoli (powershell.exe). Opcje transkrypcji (w tym włączanie transkrypcji dla całego systemu) można skonfigurować, włączając ustawienie Włącz transkrypcję programu PowerShell zasady grupy znajdujące się w temacie Szablony administracyjne/Składniki systemu Windows/Windows PowerShell.

  • Nowa funkcja szczegółowego śledzenia skryptów umożliwia szczegółowe śledzenie i analizę Windows PowerShell użycia skryptów w systemie. Po włączeniu szczegółowego śledzenia skryptów Windows PowerShell rejestruje wszystkie bloki skryptów w dzienniku zdarzeń śledzenia zdarzeń systemu Windows (ETW), Microsoft-Windows-PowerShell/Operational.

  • Począwszy od Windows PowerShell 5.0, nowe polecenia cmdlet składni komunikatów kryptograficznych obsługują szyfrowanie i odszyfrowywanie zawartości przy użyciu standardowego formatu IETF do kryptograficznego ochrony wiadomości zgodnie z opisem RFC5652. Polecenia cmdlet Get-CmsMessage, Protect-CmsMessage i Unprotect-CmsMessage zostały dodane do modułu Microsoft.PowerShell.Security .

  • Nowe polecenia cmdlet w module Microsoft.PowerShell.Utility , Get-Runspace, Debug-Runspace, Get-RunspaceDebug, Enable-RunspaceDebug i Disable-RunspaceDebug umożliwiają ustawianie opcji debugowania w przestrzeni uruchomieniowej oraz uruchamianie i zatrzymywanie debugowania w przestrzeni uruchomieniowej. W przypadku debugowania dowolnych obszarów działania (czyli przestrzenie uruchomieniowe, które nie są domyślnym obszarem działania konsoli Windows PowerShell lub sesji Windows PowerShell ISE) Windows PowerShell umożliwiają ustawianie punktów przerwania w skrycie i dodawanie punktów przerwania zatrzymanie działania skryptu do momentu dołączenia debugera do debugowania skryptu przestrzeni uruchomieniowej. Obsługa debugowania zagnieżdżonego dla dowolnych obszarów działania została dodana do debugera skryptów Windows PowerShell dla obszarów uruchomieniowych.

  • Nowe polecenie cmdlet Format-Hex zostało dodane do modułu Microsoft.PowerShell.Utility . Format-Hex umożliwia wyświetlanie danych tekstowych lub binarnych w formacie szesnastkowym.

  • polecenia cmdlet Get-Clipboard i Set-Clipboard zostały dodane do modułu Microsoft.PowerShell.Utility; ułatwiają transfer zawartości do i z sesji Windows PowerShell. Polecenia cmdlet Schowka obsługują obrazy, pliki audio, listy plików i tekst.

  • Nowe polecenie cmdlet Clear-RecycleBin zostało dodane do modułu Microsoft.PowerShell.Management ; to polecenie cmdlet opróżnia Kosz dla dysku stałego, który obejmuje dyski zewnętrzne. Domyślnie jest wyświetlany monit o potwierdzenie polecenia Clear-RecycleBin, ponieważ właściwość ConfirmImpact polecenia cmdlet jest ustawiona na Wartość ConfirmImpact.High.

  • Nowe polecenie cmdlet New-TemporaryFile umożliwia utworzenie pliku tymczasowego w ramach skryptów. Domyślnie nowy plik tymczasowy jest tworzony w pliku C:\Users\<user name>\AppData\Local\Temp.

  • Polecenia cmdlet Out-File, Add-Content i Set-Content mają teraz nowy parametr -NoNewline, który pomija nowy wiersz po danych wyjściowych.

  • Polecenie cmdlet New-Guid używa klasy .NET Framework Guid do generowania identyfikatora GUID, przydatnego podczas pisania skryptów lub zasobów DSC.

  • Ponieważ informacje o wersji pliku mogą być mylące, szczególnie po poprawce pliku, nowe właściwości skryptu FileVersionRaw i ProductVersionRaw są dostępne dla obiektów FileInfo. Na przykład można uruchomić następujące polecenie, aby wyświetlić wartości tych właściwości dla powershell.exe, gdzie $pid zawiera identyfikator procesu dla uruchomionej sesji Windows PowerShell:Get-Process -Id $pid -FileVersionInfo | Format-List *version* -Force

  • Nowe polecenia cmdlet Enter-PSHostProcess i Exit-PSHostProcess umożliwiają debugowanie skryptów Windows PowerShell w procesach niezależnie od bieżącego procesu uruchomionego w konsoli Windows PowerShell. Uruchom Enter-PSHostProcess, aby wprowadzić lub dołączyć określony identyfikator procesu, a następnie uruchom Get-Runspace, aby zwrócić aktywne przestrzenie uruchomieniowe w ramach procesu. Uruchom Exit-PSHostProcess, aby odłączyć się od procesu po zakończeniu debugowania skryptu w ramach procesu.

  • Nowe polecenie cmdlet Wait-Debugger zostało dodane do modułu Microsoft.PowerShell.Utility . Możesz uruchomić Wait-Debugger, aby zatrzymać skrypt w debugerze przed uruchomieniem następnej instrukcji w skrycie.

  • Debuger przepływu pracy Windows PowerShell obsługuje teraz uzupełnianie poleceń lub kart i można debugować zagnieżdżone funkcje przepływu pracy. Teraz możesz nacisnąć klawisze Ctrl+Break , aby wprowadzić debuger w uruchomionym skryscie, zarówno w sesjach lokalnych, jak i zdalnych, a także w skry skryptie przepływu pracy.

  • Polecenie cmdlet Debug-Job zostało dodane do modułu Microsoft.PowerShell.Core w celu debugowania uruchomionych skryptów zadań dla Windows PowerShell Przepływ pracy, tło i zadania uruchomione w sesjach zdalnych.

  • Dodano nowy stan AtBreakpoint dla zadań Windows PowerShell. Stan AtBreakpoint ma zastosowanie, gdy zadanie uruchamia skrypt zawierający ustawione punkty przerwania, a skrypt osiągnął punkt przerwania. Po zatrzymaniu zadania w punkcie przerwania debugowania należy debugować zadanie, uruchamiając polecenie cmdlet Debug-Job.

  • Windows PowerShell 5.0 implementuje obsługę wielu wersji pojedynczego modułu Windows PowerShell w tym samym folderze w $PSModulePath. Właściwość RequiredVersion została dodana do klasy ModuleSpecification, aby ułatwić uzyskanie żądanej wersji modułu; ta właściwość wzajemnie wyklucza się z właściwością ModuleVersion. Parametr RequiredVersion jest teraz obsługiwany jako część wartości parametru FullyQualifiedName poleceń cmdlet Get-Module, Import-Module i Remove-Module.

  • Teraz możesz przeprowadzić weryfikację wersji modułu, uruchamiając polecenie cmdlet Test-ModuleManifest.

  • Wyniki polecenia cmdlet Get-Command teraz wyświetlają kolumnę Wersja; Nowa właściwość Version została dodana do klasy CommandInfo. Get-Command pokazuje polecenia z wielu wersji tego samego modułu. Właściwość Version jest również częścią klas pochodnych cmdletInfo: CmdletInfo i ApplicationInfo.

  • Get-Command ma nowy parametr -ShowCommandInfo, który zwraca informacje ShowCommand jako PSObjects. Jest to szczególnie przydatne w przypadku uruchamiania Show-Command w środowisku Windows PowerShell ISE przy użyciu komunikacji zdalniej Windows PowerShell. Parametr -ShowCommandInfo zastępuje istniejącą funkcję Get-SerializedCommand w module Microsoft.PowerShell.Utility, ale skrypt Get-SerializedCommand jest nadal dostępny do obsługi skryptów w dół.

  • Nowe polecenie cmdlet Get-ItemPropertyValue umożliwia uzyskanie wartości właściwości bez użycia notacji kropkowej. Na przykład w starszych wersjach Windows PowerShell można uruchomić następujące polecenie, aby uzyskać wartość właściwości Base aplikacji klucza rejestru PowerShellEngine: (Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine -Name ApplicationBase). ApplicationBase. Począwszy od Windows PowerShell 5.0, można uruchomić polecenie Get-ItemPropertyValue -Path HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine -Name ApplicationBase.

  • Konsola Windows PowerShell używa teraz kolorowania składni, podobnie jak w Windows PowerShell ISE.

  • Nowy moduł NetworkSwitch zawiera polecenia cmdlet, które umożliwiają stosowanie przełącznika, wirtualnej sieci LAN (VLAN) i podstawową konfigurację portu przełącznika sieciowego warstwy 2 w celu Windows Server 2012 przełączników sieci certyfikowanych za pomocą logo R2.

  • Parametr FullyQualifiedName został dodany do poleceń cmdlet Import-Module i Remove-Module w celu obsługi przechowywania wielu wersji jednego modułu.

  • Save-Help, Update-Help, Import-PSSession, Export-PSSession i Get-Command mają nowy parametr FullyQualifiedModule typu ModuleSpecification. Dodaj ten parametr, aby określić moduł przy użyciu w pełni kwalifikowanej nazwy.

  • Wartość $PSVersionTable.PSVersion została zaktualizowana do 5.0.

  • Program WMF 5.0 (PowerShell 5.0) zawiera moduł Pester . Pester to platforma testowania jednostkowego dla programu PowerShell. Udostępnia kilka prostych słów kluczowych, które umożliwiają tworzenie testów dla skryptów.

Nowe funkcje w Windows PowerShell Desired State Configuration

  • Windows PowerShell rozszerzenia języka umożliwiają definiowanie zasobów Windows PowerShell Desired State Configuration (DSC) przy użyciu klas. Import-DscResource jest teraz prawdziwym dynamicznym słowem kluczowym; Windows PowerShell analizuje moduł główny określonego modułu, wyszukując klasy zawierające atrybut DscResource. Teraz można używać klas do definiowania zasobów DSC, w których nie jest wymagany ani plik MOF, ani podfolder DSCResource w folderze modułu. Plik modułu Windows PowerShell może zawierać wiele klas zasobów DSC.
  • Nowy parametr ThrottleLimit został dodany do następujących poleceń cmdlet w module PSDesiredStateConfiguration. Dodaj parametr ThrottleLimit, aby określić liczbę komputerów docelowych lub urządzeń, na których polecenie ma działać w tym samym czasie.
    • Get-DscConfiguration
    • Get-DscConfigurationStatus
    • Get-DscLocalConfigurationManager
    • Restore-DscConfiguration
    • Test-DscConfiguration
    • Compare-DscConfiguration
    • Publish-DscConfiguration
    • Set-DscLocalConfigurationManager
    • Start-DscConfiguration
    • Update-DscConfiguration
  • Dzięki scentralizowanym raportowaniu błędów DSC szczegółowe informacje o błędach nie tylko są rejestrowane w dzienniku zdarzeń, ale mogą być wysyłane do centralnej lokalizacji do późniejszej analizy. Za pomocą tej centralnej lokalizacji można przechowywać błędy konfiguracji DSC, które wystąpiły dla dowolnego serwera w ich środowisku. Po zdefiniowaniu serwera raportów w meta-konfiguracji wszystkie błędy są wysyłane do serwera raportów, a następnie przechowywane w bazie danych. Tę funkcję można skonfigurować niezależnie od tego, czy węzeł docelowy jest skonfigurowany do ściągania konfiguracji z serwera ściągania.
  • Ulepszenia Windows PowerShell ISE ułatwiają tworzenie zasobów DSC. Teraz możesz wykonać następujące czynności.
    • Wyświetl listę wszystkich zasobów DSC w ramach konfiguracji lub bloku węzła , wprowadzając klawisze Ctrl+Spacja w pustym wierszu w bloku.
    • Automatyczne uzupełnianie we właściwościach zasobu typu wyliczenia .
    • Automatyczne uzupełnianie właściwości DependsOn zasobów DSC na podstawie innych wystąpień zasobów w konfiguracji.
    • Ulepszone uzupełnianie kart wartości właściwości zasobu.
  • Użytkownik może teraz uruchomić zasób w ramach określonego zestawu poświadczeń, dodając atrybut PSDscRunAsCredential do bloku Węzła. Na przykład PSDscRunAsCredential = Get-Credential Contoso\DscUser. Ta funkcja jest przydatna do tworzenia konfiguracji, które uruchamiają Instalator Windows i instalatory wykonywalne, uzyskują dostęp do gałęzi rejestru poszczególnych użytkowników lub wykonują inne zadania poza bieżącym kontekstem użytkownika.
  • Dodano obsługę 32-bitowej (opartej na architekturze x86) dla słowa kluczowego Configuration .
  • Windows PowerShell obejmuje teraz obsługę niestandardowej pomocy dotyczącej konfiguracji DSC zdefiniowanych przez dodanie polecenia [CmdletBinding()] do wygenerowanej funkcji konfiguracji.
  • Nowy atrybut DscLocalConfigurationManager wyznacza blok konfiguracji jako metakonfigurację, która służy do konfigurowania Configuration Manager lokalnej DSC. Ten atrybut ogranicza konfigurację do przechowywania tylko elementów, które konfigurują Configuration Manager lokalne DSC. Podczas przetwarzania ta konfiguracja generuje plik *.meta.mof, który jest następnie wysyłany do odpowiednich węzłów docelowych, uruchamiając polecenie cmdlet Set-DscLocalConfigurationManager.
  • Konfiguracje częściowe są teraz dozwolone w Windows PowerShell 5.0. Dokumenty konfiguracyjne można dostarczać do węzła w fragmentach. Aby węzeł odbierał wiele fragmentów dokumentu konfiguracji, należy najpierw ustawić Configuration Manager lokalne węzła w celu określenia oczekiwanych fragmentów
  • Synchronizacja między komputerami jest nowa w konfiguracji DSC w Windows PowerShell 5.0. za pomocą wbudowanych zasobów WaitFor* (WaitForAll, WaitForAny i WaitForSome) można teraz określić zależności między komputerami podczas uruchamiania konfiguracji bez orkiestracji zewnętrznych. Te zasoby zapewniają synchronizację węzła-węzła przy użyciu połączeń CIM za pośrednictwem protokołu WS-Man. Konfiguracja może czekać na zmianę określonego stanu zasobu innego komputera.
  • Just Enough Administration (JEA), nowa funkcja zabezpieczeń delegowania, wykorzystuje dsC i Windows PowerShell ograniczone przestrzenie uruchamiania, aby pomóc zabezpieczyć przedsiębiorstwa przed utratą danych lub naruszeniem zabezpieczeń przez pracowników, niezależnie od tego, czy celowe, czy niezamierzone. Aby uzyskać więcej informacji na temat narzędzia JEA, w tym miejsca, w którym można pobrać zasób DSC xJEA, zobacz Just Enough Administration (Administracja just enough).
  • Następujące nowe polecenia cmdlet zostały dodane do modułu PSDesiredStateConfiguration.
    • Nowe polecenie cmdlet Get-DscConfigurationStatus pobiera ogólne informacje o stanie konfiguracji z węzła docelowego. Stan ostatniego lub wszystkich konfiguracji można uzyskać.
    • Nowe polecenie cmdlet Compare-DscConfiguration porównuje określoną konfigurację z rzeczywistym stanem co najmniej jednego węzła docelowego.
    • Nowe polecenie cmdlet Publish-DscConfiguration kopiuje plik MOF konfiguracji do węzła docelowego, ale nie stosuje konfiguracji. Konfiguracja jest stosowana podczas następnego przekazywania spójności lub podczas uruchamiania polecenia cmdlet Update-DscConfiguration.
    • Nowe polecenie cmdlet Test-DscConfiguration umożliwia sprawdzenie, czy wynikowa konfiguracja jest zgodna z żądaną konfiguracją, zwracając wartość True, jeśli konfiguracja jest zgodna z żądaną konfiguracją, lub Fałsz, jeśli rzeczywista konfiguracja nie jest zgodna z żądaną konfiguracją.
    • Nowe polecenie cmdlet Update-DscConfiguration wymusza przetworzenie konfiguracji. Jeśli Configuration Manager lokalny jest w trybie ściągania, polecenie cmdlet pobiera konfigurację z serwera ściągania przed zastosowaniem go.

Nowe funkcje w środowisku Windows PowerShell ISE

  • Teraz można edytować zdalne skrypty i pliki Windows PowerShell w lokalnej kopii Windows PowerShell ISE, uruchamiając Enter-PSSession, aby uruchomić sesję zdalną na komputerze, na którym są przechowywane pliki, które chcesz edytować, a następnie uruchamiając ścieżkę PSEdit <i nazwę pliku na komputerze> zdalnym. Ta funkcja ułatwia edytowanie plików Windows PowerShell przechowywanych w opcji instalacji Server Core systemu Windows Server, w której nie można uruchomić programu Windows PowerShell ISE.
  • Polecenie cmdlet Start-Transcript jest teraz obsługiwane w środowisku Windows PowerShell ISE.
  • Teraz można debugować skrypty zdalne w środowisku Windows PowerShell ISE.
  • Nowe polecenie menu , Break All (Ctrl+B), dzieli debuger zarówno dla skryptów lokalnych, jak i zdalnych.

Nowe funkcje w usługach sieci Web Windows PowerShell (rozszerzenie OData IIS zarządzania)

  • Począwszy od Windows PowerShell 5.0, można wygenerować zestaw poleceń cmdlet Windows PowerShell na podstawie funkcji uwidocznionych przez dany punkt końcowy OData, uruchamiając polecenie cmdlet Export-ODataEndpointProxy znalezione w nowym module Microsoft.PowerShell.OdataUtils.

Istotne poprawki błędów w Windows PowerShell 5.0

  • Windows PowerShell 5.0 zawiera nową implementację MODELU COM, która oferuje znaczne ulepszenia wydajności podczas pracy z obiektami COM.
  • Wprowadzono znaczne ulepszenia wydajności do ukończenia pierwszej karty w sesji Windows PowerShell, skracając czas ukończenia karty o prawie 500 ms.

Nowe funkcje w Windows PowerShell 4.0

Windows PowerShell 4.0 jest zgodny z poprzednimi wersjami. Polecenia cmdlet, dostawcy, moduły, przystawki, skrypty, funkcje i profile, które zostały zaprojektowane pod kątem Windows PowerShell 3.0 i Windows PowerShell 2.0 działają w Windows PowerShell 4.0 bez zmian.

Windows PowerShell 4.0 jest instalowany domyślnie w Windows 8.1 i Windows Server 2012 R2. Aby zainstalować Windows PowerShell 4.0 w systemie Windows 7 z dodatkiem SP1 lub Windows Server 2008 R2, pobierz i zainstaluj Windows Management Framework 4.0. Przed zainstalowaniem Windows Management Framework 4.0 pamiętaj, aby przeczytać szczegóły pobierania i spełnić wszystkie wymagania systemowe.

Windows PowerShell 4.0 zawiera następujące nowe funkcje.

Nowe funkcje w Windows PowerShell

  • Windows PowerShell Desired State Configuration (DSC) to nowy system zarządzania w Windows PowerShell 4.0, który umożliwia wdrażanie i zarządzanie danymi konfiguracji dla usług oprogramowania i środowiska, w którym działają te usługi. Aby uzyskać więcej informacji na temat rozszerzenia DSC, zobacz Wprowadzenie do Windows PowerShell Desired State Configuration.
  • Funkcja Save-Help umożliwia teraz zapisywanie pomocy dla modułów zainstalowanych na komputerach zdalnych. Za pomocą Save-Help można pobrać pomoc modułu z klienta połączonego z Internetem (na którym nie wszystkie moduły, dla których chcesz uzyskać pomoc, muszą być zainstalowane), a następnie skopiować zapisaną Pomoc do zdalnego folderu udostępnionego lub komputera zdalnego, który nie ma dostępu do Internetu.
  • Debuger Windows PowerShell został rozszerzony w celu umożliwienia debugowania Windows PowerShell przepływów pracy, a także skryptów działających na komputerach zdalnych. Windows PowerShell przepływy pracy można teraz debugować na poziomie skryptu z wiersza polecenia Windows PowerShell lub Windows PowerShell ISE. Windows PowerShell skrypty, w tym przepływy pracy skryptów, można teraz debugować za pośrednictwem sesji zdalnych. Sesje debugowania zdalnego są zachowywane za pośrednictwem Windows PowerShell sesji zdalnych, które są rozłączone, a następnie ponownie nawiązane połączenie.
  • Parametr RunNow dla zadania Register-ScheduledJob i Set-ScheduledJob eliminuje konieczność ustawienia natychmiastowej daty rozpoczęcia i godziny dla zadań przy użyciu parametru Wyzwalacz .
  • Funkcja Invoke-RestMethod i Invoke-WebRequest umożliwia teraz ustawienie wszystkich nagłówków przy użyciu parametru Headers. Chociaż ten parametr zawsze istniał, był to jeden z kilku parametrów poleceń cmdlet sieci Web, które spowodowały wyjątki lub błędy.
  • Get-Module ma nowy parametr FullyQualifiedName typu ModuleSpecification[]. Parametr FullyQualifiedName Get-Module umożliwia teraz określenie modułu przy użyciu nazwy, wersji i opcjonalnego identyfikatora GUID modułu.
  • Domyślne ustawienie zasad wykonywania w Windows Server 2012 R2 to RemoteSigned. W Windows 8.1 nie ma żadnych zmian w ustawieniu domyślnym.
  • Począwszy od Windows PowerShell 4.0, obsługiwane jest wywołanie metody przy użyciu nazw metod dynamicznych. Możesz użyć zmiennej do przechowywania nazwy metody, a następnie dynamicznie wywołać metodę, wywołując zmienną.
  • Zadania asynchronicznego przepływu pracy nie są już usuwane, gdy upłynął limit czasu określony przez wspólny parametr przepływu pracy PSElapsedTimeoutSec .
  • Nowy parametr RepeatIndefinitely został dodany do poleceń cmdlet New-JobTrigger i Set-JobTrigger . Eliminuje to konieczność określenia wartości TimeSpan.MaxValue parametru RepetitionDuration w celu wielokrotnego uruchamiania zaplanowanego zadania przez nieokreślony okres.
  • Dodano parametr Passthru do poleceń cmdlet Enable-JobTrigger i Disable-JobTrigger . Parametr Passthru wyświetla wszystkie obiekty utworzone lub zmodyfikowane przez polecenie.
  • Nazwy parametrów do określania grupy roboczej w poleceniach cmdlet Add-Computer i Remove-Computer są teraz spójne. Oba polecenia cmdlet używają teraz parametru WorkgroupName.
  • Dodano nowy wspólny parametr PipelineVariable. PipelineVariable umożliwia zapisanie wyników potokowego polecenia (lub części polecenia potokowego) jako zmiennej, która może zostać przekazana przez pozostałą część potoku.
  • Filtrowanie kolekcji przy użyciu składni metody jest teraz obsługiwane. Oznacza to, że można teraz filtrować kolekcję obiektów przy użyciu uproszczonej składni, podobnie jak w przypadku metody Where() lub Where-Object, sformatowanej jako wywołanie metody. Poniżej przedstawiono przykład: (Get-Process).where({$_. Nazwa — dopasuj ciąg "powershell"})
  • Polecenie cmdlet Get-Process ma nowy parametr przełącznika IncludeUserName.
  • Dodano nowe polecenie cmdlet Get-FileHash, które zwraca skrót pliku w jednym z kilku formatów dla określonego pliku.
  • W Windows PowerShell 4.0, jeśli moduł używa klucza DefaultCommandPrefix w manifeście lub jeśli użytkownik importuje moduł z parametrem Prefix, właściwość ExportedCommands modułu pokazuje polecenia w module z prefiksem. Po uruchomieniu poleceń przy użyciu składni kwalifikowanej przez moduł, ModuleName\CommandName nazwy poleceń muszą zawierać prefiks.
  • Wartość $PSVersionTable.PSVersion została zaktualizowana do wersji 4.0.
  • Zachowanie operatora Where() uległo zmianie. Collection.Where('property -match name') akceptowanie wyrażenia ciągu w formacie "Property -CompareOperator Value" nie jest już obsługiwane. Jednak operator Where() akceptuje wyrażenia ciągów w formacie scriptblock; jest to nadal obsługiwane.

Nowe funkcje w Windows PowerShell zintegrowanego środowiska skryptów (ISE)

  • program Windows PowerShell ISE obsługuje debugowanie przepływu pracy Windows PowerShell i debugowanie skryptu zdalnego.
  • Dodano obsługę funkcji IntelliSense dla dostawców i konfiguracji Windows PowerShell Desired State Configuration.

Nowe funkcje w przepływie pracy Windows PowerShell

  • Dodano obsługę nowego wspólnego parametru PipelineVariable w kontekście potoków iteracyjnych, takich jak te używane przez program System Center Orchestrator; oznacza to, że potoki uruchamiające polecenia po prostu od lewej do prawej, w przeciwieństwie do intersperspersed uruchomionego przy użyciu przesyłania strumieniowego.
  • Powiązanie parametrów zostało znacznie ulepszone w celu pracy poza scenariuszami uzupełniania tabulacji, takimi jak polecenia, które nie istnieją w bieżącej przestrzeni uruchomieniowej.
  • Dodano obsługę niestandardowych działań kontenera do przepływu pracy Windows PowerShell. Jeśli parametr działania jest typu Activity, Activity[] (lub jest ogólną kolekcją działań), a użytkownik podał blok skryptu jako argument, a Windows PowerShell Przepływ pracy konwertuje blok skryptu na XAML, podobnie jak Windows PowerShell w przypadku normalnej kompilacji skryptu do przepływu pracy.
  • Po awarii przepływ pracy Windows PowerShell automatycznie ponownie łączy się z węzłami zarządzanymi.
  • Teraz można ograniczyć instrukcje działania Foreach -Parallel przy użyciu właściwości ThrottleLimit .
  • Wspólny parametr ErrorAction ma nową prawidłową wartość, Wstrzymaj, która jest przeznaczona wyłącznie dla przepływów pracy.
  • Punkt końcowy przepływu pracy jest teraz automatycznie zamykany, jeśli nie ma aktywnych sesji, nie ma zadań w toku i nie oczekuje na zadania. Ta funkcja pozwala zaoszczędzić zasoby na komputerze, który działa jako serwer przepływu pracy, po spełnieniu warunków automatycznego zamknięcia.

Nowe funkcje w usługach sieci Web Windows PowerShell

  • Gdy wystąpi błąd w usługach sieci Web Windows PowerShell (PSWS, nazywanym również rozszerzeniem OData zarządzania usługami IIS), podczas gdy polecenie cmdlet jest uruchomione, bardziej szczegółowe komunikaty o błędach są zwracane do obiektu wywołującego. Ponadto kody błędów są zgodne z wytycznymi dotyczącymi kodu błędu interfejsu API REST platformy Windows Azure.
  • Punkt końcowy może teraz zdefiniować wersję interfejsu API, a także wymusić użycie określonej wersji interfejsu API. Zawsze, gdy występują niezgodności wersji między klientem a serwerem, błędy są wyświetlane zarówno dla klienta, jak i serwera.
  • Zarządzanie schematem wysyłania zostało uproszczone przez automatyczne generowanie wartości dla brakujących pól w schemacie. Generowanie występuje, jako przydatny punkt wyjścia, nawet jeśli schemat wysyłania nie istnieje.
  • Obsługa typów w systemie PSWS została ulepszona w celu obsługi typów, które używają innego konstruktora niż konstruktor domyślny, zachowując się podobnie jak w przypadku modułu PSTypeConverter w Windows PowerShell. Dzięki temu można używać złożonych typów z programem PSWS.
  • Usługa PSWS umożliwia teraz rozszerzanie skojarzonego wystąpienia podczas uruchamiania zapytania. W przypadku większej zawartości binarnej (na przykład obrazów, audio lub wideo) koszt transferu jest znaczący i lepiej transferować dane binarne bez kodowania. Usługa PSWS używa nazwanych strumieni zasobów do przesyłania bez kodowania. Nazwany strumień zasobów jest właściwością jednostki typu Edm.Stream. Każdy nazwany strumień zasobów ma oddzielny identyfikator URI dla operacji GET lub UPDATE.
  • Akcje OData udostępniają teraz mechanizm wywoływania metod innych niż CRUD (Twórca, Read, Update i Delete) w zasobie. Akcję można wywołać, wysyłając żądanie HTTP POST do identyfikatora URI zdefiniowanego dla akcji. Parametry akcji są definiowane w treści żądania POST.
  • Aby zapewnić spójność z wytycznymi dotyczącymi platformy Windows Azure, wszystkie adresy URL powinny zostać uproszczone. Zmiana uwzględniona w segmencie Klucz jako umożliwia reprezentowanie pojedynczych kluczy jako segmentów. Należy pamiętać, że odwołania korzystające z wielu wartości kluczy wymagają wartości rozdzielanych przecinkami w notacji nawiasów, tak jak poprzednio.
  • Przed wydaniem programu PSWS jedynym sposobem wykonania operacji Twórca, aktualizacji lub usuwania było wywołanie operacji Post, Put lub Delete na zasobie najwyższego poziomu. Nowość w tej wersji psWS, Zawarte operacje zasobów pozwalają użytkownikom osiągnąć te same wyniki, osiągając ten sam zasób mniej bezpośrednio, zbliżając się tak, jakby te zasoby były zawarte.

Nowe funkcje w programie Windows PowerShell Web Access

  • Możesz rozłączyć się z istniejącymi sesjami i ponownie nawiązać połączenie z istniejącymi sesjami w konsoli programu Web Access opartej na sieci Web Windows PowerShell. Przycisk Zapisz w konsoli internetowej umożliwia rozłączanie się z sesją bez usuwania jej i ponowne nawiązywanie połączenia z sesją po raz kolejny.
  • Parametry domyślne można wyświetlić na stronie logowania. Aby wyświetlić parametry domyślne, skonfiguruj wartości dla wszystkich ustawień wyświetlanych w obszarze Opcjonalne ustawienia połączenia strony logowania w pliku o nazwie web.config. Za pomocą pliku web.config można skonfigurować wszystkie opcjonalne ustawienia połączenia z wyjątkiem drugiego lub alternatywnego zestawu poświadczeń.
  • W Windows Server 2012 R2 można zdalnie zarządzać regułami autoryzacji dla programu Windows PowerShell Web Access. Polecenia cmdlet Add-PswaAuthorizationRule i Test-PswaAuthorizationRule zawierają teraz parametr Credential, który umożliwia administratorom zarządzanie regułami autoryzacji z komputera zdalnego lub w sesji programu Windows PowerShell Web Access.
  • Teraz można mieć wiele sesji Windows PowerShell Web Access w jednej sesji przeglądarki przy użyciu nowej karty przeglądarki dla każdej sesji. Nie musisz już otwierać nowej sesji przeglądarki, aby nawiązać połączenie z nową sesją w konsoli Windows PowerShell opartej na sieci Web.

Istotne poprawki błędów w Windows PowerShell 4.0

  • Funkcja Get-Counter może teraz zwracać liczniki, które zawierają znak apostrofu w francuskich wersjach systemu Windows.
  • Teraz można wyświetlić metodę GetType na obiektach deserializowanych.
  • #Requires instrukcje umożliwiają użytkownikom wymaganie praw dostępu administratora w razie potrzeby.
  • Polecenie cmdlet Import-Csv ignoruje teraz puste wiersze.
  • Rozwiązano problem polegający na tym, że Windows PowerShell ISE używa zbyt dużej ilości pamięci podczas uruchamiania polecenia Invoke-WebRequest.
  • Polecenie Get-Module wyświetla teraz wersje modułów w kolumnie Wersja .
  • Remove-Item -Recurse usuwa teraz elementy z podfolderów zgodnie z oczekiwaniami.
  • Właściwość UserName została dodana do obiektów wyjściowych Get-Process .
  • Polecenie cmdlet Invoke-RestMethod zwraca teraz wszystkie dostępne wyniki.
  • Dodanie elementu członkowskiego ma teraz wpływ na tabele skrótów, nawet jeśli nie zostały jeszcze pobrane.
  • Select-Object -Rozwiń nie kończy się już niepowodzeniem lub generuje wyjątek, jeśli wartość właściwości ma wartość null lub jest pusta.
  • Funkcja Get-Process może być teraz używana w potoku z innymi poleceniami, które pobierają właściwość ComputerName z obiektów.
  • Funkcja ConvertTo-Json i ConvertFrom-Json może teraz akceptować terminy w cudzysłowach, a komunikaty o błędach można teraz lokalizować.
  • Funkcja Get-Job zwraca teraz wszystkie ukończone zaplanowane zadania, nawet w nowych sesjach.
  • Rozwiązano problemy z instalowaniem i odinstalowywaniem dysków VHD przy użyciu dostawcy systemu plików w Windows PowerShell 4.0. Windows PowerShell jest teraz w stanie wykryć nowe dyski podczas ich instalowania w tej samej sesji.
  • Nie trzeba już jawnie ładować modułów ScheduledJob lub Workflow do pracy z typami zadań.
  • Wprowadzono ulepszenia wydajności procesu importowania przepływów pracy definiujących zagnieżdżone przepływy pracy; ten proces jest teraz szybszy.

Nowe funkcje w wersji Windows PowerShell 3.0

Windows PowerShell 3.0 zawiera następujące nowe funkcje.

przepływ pracy Windows PowerShell

Windows PowerShell Przepływ pracy zapewnia Windows PowerShell możliwości programu Windows Workflow Foundation. Przepływy pracy można pisać w języku XAML lub w języku Windows PowerShell i uruchamiać je tak samo, jak w przypadku uruchamiania polecenia cmdlet. Polecenie Get-Command cmdlet pobiera polecenia przepływu pracy, a Get-Help polecenie cmdlet otrzymuje pomoc dotyczącą przepływów pracy.

Przepływy pracy to sekwencje działań zarządzania wieloma komputerami, które są długotrwałe, powtarzalne, częste, równoległe, przerywane, zawieszone i możliwe do ponownego uruchomienia. Przepływy pracy można wznowić z powodu zamierzonej lub przypadkowej przerwy, takiej jak awaria sieci, ponowne uruchomienie systemu Windows lub awaria zasilania.

Przepływy pracy są również przenośne; można je wyeksportować jako lub zaimportować z plików XAML. Konfiguracje sesji niestandardowej umożliwiają uruchamianie przepływu pracy lub działań w przepływie pracy przez delegowanych lub podrzędnych użytkowników.

Poniżej przedstawiono zalety przepływu pracy Windows PowerShell

  • Automatyzacja sekwencjonowanych, długotrwałych zadań.
  • Zdalne monitorowanie długotrwałych zadań. Stan i postęp działań są widoczne w dowolnym momencie.
  • Zarządzanie wieloma komputerami. Jednocześnie uruchamiaj zadania jako przepływy pracy w setkach węzłów zarządzanych. Windows PowerShell Workflow zawiera wbudowaną bibliotekę typowych parametrów zarządzania, takich jak PSComputerName, które umożliwiają scenariusze zarządzania wieloma komputerami.
  • Pojedyncze zadanie wykonywania złożonych procesów. Możesz połączyć powiązane skrypty, które implementują cały kompletny scenariusz w jednym przepływie pracy.
  • Trwałość.: przepływ pracy jest zapisywany (lub punkt kontrolny) w określonych punktach zdefiniowanych przez jego autora, aby można było wznowić przepływ pracy z ostatniego utrwalonego zadania (lub punktu kontrolnego), zamiast ponownie uruchomić przepływ pracy od początku.
  • Niezawodności. Automatyczne odzyskiwanie po awarii. Przepływy pracy przetrwają zaplanowane i nieplanowane ponowne uruchomienia. Możesz wstrzymać wykonywanie przepływu pracy, a następnie wznowić przepływ pracy z ostatniego punktu trwałości. Autorzy przepływów pracy mogą wyznaczyć określone działania do ponownego uruchomienia w przypadku awarii jednego lub większej liczby węzłów zarządzanych.
  • Możliwość rozłączania, ponownego nawiązywania połączenia i uruchamiania w rozłączonych sesjach. Użytkownicy mogą łączyć się i rozłączać z serwerem przepływu pracy, ale przepływ pracy działa w sposób ciągły. Możesz wylogować się z komputera klienckiego lub ponownie uruchomić komputer kliencki i monitorować wykonywanie przepływu pracy z innego komputera bez przerywania przepływu pracy.
  • Planowania. Zadania przepływu pracy można zaplanować tak jak dowolne polecenie cmdlet lub skrypt Windows PowerShell.
  • Ograniczanie przepływów pracy i połączeń. Wykonywanie przepływu pracy i połączenia z węzłami mogą być ograniczane, co umożliwia scenariusze skalowalności i wysokiej dostępności.

Windows PowerShell Web Access

Windows PowerShell Web Access to funkcja Windows Server 2012, która umożliwia użytkownikom uruchamianie Windows PowerShell poleceń i skryptów w konsoli internetowej. Urządzenia korzystające z konsoli internetowej nie wymagają Windows PowerShell, oprogramowania do zarządzania zdalnego ani instalacji wtyczek przeglądarki. Wszystko, co jest wymagane, to prawidłowo skonfigurowany Windows PowerShell bramy programu Web Access i przeglądarka urządzeń klienckich, która obsługuje język JavaScript i akceptuje pliki cookie.

Aby uzyskać więcej informacji, zobacz Deploy Windows PowerShell Web Access (Wdrażanie programu Windows PowerShell Web Access).

Nowe funkcje Windows PowerShell ISE

W przypadku środowiska Windows PowerShell 3.0 Windows PowerShell zintegrowanego środowiska skryptów (ISE) ma wiele nowych funkcji, w tym IntelliSense, Show-Command okno, ujednolicone okienko konsoli, fragmenty kodu, dopasowywanie nawiasów klamrowych, zwijanie sekcji, automatyczne zapisywanie, lista ostatnio używanych elementów, zaawansowane kopiowanie, kopiowanie blokowe i pełna obsługa pisania skryptu Windows PowerShell Przepływy pracy. Aby uzyskać więcej informacji, zobacz about_Windows_PowerShell_ISE.

Obsługa usługi Microsoft .NET Framework 4

Windows PowerShell jest kompilowana w środowisku uruchomieniowym języka wspólnego 4.0. Autorzy poleceń cmdlet, skryptów i przepływów pracy mogą używać nowych klas microsoft .NET Framework 4 w Windows PowerShell z funkcjami, które obejmują zgodność i wdrażanie aplikacji, Managed Extensibility Framework, przetwarzanie równoległe, sieć, windows Communication Foundation i przepływ pracy systemu Windows Foundation.

Obsługa środowiska preinstalacji systemu Windows

Windows PowerShell 3.0 jest opcjonalnym składnikiem środowiska preinstalacji systemu Windows (Windows PE) 4.0 dla Windows 8. Windows PE to minimalny system operacyjny, który uruchamia komputer, który nie ma systemu operacyjnego i przygotowuje go do instalacji systemu Windows. System Windows PE może służyć do partycjonowania i formatowania dysków twardych, kopiowania obrazów dysków na komputer i inicjowania instalacji systemu Windows z udziału sieciowego. Windows PowerShell 3.0 można używać w środowisku Windows PE do zarządzania scenariuszami wdrażania, diagnostyki i odzyskiwania.

Rozłączone sesje

Począwszy od Windows PowerShell 3.0, trwałe sesje zarządzane przez użytkownika ("PSSessions"), które są tworzone przy użyciu polecenia cmdlet New-PSSession są zapisywane na komputerze zdalnym. Nie są już zależne od sesji, w której zostały utworzone.

Teraz możesz odłączyć się od sesji bez zakłócania poleceń uruchomionych w sesji. Sesję można zamknąć i zamknąć komputer. Później możesz ponownie nawiązać połączenie z sesją z innej sesji na tym samym komputerze lub na innym komputerze.

Parametr Get-PSSessionComputerName polecenia cmdlet pobiera teraz wszystkie sesje użytkownika, które łączą się z komputerem, nawet jeśli zostały uruchomione w innej sesji na innym komputerze. Możesz nawiązać połączenie z sesjami, uzyskać wyniki poleceń, uruchomić nowe polecenia, a następnie odłączyć się od sesji.

Dodano nowe polecenia cmdlet do obsługi funkcji Rozłączone sesje, w tym Disconnect-PSSession, Connect-PSSessioni Receive-PSSession, oraz nowe parametry do poleceń cmdlet, które zarządzają usługami PSSession, takie jak parametr Invoke-CommandInDisconnectedSession polecenia cmdlet.

Funkcja Rozłączone sesje jest obsługiwana tylko wtedy, gdy komputery w lokalizacji źródłowej ("klienta") i zakończenia ("serwera") połączenia są uruchomione Windows PowerShell 3.0.

Niezawodna łączność sesji

Windows PowerShell 3.0 wykrywa nieoczekiwane straty łączności między klientem a serwerem i próbuje ponownie opublikować łączność i automatycznie wznowić wykonywanie. Jeśli nie można ponownie opublikować połączenia klienta-serwera w przydzielonym czasie, użytkownik zostanie powiadomiony i sesja zostanie rozłączona. Podczas próby ponownego nawiązania połączenia Windows PowerShell dostarcza użytkownikowi ciągłe opinie.

Jeśli sesja rozłączona została uruchomiona przy użyciu polecenia InvokeCommand, Windows PowerShell utworzy zadanie dla rozłączonej sesji, aby ułatwić ponowne nawiązywanie połączenia i wznawianie wykonywania.

Te funkcje zapewniają bardziej niezawodne i możliwe do odzyskania środowisko komunikacji wirtualnej i umożliwiają użytkownikom wykonywanie długotrwałych zadań wymagających niezawodnych sesji, takich jak przepływy pracy.

Aktualizowalny system pomocy

Teraz możesz pobrać zaktualizowane pliki pomocy dla poleceń cmdlet w modułach. Polecenie Update-Help cmdlet identyfikuje najnowsze pliki pomocy, pobiera je z Internetu, rozpakuje je, weryfikuje je i instaluje w odpowiednim katalogu specyficznym dla języka dla modułu.

Aby użyć zaktualizowanych plików pomocy, wpisz Get-Helppolecenie . Nie trzeba ponownie uruchamiać systemu Windows ani Windows PowerShell. Aby zaktualizować pomoc dotyczącą modułów w katalogu $pshome, uruchom Windows PowerShell za pomocą opcji "Uruchom jako administrator".

Aby obsługiwać użytkowników, którzy nie mają dostępu do Internetu i użytkowników za zaporami, nowe Save-Help polecenie cmdlet pobiera pliki pomocy do katalogu systemu plików, takie jak udział plików. Użytkownicy mogą następnie użyć Update-Help polecenia cmdlet , aby uzyskać zaktualizowane pliki pomocy z udziału plików.

Możesz użyć Update-Help polecenia cmdlet , aby zaktualizować pliki pomocy dla wszystkich lub określonych modułów we wszystkich obsługiwanych kulturach interfejsu użytkownika. Możesz nawet umieścić Update-Help polecenie w profilu Windows PowerShell. Domyślnie Windows PowerShell pobiera pliki pomocy dla modułu nie więcej niż raz dziennie.

moduły Windows 8 i Windows Server 2012 nie zawierają plików pomocy. Aby pobrać najnowsze pliki pomocy, wpisz Update-Help. Aby uzyskać więcej informacji, wpisz Get-Help (bez parametrów) lub zobacz about_Updatable_Help.

Gdy pliki pomocy dla polecenia cmdlet nie są zainstalowane na komputerze, Get-Help polecenie cmdlet wyświetla teraz pomoc wygenerowaną automatycznie. Automatycznie wygenerowana pomoc zawiera składnię poleceń i instrukcje dotyczące używania polecenia cmdlet do pobierania Update-Help plików pomocy.

Każdy autor modułu może obsługiwać pomoc updatable dla swojego modułu. Możesz uwzględnić pliki pomocy w module i użyć pomocy updatable, aby je zaktualizować lub pominąć pliki pomocy i użyć aktualizowalnej pomocy, aby je zainstalować. Aby uzyskać więcej informacji na temat obsługi pomocy updatable, zobacz Obsługa aktualizowalnej pomocy.

Ulepszona pomoc online

Windows PowerShell pomoc online jest cennym zasobem dla wszystkich użytkowników, ale szczególnie ważne jest, aby użytkownicy, którzy nie lub nie mogą instalować zaktualizowanych plików pomocy.

Aby uzyskać pomoc online dla dowolnego polecenia cmdlet Windows PowerShell, wpisz:

Get-Help <cmdlet-name> -Online

Windows PowerShell otwiera wersję online tematu pomocy w domyślnej przeglądarce internetowej.

Funkcja Get-Help -Online w Windows PowerShell 3.0 jest teraz jeszcze bardziej zaawansowana, ponieważ działa nawet wtedy, gdy pliki pomocy dla polecenia cmdlet nie są zainstalowane na komputerze. Funkcja Get-Help -Online pobiera identyfikator URI pomocy online z właściwości HelpUri poleceń cmdlet i funkcji zaawansowanych.

PS C:\>(Get-Command Get-ScheduledJob).HelpUri
https://go.microsoft.com/fwlink/?LinkID=223923

Począwszy od Windows PowerShell 3.0, autorzy poleceń cmdlet języka C# mogą wypełnić właściwość HelpUri, tworząc atrybut HelpUri w klasie poleceń cmdlet. Autorzy zaawansowanych funkcji mogą definiować właściwość HelpUri w atrybucie CmdletBinding . Wartość właściwości HelpUri musi zaczynać się od "http" lub "https".

Możesz również dołączyć wartość HelpUri w pierwszym powiązanym linku pliku pomocy polecenia cmdlet opartego na formacie XML lub . Dyrektywa linku pomocy opartej na komentarzach w funkcji.

Aby uzyskać więcej informacji na temat obsługi pomocy online, zobacz Obsługa pomocy online.

Integracja modelu CIM

Windows PowerShell 3.0 obejmuje obsługę modelu wspólnych informacji (CIM), który zawiera wspólne definicje informacji o zarządzaniu dla systemów, sieci, aplikacji i usług, umożliwiając im wymianę informacji o zarządzaniu między systemami heterogenicznymi. Obsługa funkcji CIM w Windows PowerShell 3.0, w tym możliwość tworzenia poleceń cmdlet Windows PowerShell opartych na nowych lub istniejących klasach CIM, poleceniach opartych na plikach XML definicji poleceń cmdlet, obsłudze .NET Framework CIM. Interfejs API, polecenia cmdlet zarządzania ciM i dostawcy usługi WMI 2.0.

Pliki konfiguracji sesji

Począwszy od Windows PowerShell 3.0, można zaprojektować konfigurację sesji niestandardowej przy użyciu pliku. Nowy plik konfiguracji sesji umożliwia określenie środowiska sesji, które korzystają z konfiguracji sesji, w tym modułów, skryptów i plików formatu są ładowane do sesji, których poleceń cmdlet i elementów językowych użytkownicy mogą używać, których modułów i skryptów mogą uruchamiać oraz które zmienne mogą wyświetlać.

Możesz zaprojektować sesję, w której użytkownicy mogą uruchamiać polecenia cmdlet tylko z jednego konkretnego modułu lub sesji, w której użytkownicy mają pełny język, dostęp do wszystkich modułów i dostęp do skryptów wykonujących zaawansowane zadania.

W poprzednich wersjach Windows PowerShell kontrola na tym poziomie była dostępna tylko dla tych, którzy mogli napisać program C# lub złożony skrypt uruchamiania. Teraz każdy członek grupy Administratorzy na komputerze może dostosować konfigurację sesji przy użyciu pliku konfiguracji.

Aby utworzyć plik konfiguracji sesji, użyj New-PSSessionConfigurationFile polecenia cmdlet . Aby zastosować plik konfiguracji sesji do konfiguracji sesji, użyj Register-PSSessionConfiguration poleceń cmdlet "Set-PSSessionConfiguration".

Aby uzyskać więcej informacji, zobacz about_Session_Configuration_Files i New-PSSessionConfigurationFile.

Zaplanowane zadania i integracja harmonogramu zadań

Teraz można zaplanować Windows PowerShell zadania w tle i zarządzać nimi w Windows PowerShell i harmonogramie zadań.

Windows PowerShell zaplanowane zadania są przydatną hybrydą zadań w tle Windows PowerShell i zadań harmonogramu zadań.

Podobnie jak Windows PowerShell zadania w tle, zaplanowane zadania są uruchamiane asynchronicznie w tle. Wystąpienia zaplanowanych zadań, które zostały ukończone, można zarządzać przy użyciu poleceń cmdlet zadań, takich jak Start-Job i Get-Job.

Podobnie jak zadania harmonogramu zadań, można uruchamiać zaplanowane zadania w harmonogramie jednorazowym lub cyklicznym albo w odpowiedzi na akcję lub zdarzenie. Możesz wyświetlać zaplanowane zadania i zarządzać nimi w harmonogramie zadań, włączać i wyłączać je zgodnie z potrzebami, uruchamiać je lub używać ich jako szablonów oraz ustawiać warunki uruchamiania zadań.

Ponadto zaplanowane zadania są dostarczane z dostosowanym zestawem poleceń cmdlet do zarządzania nimi. Polecenia cmdlet umożliwiają tworzenie, edytowanie, zarządzanie, wyłączanie i ponowne włączanie zaplanowanych zadań, tworzenie zaplanowanych wyzwalaczy zadań i ustawianie zaplanowanych opcji zadań.

Aby uzyskać więcej informacji na temat zaplanowanych zadań, zobacz about_Scheduled_Jobs.

ulepszenia języka Windows PowerShell

Windows PowerShell 3.0 zawiera wiele funkcji, które zostały zaprojektowane tak, aby jego język był prostszy, łatwiejszy w użyciu i aby uniknąć typowych błędów. Ulepszenia obejmują wyliczenie właściwości, liczbę i właściwości długości dla obiektów skalarnych, nowe operatory przekierowania, modyfikator zakresu $Using, zmienną automatyczną PSItem, elastyczne formatowanie skryptu, atrybuty zmiennych, uproszczone argumenty atrybutów, nazwy poleceń liczbowych, operator Stop-Parsing, ulepszone operatory tablicy, nowe operatory bitów, uporządkowane słowniki, rzutowanie PSCustomObject i ulepszona pomoc oparta na komentarzach.

Nowe polecenia cmdlet podstawowe

Dodano nowe polecenia cmdlet do instalacji Windows PowerShell, w tym polecenia cmdlet do zarządzania zaplanowanymi zadaniami, rozłączone sesje, integracja modelu CIM i system pomocy z możliwością aktualizacji.

  • Moduł CimCmdlets
    • Get-CimAssociatedInstance
    • Get-CimClass
    • Get-CimInstance
    • Get-CimSession
    • Invoke-CimMethod
    • New-CimInstance
    • New-CimSession
    • New-CimSessionOption
    • Register-CimIndicationEvent
    • Remove-CimInstance
    • Remove-CimSession
    • Set-CimInstance
  • Microsoft.PowerShell.Core
    • Connect-PSSession
    • Disconnect-PSSession
    • New-PSSessionConfigurationFile
    • New-PSTransportOption
    • Receive-PSSession
    • Resume-Job
    • Save-Help
    • Suspend-Job
    • Test-PSSessionConfigurationFile
    • Update-Help
  • Microsoft.PowerShell.Diagnostics
    • New-WinEvent
  • Microsoft.PowerShell.Management
    • Get-ControlPanelItem
    • Rename-Computer
    • Show-ControlPanelItem
  • Microsoft.PowerShell.Utility
    • ConvertFrom-Json
    • ConvertTo-Json
    • Get-TypeData
    • Invoke-RestMethod
    • Invoke-WebRequest
    • Remove-TypeData
    • Show-Command
    • Unblock-File
  • PSScheduledJob
    • Add-JobTrigger
    • Disable-JobTrigger
    • Disable-ScheduledJob
    • Enable-JobTrigger
    • Enable-ScheduledJob
    • Get-JobTrigger
    • Get-ScheduledJob
    • Get-ScheduledJobOption
    • New-JobTrigger
    • New-ScheduledJobOption
    • Register-ScheduledJob
    • Set-JobTrigger
    • Set-ScheduledJob
    • Set-ScheduledJobOption
    • Unregister-ScheduledJob
  • PSWorkflow
    • New-PSWorkflowExecutionOption
    • New-PSWorkflowSession
  • PSWorkflowUtility
    • Invoke-AsWorkflow
  • Środowisko ISE
    • Get-IseSnippet
    • Import-IseSnippet
    • New-IseSnippet

Ulepszenia istniejących podstawowych poleceń cmdlet i dostawców

Windows PowerShell 3.0 zawiera nowe funkcje istniejących poleceń cmdlet, w tym uproszczoną składnię i nowe parametry dla następujących poleceń cmdlet: polecenia cmdlet komputera, polecenia cmdlet CSV, Get-ChildItem, Get-Command, Get-Content, Get-History, Measure-Object, polecenia cmdlet zabezpieczeń, Select-Object, Select-String, Split-Path, Start-Process, Tee-Object, Test-Connection, Add-Member i WMI cmdlets.

Dostawcy Windows PowerShell zostały również znacznie ulepszone, w tym obsługa dostawcy certyfikatów do zarządzania certyfikatami secure Socket Layer (SSL) na potrzeby hostingu internetowego, obsługa poświadczeń, trwałych dysków sieciowych i alternatywnych strumieni danych na dyskach systemu plików.

Importowanie i odnajdywanie modułu zdalnego

Windows PowerShell 3.0 rozszerza odnajdywanie modułów, importowanie i niejawne możliwości komunikacji zdalnej na komputerach zdalnych. Polecenia cmdlet modułu pobierają moduły na komputerach zdalnych i importują moduły do komputera zdalnego lub lokalnego przy użyciu komunikacji zdalnej Windows PowerShell komunikacji zdalnej. Obsługa nowej sesji ciM umożliwia zarządzanie komputerami spoza systemu Windows przy użyciu modelu CIM i usługi WMI przez zaimportowanie poleceń do komputera lokalnego uruchamianego niejawnie na komputerze zdalnym.

Aby uzyskać więcej informacji, zobacz tematy pomocy dotyczące Get-Module poleceń cmdlet i Import-Module .

Rozszerzone uzupełnianie kart

Ukończenie karty w konsoli Windows PowerShell kończy teraz nazwy poleceń cmdlet, parametrów, wartości parametrów, wyliczenia, typów programu .NET Frameworks, obiektów COM, ukrytych katalogów i nie tylko. Funkcja uzupełniania karty jest całkowicie przepisana na podstawie nowego analizatora i abstrakcyjnego drzewa składni w celu obsługi większej liczby scenariuszy, w tym analizowania drzew w pamięci i uzupełniania kart w środku wiersza.

Automatyczne ładowanie modułu

Polecenie Get-Command cmdlet pobiera teraz wszystkie polecenia cmdlet i funkcje ze wszystkich modułów zainstalowanych na komputerze, nawet jeśli moduł nie jest importowany do bieżącej sesji.

Po otrzymaniu potrzebnego polecenia cmdlet można go natychmiast użyć bez importowania żadnych modułów. moduły Windows PowerShell są teraz importowane automatycznie podczas korzystania z dowolnego polecenia cmdlet w module. Nie musisz już wyszukiwać modułu i importować go do używania poleceń cmdlet.

Automatyczne importowanie modułów jest wyzwalane przy użyciu polecenia cmdlet w poleceniu, uruchamiane Get-Command dla polecenia cmdlet bez symboli wieloznacznych lub uruchamiane Get-Help dla polecenia cmdlet bez symboli wieloznacznych.

Możesz włączyć, wyłączyć i skonfigurować automatyczne importowanie modułów przy użyciu zmiennej preferencji $PSModuleAutoLoadingPreference .

Aby uzyskać więcej informacji, zobacz about_Modules, about_Preference_Variables i tematy pomocy dotyczące Get-Command poleceń cmdlet i Import-Module .

Ulepszenia środowiska modułu

Windows PowerShell 3.0 zapewnia zaawansowaną obsługę funkcji modułom, w tym następujące nowe funkcje.

  1. Rejestrowanie modułów dla poszczególnych modułów (LogPipelineExecutionDetails) i nowe ustawienie "Włącz rejestrowanie modułu" zasady grupy
  2. Rozszerzone obiekty modułu, które uwidaczniają wartości z manifestu modułu
  3. Nowa właściwość ExportedCommands modułów, w tym zagnieżdżonych modułów, która łączy polecenia wszystkich typów
  4. Ulepszone odnajdywanie dostępnych (nie zaimportowanych) modułów, w tym zezwalanie na parametry Path i ListAvailable w tym samym poleceniu
  5. Nowy klucz DefaultCommandPrefix w manifestach modułu, który unika konfliktów nazw bez zmieniania kodu modułu.
  6. Ulepszone wymagania dotyczące modułów, w tym w pełni kwalifikowane wymagane moduły z wersją i identyfikatorem GUID oraz automatycznym importowaniem wymaganych modułów
  7. Cichsza, usprawniona operacja New-ModuleManifest polecenia cmdlet.
  8. Nowy parametr modułu dla #Requires
  9. Ulepszone Import-Module polecenie cmdlet z parametrami MinimumVersion i RequiredVersion .

Uproszczone odnajdywanie poleceń

Nie trzeba już importować wszystkich modułów, aby odnaleźć polecenia dostępne dla sesji. W Windows PowerShell 3.0 Get-Command polecenie cmdlet pobiera wszystkie polecenia ze wszystkich zainstalowanych modułów. Jeśli używasz polecenia, moduł, który eksportuje polecenie, jest automatycznie importowany do sesji.

Nowe Show-Command polecenie cmdlet zostało zaprojektowane specjalnie dla początkujących. Polecenia można wyszukiwać w oknie. Możesz wyświetlić wszystkie polecenia lub filtrować według modułu, zaimportować moduł, klikając przycisk, używając pól tekstowych i list rozwijanych, aby utworzyć prawidłowe polecenie, a następnie skopiować lub uruchomić polecenie bez opuszczania okna.

Ulepszona obsługa rejestrowania, diagnostyki i zasady grupy

Windows PowerShell 3.0 poprawia obsługę rejestrowania i śledzenia poleceń i modułów z obsługą śledzenia zdarzeń w dziennikach systemu Windows (ETW), edytowalnej właściwości LogPipelineExecutionDetails modułów i ustawienia "Włącz rejestrowanie modułów" zasady grupy. Teraz możesz pobrać wartości parametrów ze szczegółów dziennika, wyświetlając właściwości dziennika.

Ulepszenia formatowania i danych wyjściowych

Nowe ulepszenia formatowania i danych wyjściowych zwiększają wydajność wszystkich użytkowników Windows PowerShell. Ulepszenia obejmują przekierowywanie danych wyjściowych dla wszystkich strumieni, ulepszone polecenie cmdlet Update-Type, które dodaje typy dynamicznie bez plików Format.ps1xml, zawijanie wyrazów w danych wyjściowych, domyślne właściwości formatowania obiektów niestandardowych, typ PSCustomObject , ulepszone formatowanie obiektów WMI i obiektów heterogenicznych oraz obsługę odnajdywania przeciążeń metod.

Ulepszone środowisko hosta konsoli

Program hosta konsoli Windows PowerShell ma nowe funkcje w Windows PowerShell 3.0, w tym domyślnie pojedyncze wątkowe mieszkanie. Nowa opcja "Uruchom za pomocą programu PowerShell" w Eksplorator plików umożliwia uruchamianie skryptów w nieograniczonej sesji po kliknięciu prawym przyciskiem myszy. Nowa logika uruchamiania hosta konsoli rozpoczyna się Windows PowerShell szybciej, a nowe czcionki umożliwiają personalizowanie znanego środowiska okna konsoli.

Nowe polecenia cmdlet i interfejsy API hostingu

Nowy interfejs API poleceń cmdlet i interfejs API hostingu obejmują publiczne interfejsy API zaawansowanego drzewa składni (AST) oraz interfejsy API do stronicowania potoku, zagnieżdżone potoki, uzupełnianie kart pul obszarów runspace, Windows RT, przestarzały atrybut polecenia cmdlet oraz właściwości czasownika i rzeczownika obiektu FunctionInfo.

Usprawnienia wydajności

Znaczne ulepszenia wydajności w Windows PowerShell pochodzą z nowego analizatora języka, który jest oparty na dynamicznym języku środowiska uruchomieniowego (DLR) w .NET Framework 4., wraz z kompilacją skryptów środowiska uruchomieniowego, ulepszeniami niezawodności aparatu i zmianami w algorytmieGet-ChildItem, który poprawia jego wydajność, zwłaszcza podczas wyszukiwania udziałów sieciowych.

Obsługa uruchomień i hosta udostępnionego

Windows PowerShell 3.0 obejmuje obsługę funkcji RunAs i Shared Host.

Funkcja Uruchom jako przeznaczona dla Windows PowerShell Przepływ pracy umożliwia użytkownikom konfiguracji sesji tworzenie sesji uruchamianych z uprawnieniami konta użytkownika udostępnionego. Dzięki temu użytkownicy mniej uprzywilejowani mogą uruchamiać określone polecenia i skrypty z uprawnieniami administratora i ogranicza potrzebę dodawania mniej starszych użytkowników do grupy Administratorzy.

Funkcja SharedHost umożliwia wielu użytkownikom na wielu komputerach jednoczesne łączenie się z sesją przepływu pracy i monitorowanie postępu przepływu pracy. Użytkownicy mogą uruchomić przepływ pracy na jednym komputerze, a następnie połączyć się z sesją przepływu pracy na innym komputerze bez odłączania sesji od oryginalnego komputera. Użytkownicy muszą mieć te same uprawnienia i używać tej samej konfiguracji sesji. Aby uzyskać więcej informacji, zobacz "Running a Windows PowerShell Workflow" in Wprowadzenie with Windows PowerShell Workflow (Uruchamianie przepływu pracy Windows PowerShell) w Wprowadzenie.

Ulepszenia obsługi znaków specjalnych

Aby zwiększyć zdolność Windows PowerShell 3.0 do interpretowania i poprawnego obsługi znaków specjalnych, parametr LiteralPath, który obsługuje znaki specjalne w ścieżkach, jest prawidłowy dla prawie wszystkich poleceń cmdlet, które mają parametr Path, w tym nowe Update-Help polecenia cmdlet i Save-Help . Analizator zawiera również specjalną logikę w celu poprawy obsługi znaków backtick (`) i nawiasów kwadratowych w nazwach plików i ścieżkach.

Zobacz też