PowerShell na serwerze Nano ServerPowerShell on Nano Server

Dotyczy: system Windows Server 2016Applies To: Windows Server 2016

Ważne

Wraz z udostępnieniem nowej funkcji w systemie Windows Server, wersja 1709 Nano Server będzie dostępna tylko jako kontener podstawowy obraz systemu operacyjnego.Starting in Windows Server, version 1709, Nano Server will be available only as a container base OS image. Zapoznaj się z tematem Zmiany w systemie Nano Server, aby dowiedzieć się, co to oznacza.Check out Changes to Nano Server to learn what this means.

Wersje programu PowerShellPowerShell Editions

Od wersji 5.1 program PowerShell jest dostępny w różnych wersjach, które charakteryzują się różnymi zestawami funkcji i zgodnością z różnymi platformami.Starting with version 5.1, PowerShell is available in different editions which denote varying feature sets and platform compatibility.

  • Wersja Desktop: jest oparta na programie .NET Framework i zapewnia zgodność ze skryptami i modułami przeznaczonymi dla wersji programu PowerShell działających w pełnych wersjach systemu Windows, takich jak instalacja Podstawowe funkcje serwera i system Windows dla komputerów stacjonarnych.Desktop Edition: Built on .NET Framework and provides compatibility with scripts and modules targeting versions of PowerShell running on full footprint editions of Windows such as Server Core and Windows Desktop.
  • Wersja Core: jest oparta na module .NET Core i zapewnia zgodność ze skryptami i modułami przeznaczonymi dla wersji programu PowerShell działających w ograniczonych wersjach systemu Windows, takich jak system Nano Server i Windows IoT.Core Edition: Built on .NET Core and provides compatibility with scripts and modules targeting versions of PowerShell running on reduced footprint editions of Windows such as Nano Server and Windows IoT.

Informacje o działającej wersji programu PowerShell można znaleźć we właściwości PSEdition tabeli $PSVersionTable.The running edition of PowerShell is shown in the PSEdition property of $PSVersionTable.

$PSVersionTable  

Name                           Value  
----                           -----  
PSVersion                      5.1.14300.1000  
PSEdition                      Desktop  
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}  
CLRVersion                     4.0.30319.42000  
BuildVersion                   10.0.14300.1000  
WSManStackVersion              3.0  
PSRemotingProtocolVersion      2.3  
SerializationVersion           1.1.0.1  

Autorzy modułów mogą zadeklarować zgodność swoich modułów z jedną lub kilkoma wersjami programu PowerShell przy użyciu klucza manifestu modułu CompatiblePSEditions.Module authors can declare their modules to be compatible with one or more PowerShell editions using the CompatiblePSEditions module manifest key. Ten klucz jest obsługiwany tylko w programie PowerShell 5.1 i w nowszych wersjach.This key is only supported on PowerShell 5.1 or later.

New-ModuleManifest -Path .\TestModuleWithEdition.psd1 -CompatiblePSEditions Desktop,Core -PowerShellVersion 5.1  
$moduleInfo = Test-ModuleManifest -Path \TestModuleWithEdition.psd1  
$moduleInfo.CompatiblePSEditions  
Desktop  
Core  

$moduleInfo | Get-Member CompatiblePSEditions  

   TypeName: System.Management.Automation.PSModuleInfo  

Name                 MemberType Definition  
----                 ---------- ----------  
CompatiblePSEditions Property   System.Collections.Generic.IEnumerable[string] CompatiblePSEditions {get;}  

Podczas pobierania listy dostępnych modułów można filtrować tę listę według wersji programu PowerShell.When getting a list of available modules, you can filter the list by PowerShell edition.

Get-Module -ListAvailable | ? CompatiblePSEditions -Contains "Desktop"  

    Directory: C:\Program Files\WindowsPowerShell\Modules  


ModuleType Version    Name                                ExportedCommands  
---------- -------    ----                                ----------------  
Manifest   1.0        ModuleWithPSEditions  

Get-Module -ListAvailable | ? CompatiblePSEditions -Contains "Core" | % CompatiblePSEditions  
Desktop  
Core  

Autorzy skryptów mogą uniemożliwić wykonywanie skryptu, jeśli nie jest on uruchamiany w zgodnej wersji programu PowerShell, przy użyciu parametru PSEdition w instrukcji #requires.Script authors can prevent a script from executing unless it is run on a compatible edition of PowerShell using the PSEdition parameter on a #requires statement.

Set-Content C:\script.ps1 -Value "#requires -PSEdition Core  
Get-Process -Name PowerShell"  
Get-Content C:\script.ps1  
#requires -PSEdition Core  
Get-Process -Name PowerShell  

C:\script.ps1  
C:\script.ps1 : The script 'script.ps1' cannot be run because it contained a "#requires" statement for PowerShell editions 'Core'. The edition of PowerShell that is required by the script does not match the currently running PowerShell Desktop edition.  
At line:1 char:1  
+ C:\script.ps1  
+ ~~~~~~~~~~~~~  
    + CategoryInfo          : NotSpecified: (script.ps1:String) [], RuntimeException  
    + FullyQualifiedErrorId : ScriptRequiresUnmatchedPSEdition  

Różnice w programie PowerShell na serwerze Nano ServerDifferences in PowerShell on Nano Server

