Co nowego w programie 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 sterowanie ś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 pod kątem Windows PowerShell 4.0, Windows PowerShell 3.0 i Windows PowerShell 2.0 zwykle 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 zainstalowany 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.
    • Błąd, który występuje, jeśli wyrażenie węzła daje w wyniku wartość pustą, zostało naprawione.
    • 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.
    • Configuration Manager lokalna (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.
      • ContinueConfiguration (wartość domyślna): automatycznie wznawia konfigurację po ponownym uruchomieniu węzła docelowego.
      • StopConfiguration: nie wznawiaj automatycznie konfiguracji po ponownym uruchomieniu węzła.
    • Przebieg spójności może teraz występować częściej niż operacja PULL lub odwrotnie.
    • Obsługa wersji: rozszerzenie DSC może teraz rozpoznać dokument, który został 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 ustawiona 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 wbudowanych zasobów

    • Zasób pakietu
      • Nie instaluje już niewłaściwego pakietu (ze źródeł lokalnych lub internetowych).
      • Teraz obsługuje protokół HTTPS.
    • W zasobie Pakiet jest teraz 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 strukturalnych między skryptem a jego obiektami wywołującymi (lub środowiskiem hostingu). Teraz można użyć Write-Host do emitowania danych wyjściowych 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 elementu InformationAction to SilentlyContinue, Stop, Continue, Inquire, Ignore lub Suspend, a ustawienie SilentlyContinue 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 formatowane przez ocenę pierwszych 300 ms danych, które przechodzą 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 (nazywanych również plikami 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 na 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 Hidden 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 jesteś 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.

  • Nowe elementy, Usuń element i Get-ChildItem zostały ulepszone w celu obsługi tworzenia linków symbolicznych i zarządzania nimi. Parametr -ItemType dla New-Item akceptuje nową wartość , SymbolicLink. Teraz możesz utworzyć linki symboliczne w jednym wierszu, uruchamiając polecenie cmdlet New-Item.

  • Get-ChildItem ma również nowy parametr -Depth, który jest używany z parametrem -Recurse w celu ograniczenia rekursji. 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 połączonych z komputerami zdalnymi (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 wartości -Path i -Destination, aby określić odpowiednio ścieżkę źródła i lokalizację docelową. Na przykład Copy-Item -Path c:\myFile.txt -ToSession $s -Destination d:\destinationFolder.

  • Windows PowerShell ulepszono transkrypcję w celu zastosowania do wszystkich aplikacji hostingowych (takich jak Windows PowerShell ISE) oprócz hosta konsoli (powershell.exe). Opcje transkrypcji (w tym włączenie transkrypcji dla całego systemu) można skonfigurować, włączając ustawienie Włącz transkrypcję programu PowerShell zasady grupy, które można znaleźć w temacie Szablony administracyjne/Składniki systemu Windows/Windows PowerShell.

  • Nowa funkcja szczegółowego śledzenia skryptów umożliwia włączenie szczegółowego śledzenia i analizy 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 w celu kryptograficznego ochrony komunikatów, jak opisano w 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 przestrzeni runspace (czyli obszarów runspace, które nie są domyślną przestrzenią uruchamiania konsoli Windows PowerShell lub sesji Windows PowerShell ISE) Windows PowerShell umożliwia ustawienie punktów przerwania w skry skrycie i dodanie punktów przerwania zatrzymaj działanie skryptu, dopóki nie będzie można dołączyć debugera do debugowania skryptu przestrzeni uruchomieniowej. Obsługa debugowania zagnieżdżonego dla dowolnych przestrzeni runspace została dodana do debugera skryptów Windows PowerShell dla przestrzeni 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.

  • Get-Clipboard i polecenia cmdlet Set-Clipboard zostały dodane do modułu Microsoft.PowerShell.Utility; ułatwiają one 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 zostanie wyświetlony 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 programie 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 wykorzystuje klasę .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. Można na przykład 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 procesie.

  • Nowe polecenie cmdlet Wait-Debugger zostało dodane do modułu Microsoft.PowerShell.Utility . Można 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 skrytecie, zarówno w sesjach lokalnych, jak i zdalnych oraz w skrycie 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ść wyklucza się wzajemnie 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ć walidację 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 zdalnie 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 downlevel.

  • 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 Application Base klucza rejestru Programu PowerShellEngine: (Get-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine -Name ApplicationBase). ApplicationBase. Począwszy od Windows PowerShell 5.0, możesz uruchomić polecenie Get-ItemPropertyValue -Path HKLM:\SOFTWARE\Microsoft\PowerShell\3\PowerShellEngine -Name ApplicationBase.

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

  • Nowy moduł NetworkSwitch zawiera polecenia cmdlet, które umożliwiają stosowanie przełącznika, wirtualnej sieci LAN (VLAN) oraz 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ł według jego w pełni kwalifikowanej nazwy.

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

  • Program WMF 5.0 (PowerShell 5.0) zawiera moduł Pester . Pester to struktura 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 ulepszenia 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żyć klas do zdefiniowania zasobów DSC, w których nie jest wymagany podfolder 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ć jednocześnie.
    • Get-DscConfiguration
    • Get-DscConfigurationStatus
    • Get-DscLocalConfigurationManager
    • Restore-DscConfiguration
    • Test-DscConfiguration
    • Compare-DscConfiguration
    • Publish-DscConfiguration
    • Set-DscLocalConfigurationManager
    • Start-DscConfiguration
    • Update-DscConfiguration
  • W przypadku scentralizowanego raportowania błędów DSC zaawansowane informacje o błędach nie tylko są rejestrowane w dzienniku zdarzeń, ale można je wysyłać do centralnej lokalizacji na potrzeby późniejszej analizy. Możesz użyć tej centralnej lokalizacji do przechowywania błędów 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 bloku konfiguracji lub 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 określonym zestawie 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 Konfiguracja .
  • Windows PowerShell zawiera 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 następnie jest 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 we 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 usłudze DSC w wersji Windows PowerShell 5.0. przy użyciu 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ę typu węzeł-węzeł przy użyciu połączeń CIM za pośrednictwem protokołu WS-Man. Konfiguracja może poczekać na zmianę stanu zasobu innego komputera.
  • Just Enough Administration (JEA), nowa funkcja zabezpieczeń delegowania, korzysta z rozszerzenia DSC i Windows PowerShell ograniczonych przestrzeni uruchomieniowych w celu zabezpieczenia przedsiębiorstw przed utratą danych lub naruszeniem zabezpieczeń przez pracowników, niezależnie od tego, czy jest to celowe, czy niezamierzone. Aby uzyskać więcej informacji o narzędziu JEA, w tym o tym, gdzie można pobrać zasób xJEA DSC, zobacz Just Enough Administration (Just Enough Administration).
  • 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. Możesz uzyskać stan ostatniego lub wszystkich konfiguracji.
    • 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 przebiegu spójności lub po uruchomieniu 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 Wartość False, jeśli rzeczywista konfiguracja jest niezgodna z żądaną konfiguracją.
    • Nowe polecenie cmdlet Update-DscConfiguration wymusza przetworzenie konfiguracji. Jeśli Configuration Manager lokalna jest w trybie ściągania, polecenie cmdlet pobiera konfigurację z serwera ściągania przed jego zastosowaniem.

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 przechowującym pliki, które chcesz edytować, a następnie uruchomić ś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 (zarządzanie rozszerzeniem OData IIS)

  • 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 znajdujące się 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 znaczną poprawę wydajności podczas pracy z obiektami COM.
  • Wprowadzono znaczne ulepszenia wydajności do pierwszego ukończenia karty w sesji Windows PowerShell, skracając czas ukończenia karty o prawie 500 ms.

Nowe funkcje w wersji 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.

program 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. Pamiętaj, aby przeczytać szczegóły pobierania i spełnić wszystkie wymagania systemowe przed zainstalowaniem Windows Management Framework 4.0.

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. Możesz użyć Save-Help, aby pobrać pomoc modułu z klienta połączonego z Internetem (na którym nie wszystkie moduły, dla których potrzebujesz pomocy, są koniecznie 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 uruchomionych 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ążone.
  • Parametr RunNow dla zadania Register-ScheduledJob i Set-ScheduledJob eliminuje konieczność ustawienia natychmiastowej daty i godziny rozpoczęcia zadań przy użyciu parametru Trigger .
  • Funkcja Invoke-RestMethod i Invoke-WebRequest umożliwia teraz ustawienie wszystkich nagłówków przy użyciu parametru Headers. Mimo że ten parametr zawsze istniał, był to jeden z kilku parametrów dla poleceń cmdlet sieci Web, które spowodowały wyjątki lub błędy.
  • Polecenie Get-Module ma nowy parametr FullyQualifiedName typu ModuleSpecification[]. Parametr FullyQualifiedName Get-Module teraz umożliwia określenie modułu przy użyciu nazwy, wersji i opcjonalnie 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 dynamicznych nazw metod. Możesz użyć zmiennej do przechowywania nazwy metody, a następnie dynamicznie wywołać metodę, wywołując zmienną.
  • Asynchroniczne zadania przepływu pracy nie są już usuwane, gdy upłynął limit czasu określony przez wspólny parametr przepływu pracy PSElapsedTimeoutSec .
  • Dodano nowy parametr RepeatIndefinitely do poleceń cmdlet New-JobTrigger i Set-JobTrigger . Eliminuje to konieczność określenia wartości TimeSpan.MaxValueparametru RepetitionDuration w celu wielokrotnego uruchamiania zaplanowanego zadania przez czas nieokreślony.
  • Dodano parametr Passthru do poleceń cmdlet Enable-JobTrigger i Disable-JobTrigger . Parametr Passthru wyświetla wszystkie obiekty, które są tworzone lub modyfikowane 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. Funkcja PipelineVariable umożliwia zapisanie wyników potokowego polecenia (lub części polecenia potokowego) jako zmiennej, którą można przekazać przez pozostałą część potoku.
  • Filtrowanie kolekcji przy użyciu składni metody jest teraz obsługiwane. Oznacza to, że teraz można filtrować kolekcję obiektów przy użyciu uproszczonej składni, podobnie jak w przypadku metody Where() lub Where-Object, sformatowanej jako wywołanie metody. Oto 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.
  • Jeśli w Windows PowerShell 4.0 moduł używa klucza DefaultCommandPrefix w manifeście lub jeśli użytkownik importuje moduł z parametrem Prefix, właściwość ExportedCommands modułu wyświetla 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ągu w formacie scriptblock; ta opcja jest nadal obsługiwana.

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

  • Windows PowerShell ISE obsługuje debugowanie przepływu pracy Windows PowerShell i debugowanie skryptów zdalnych.
  • 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 interspersed uruchomionych przy użyciu przesyłania strumieniowego.
  • Powiązanie parametrów zostało znacznie ulepszone, aby pracować poza scenariuszami uzupełniania tabulacji, takimi jak polecenia, które nie istnieją w bieżącej przestrzeni uruchomieniowej.
  • Obsługa niestandardowych działań kontenera została dodana do Windows PowerShell Workflow. Jeśli parametr działania ma typy Activity, Activity[] (lub jest ogólną kolekcją działań), a użytkownik podał blok skryptu jako argument, a następnie Windows PowerShell Przepływ pracy konwertuje blok skryptu na XAML, podobnie jak w przypadku zwykłego Windows PowerShell kompilacji skrypt-przepływ 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ść Suspend, która jest dostępna wyłącznie dla przepływów pracy.
  • Punkt końcowy przepływu pracy jest teraz automatycznie zamykany, jeśli nie ma aktywnych sesji, zadań w toku i nie oczekuje na zadania. Ta funkcja oszczędza 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, nazywanych również rozszerzeniem zarządzania usługami OData 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 początkowy, nawet jeśli schemat wysyłania nie istnieje.
  • Obsługa typów w programie PSWS została ulepszona w celu obsługi typów korzystających z innego konstruktora niż konstruktor domyślny, zachowując się podobnie do obiektu PSTypeConverter w Windows PowerShell. Dzięki temu można używać złożonych typów z programem PSWS.
  • Program PSWS umożliwia teraz rozszerzanie skojarzonego wystąpienia podczas uruchamiania zapytania. W przypadku większej zawartości binarnej (takiej jak obrazy, dźwięk 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 (Create, 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 tworzenia, aktualizacji lub usuwania było wywołanie operacji Post, Put lub Delete w 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 skonfigurowana Windows PowerShell brama programu Web Access i przeglądarka urządzenia klienckiego, 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 Windows PowerShell 3.0 Windows PowerShell zintegrowane środowisko skryptów (ISE) ma wiele nowych funkcji, takich jak IntelliSense, okno Show-Command, ujednolicone okienko konsoli, fragmenty kodu, dopasowywanie nawiasów klamrowych, zwijanie sekcji, automatyczne zapisywanie, lista ostatnio używanych elementów, zaawansowane kopiowanie, kopiowanie bloków 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 kompilowany w środowisku uruchomieniowym języka wspólnego 4.0. Autorzy poleceń cmdlet, skryptów i przepływów pracy mogą używać nowych klas platformy 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ć, program 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 bez systemu operacyjnego i przygotowuje go do instalacji systemu Windows. Środowisko Windows PE może służyć do partycjonowania i formatowania dysków twardych, kopiowania obrazów dysków na komputer i inicjowania Instalatora 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. Możesz zamknąć sesję i zamknąć komputer. Później możesz ponownie nawiązać połączenie z sesją z innej sesji na tym samym 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, i nowych parametrów do poleceń cmdlet, które zarządzają sesjami PSSession, takimi jak ParametrInvoke-Command InDisconnectedSession 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 przywrócić łączność i automatycznie wznowić wykonywanie. Jeśli nie można ponownie nawiązać połączenia klient-serwer w wyznaczonym czasie, użytkownik zostanie powiadomiony i sesja zostanie rozłączona. Podczas próby ponownego nawiązania połączenia Windows PowerShell zapewnia użytkownikowi ciągłą opinię.

Jeśli sesja rozłączona została uruchomiona przy użyciu polecenia InvokeCommand, Windows PowerShell tworzy 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

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

Aby użyć zaktualizowanych plików pomocy, wystarczy wpisać Get-Helppolecenie . Nie trzeba ponownie uruchamiać systemu Windows ani Windows PowerShell. Aby zaktualizować pomoc dotyczącą modułów w katalogu $pshome, uruchom Windows PowerShell przy użyciu 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, takiego 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 automatycznie wygenerowaną pomoc. Automatycznie wygenerowana pomoc zawiera składnię polecenia i instrukcje dotyczące używania Update-Help polecenia cmdlet do pobierania plików pomocy.

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

Rozszerzona 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 dla tematu 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 atrybutu CmdletBinding . Wartość właściwości HelpUri musi zaczynać się od ciągu "http" lub "https".

Wartość HelpUri można również uwzględnić w pierwszym powiązanym linku pliku pomocy polecenia cmdlet opartego na języku XML lub pliku pomocy . 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 z ciągłą integracją

Windows PowerShell 3.0 obejmuje obsługę modelu wspólnych informacji (CIM), który udostępnia typowe definicje informacji o zarządzaniu systemami, sieciami, aplikacjami i usługami, umożliwiając im wymianę informacji o zarządzaniu między systemami heterogenicznymi. Obsługa modelu CIM w wersji 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 modelu CIM. Interfejs API, polecenia cmdlet zarządzania ciM i dostawcy usługi WMI 2.0.

Pliki konfiguracji sesji

Począwszy od wersji Windows PowerShell 3.0, można zaprojektować niestandardową konfigurację sesji 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óre moduły i skrypty mogą uruchamiać oraz jakie zmienne mogą wyświetlać.

Można 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 w języku 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 planować Windows PowerShell zadania w tle i zarządzać nimi w Windows PowerShell i harmonogramie zadań.

Windows PowerShell zaplanowane zadania są przydatną hybrydą zadań Windows PowerShell w tle 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 według jednorazowego lub cyklicznego harmonogramu 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 długość właściwości w obiektach 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 platanie tablic, nowe operatory bitowe, uporządkowane słowniki, rzutowanie PSCustomObject i ulepszoną pomoc opartą na komentarzach.

Nowe podstawowe polecenia cmdlet

Nowe polecenia cmdlet zostały dodane do instalacji Windows PowerShell, w tym polecenia cmdlet do zarządzania zaplanowanymi zadaniami, sesjami rozłączenia, integracją modelu wspólnych integracji i aktualizowalnym systemem pomocy.

  • 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 również znacznie poprawili, w tym obsługę dostawcy certyfikatów do zarządzania certyfikatami Secure Socket Layer (SSL) na potrzeby hostingu internetowego, obsługi 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 możliwości odnajdywania modułów, importowania i niejawnego komunikacji zdalnej na komputerach zdalnych. Polecenia cmdlet modułu pobierają moduły na komputerach zdalnych i importować moduły do komputera zdalnego lub lokalnego przy użyciu komunikacji zdalnej Windows PowerShell. Nowa obsługa sesji modelu CIM umożliwia zarządzanie komputerami z systemem innych niż Windows za pomocą modelu CIM i usługi WMI przez zaimportowanie poleceń na komputer lokalny, który jest uruchamiany niejawnie na komputerze zdalnym.

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

Rozszerzone uzupełnianie kart

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

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 zostanie zaimportowany do bieżącej sesji.

Gdy otrzymasz potrzebne polecenie cmdlet, możesz użyć go natychmiast bez importowania żadnych modułów. moduły Windows PowerShell są teraz importowane automatycznie podczas korzystania z dowolnego polecenia cmdlet w module. Nie trzeba już wyszukiwać modułu i importować go, aby używać jego 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 oferuje zaawansowaną obsługę funkcji w modułach, 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. Obiekty modułu rozszerzonego, które uwidaczniają wartości z manifestu modułu
  3. Nowa właściwość ExportedCommands modułów, w tym moduły zagnieżdżone, która łączy polecenia wszystkich typów
  4. Ulepszone odnajdywanie dostępnych (nieimportowanych) modułów, w tym zezwolenie na parametry Path i ListAvailable w tym samym poleceniu
  5. Nowy klucz DefaultCommandPrefix w manifestach modułu, który pozwala uniknąć 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 musisz 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. A jeśli używasz polecenia, moduł, który eksportuje polecenie, zostanie automatycznie zaimportowany do sesji.

Nowe Show-Command polecenie cmdlet zostało zaprojektowane specjalnie dla początkujących. Możesz wyszukać polecenia 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 skonstruować 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 dla 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łączanie rejestrowania 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 jednowątkowy apartament. Nowa opcja "Uruchom za pomocą programu PowerShell" w Eksplorator plików umożliwia uruchamianie skryptów w nieograniczonej sesji, klikając prawym przyciskiem myszy. Logika uruchamiania nowego hosta konsoli jest uruchamiana 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ż