Domyślnie wszystkie instalacje systemu Nano Server zawierają program PowerShell Core.Nano Server includes PowerShell Core by default in all Nano Server installations. PowerShell Core to ograniczona wersja programu PowerShell, która jest oparta na module .NET Core i działa w ograniczonych wersjach systemu Windows, takich jak Nano Server i Windows IoT Core.PowerShell Core is a reduced footprint edition of PowerShell that is built on .NET Core and runs on reduced footprint editions of Windows, such as Nano Server and Windows IoT Core. Program PowerShell Core działa tak jak inne wersje programu PowerShell, na przykład program Windows PowerShell w systemie Windows Server 2016.PowerShell Core functions in the same way as other editions of PowerShell, such as Windows PowerShell running on Windows Server 2016. Jednak ograniczony charakter systemu Nano Server oznacza, że nie wszystkie funkcje programu PowerShell z systemu Windows Server 2016 są dostępne w programie PowerShell Core w systemie Nano Server.However, the reduced footprint of Nano Server means that not all PowerShell features from Windows Server 2016 are available in PowerShell Core on Nano Server.

Funkcje programu Windows PowerShell niedostępne na serwerze Nano ServerWindows PowerShell features not available in Nano Server

  • Adaptery typu ADSI, ADO i WMIADSI, ADO, and WMI type adapters
  • Enable-PSRemoting, Disable-PSRemoting (komunikacja zdalna programu PowerShell jest domyślnie włączona; zobacz sekcja „Używanie komunikacji zdalnej programu Windows PowerShell” w temacie Instalowanie serwera z systemem Nano Server).Enable-PSRemoting, Disable-PSRemoting (PowerShell remoting is enabled by default; see the "Using Windows PowerShell Remoting" section of Install Nano Server).
  • Zaplanowane zadania i moduł PSScheduledJobScheduled jobs and PSScheduledJob module
  • Polecenia cmdlet komputera służące do przyłączania do domeny { Add | Remove } (inne metody przyłączenia do domeny serwera z systemem Nano Server zawiera sekcja „Przyłączanie serwera Nano Server do domeny” w temacie Instalowanie serwera z systemem Nano Server).Computer cmdlets for joining a domain { Add | Remove } (for different methods to join Nano Server to a domain, see the "Joining Nano Server to a domain" section of Install Nano Server).
  • Reset-ComputerMachinePassword, Test-ComputerSecureChannelReset-ComputerMachinePassword, Test-ComputerSecureChannel
  • Profile (można dodać skrypt uruchamiania dla przychodzących połączeń zdalnych za pomocą polecenia Set-PSSessionConfiguration)Profiles (you can add a startup script for incoming remote connections with Set-PSSessionConfiguration)
  • Polecenia cmdlet schowkaClipboard cmdlets
  • Polecenia cmdlet EventLog { Clear | Get | Limit | New | Remove | Show | Write } (zamiast tego użyj poleceń cmdlet New-WinEvent i Get-WinEvent).EventLog cmdlets { Clear | Get | Limit | New | Remove | Show | Write } (use the New-WinEvent and Get-WinEvent cmdlets instead).
  • Polecenie cmdlet Get-PfxCertificateGet-PfxCertificate cmdlet
  • Polecenia cmdlet TraceSource { Get | Set }TraceSource cmdlets { Get | Set }
  • Polecenia cmdlet Counter { Get | Export | Import }Counter cmdlets { Get | Export | Import }
  • Niektóre polecenia cmdlet związane z siecią Web { New-WebServiceProxy, Send-MailMessage, ConvertTo-Html }Some web-related cmdlets { New-WebServiceProxy, Send-MailMessage, ConvertTo-Html }
  • Rejestrowanie i śledzenie za pomocą modułu PSDiagnosticsLogging and tracing using PSDiagnostics module
  • Get-HotFix (aby uzyskać aktualizacje i zarządzać nimi na serwerze Nano Server, zobacz Zarządzanie serwerem Nano Server).Get-HotFix (to obtain and manage updates on Nano Server, see Manage Nano Server).
  • Niejawne polecenia cmdlet do komunikacji zdalnej { Export-PSSession | Import-PSSession }Implicit remoting cmdlets { Export-PSSession | Import-PSSession }
  • New-PSTransportOptionNew-PSTransportOption
  • Transakcje programu PowerShell i polecenia cmdlet Transaction { Complete | Get | Start | Undo | Use }PowerShell transactions and Transaction cmdlets { Complete | Get | Start | Undo | Use }
  • Infrastruktura, moduły i polecenia cmdlet przepływów pracy programu PowerShellPowerShell Workflow infrastructure, modules, and cmdlets
  • Out-PrinterOut-Printer
  • Update-ListUpdate-List
  • Polecenia cmdlet usługi WMI w wersji 1: Get-WmiObject, Invoke-WmiMethod, Register-WmiEvent, Remove-WmiObject, Set-WmiInstance (zamiast tego użyj modułu CimCmdlets)WMI v1 cmdlets: Get-WmiObject, Invoke-WmiMethod, Register-WmiEvent, Remove-WmiObject, Set-WmiInstance (use CimCmdlets module instead.)

Używanie konfiguracji żądanego stanu programu Windows PowerShell za pomocą systemu Nano ServerUsing Windows PowerShell Desired State Configuration with Nano Server

Przy użyciu konfiguracji żądanego stanu programu Windows PowerShell (DSC, Desired State Configuration) można zarządzać systemem Nano Server jako węzłami docelowymi.You can manage Nano Server as target nodes with Windows PowerShell Desired State Configuration (DSC). Obecnie węzłami z uruchomionym systemem Nano Server z konfiguracją DSC można zarządzać wyłącznie w trybie wypychania.Currently, you can manage nodes running Nano Server with DSC in push mode only. Nie wszystkie funkcje konfiguracji DSC działają z systemem Nano Server.Not all DSC features function with Nano Server.

Aby uzyskać szczegółowe informacje, zobacz Using DSC on Nano Server (Używanie konfiguracji DSC na serwerze z systemem Nano Server).For full details, see Using DSC on Nano Server.