PowerShell unter Nano ServerPowerShell on Nano Server

Gilt für: Windows Server 2016Applies To: Windows Server 2016

Wichtig

Mit dem Beginn von Windows Server, Version 1709 steht Nano Server nur als Basisimage des Betriebssystems für den Container zur Verfügung.Starting in Windows Server, version 1709, Nano Server will be available only as a container base OS image. Sehen Sie sich Änderungen an Nano Server an und erfahren Sie, was dies bedeutet.Check out Changes to Nano Server to learn what this means.

PowerShell-EditionenPowerShell Editions

Ab Version 5.1 ist PowerShell in verschiedenen Editionen verfügbar, die unterschiedliche Funktionen mitbringen und zu unterschiedlichen Plattformen kompatibel sind.Starting with version 5.1, PowerShell is available in different editions which denote varying feature sets and platform compatibility.

  • Desktop-Edition: Basiert auf .NET Framework und bietet Kompatibilität mit Skripts und Modulen für Versionen von PowerShell, die unter Vollversionen von Windows wie Server Core und Windows-Desktop ausgeführt wird.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.
  • Core-Edition: Basiert auf .NET Core und bietet Kompatibilität mit Skripts und Modulen für Versionen von PowerShell, die unter funktionsreduzierten Versionen von Windows wie Nano Server und Windows IoT ausgeführt wird.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.

Die ausgeführte Version von PowerShell wird in der PSEdition-Eigenschaft von $PSVersionTable angezeigt.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  

Modulautoren können deklarieren, dass ihre Module mit einer oder mehreren PowerShell-Editionen kompatibel sein sollen, indem Sie den CompatiblePSEditions-Modulmanifestschlüssel verwenden.Module authors can declare their modules to be compatible with one or more PowerShell editions using the CompatiblePSEditions module manifest key. Dieser Schlüssel wird nur auf PowerShell 5.1 oder höher unterstützt.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;}  
  

Beim Abrufen einer Liste der verfügbaren Module können Sie die Liste nach PowerShell-Edition filtern.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  
  

Skriptautoren können verhindern, dass ein Skript ausgeführt wird, es sei denn, es wird auf einer kompatiblen Edition von PowerShell mithilfe des PSEdition-Parameters auf einer #requires-Anweisung ausgeführt.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  

Unterschiede in PowerShell unter Nano ServerDifferences in PowerShell on Nano Server

PowerShell Core ist standardmäßig in allen Nano Server-Installationen enthalten.Nano Server includes PowerShell Core by default in all Nano Server installations. PowerShell Core ist eine reduzierte Edition von PowerShell, die auf .Net Core erstellt wird und auf reduzierten Editionen von Windows, wie z.B. Nano Server und Windows IoT Core, ausgeführt wird.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. PowerShell Core arbeitet genauso wie andere PowerShell-Editionen, wie z.B. Windows PowerShell unter Windows Server 2016.PowerShell Core functions in the same way as other editions of PowerShell, such as Windows PowerShell running on Windows Server 2016. Jedoch bedeutet die reduzierte Version von Nano Server, dass nicht alle PowerShell-Funktionen von Windows Server 2016 in PowerShell Core in Nano Server verfügbar sind.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.

Windows PowerShell-Funktionen, die in Nano Server nicht verfügbarWindows PowerShell features not available in Nano Server

  • ADSI, ADO und WMI-TypadapterADSI, ADO, and WMI type adapters
  • Enable-PSRemoting, Disable-PSRemoting (PowerShell-Remoting ist standardmäßig aktiviert; siehe Abschnitt „Verwenden von Windows PowerShell-Remoting“ unter Installieren von Nano Server).Enable-PSRemoting, Disable-PSRemoting (PowerShell remoting is enabled by default; see the "Using Windows PowerShell Remoting" section of Install Nano Server).
  • Geplante Aufträge und PSScheduledJob-ModulScheduled jobs and PSScheduledJob module
  • Computer-Cmdlets für den Beitritt zu einer Domäne { Add | Remove } (andere Methoden, Nano Server mit einer Domäne zu verknüpfen, finden Sie im Abschnitt „Verknüpfen von Nano Server mit einer Domäne“ unter Installieren von 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 (Sie können ein Startskript für eingehende Remoteverbindungen mit Set-PSSessionConfiguration hinzufügen)Profiles (you can add a startup script for incoming remote connections with Set-PSSessionConfiguration)
  • „Clipboard“-CmdletsClipboard cmdlets
  • EventLog-Cmdlets { Clear | Get | Limit | New | Remove | Show | Write } (Verwenden Sie stattdessen die Cmdlets New-WinEvent and Get-WinEvent).EventLog cmdlets { Clear | Get | Limit | New | Remove | Show | Write } (use the New-WinEvent and Get-WinEvent cmdlets instead).
  • Get-PfxCertificate-CmdletGet-PfxCertificate cmdlet
  • TraceSource-Cmdlets { Get | Set }TraceSource cmdlets { Get | Set }
  • Counter-Cmdlets { Get | Export | Import }Counter cmdlets { Get | Export | Import }
  • Einige webbezogene Cmdlets { New-WebServiceProxy, Send-MailMessage, ConvertTo-Html }Some web-related cmdlets { New-WebServiceProxy, Send-MailMessage, ConvertTo-Html }
  • Protokollierung und Ablaufverfolgung mit dem PSDiagnostics-ModulLogging and tracing using PSDiagnostics module
  • Get-HotFix (zum Abrufen und Verwalten von Updates auf Nano Server; Informationen hierzu finden Sie unter Manage Nano Server (Verwalten von Nano Server)).Get-HotFix (to obtain and manage updates on Nano Server, see Manage Nano Server).
  • Cmdlets für implizites Remoten { Export-PSSession | Import-PSSession }Implicit remoting cmdlets { Export-PSSession | Import-PSSession }
  • New-PSTransportOptionNew-PSTransportOption
  • PowerShell-Transaktionen und Transaktions-Cmdlets { Complete | Get | Start | Undo | Use }PowerShell transactions and Transaction cmdlets { Complete | Get | Start | Undo | Use }
  • Infrastruktur, Module und Cmdlets der PowerShell-WorkflowPowerShell Workflow infrastructure, modules, and cmdlets
  • Out-PrinterOut-Printer
  • Update-ListUpdate-List
  • WMIv1-Cmdlets: Get-WmiObject, Invoke-WmiMethod, Register-WmiEvent, Remove-WmiObject, Set-WmiInstance (stattdessen CimCmdlets-Modul.)WMI v1 cmdlets: Get-WmiObject, Invoke-WmiMethod, Register-WmiEvent, Remove-WmiObject, Set-WmiInstance (use CimCmdlets module instead.)

Verwenden von Windows PowerShell DSC mit Nano ServerUsing Windows PowerShell Desired State Configuration with Nano Server

Sie können Nano Server als Zielknoten mit Windows PowerShell Desired State Configuration (DSC) verwalten.You can manage Nano Server as target nodes with Windows PowerShell Desired State Configuration (DSC). Derzeit können Sie Knoten unter Nano Server mit DSC nur im Pushmodus verwenden.Currently, you can manage nodes running Nano Server with DSC in push mode only. Allerdings funktionieren nicht alle DSC-Features mit Nano Server.Not all DSC features function with Nano Server.

Ausführliche Informationen finden Sie unter Using DSC on Nano Server (Verwenden von DSC unter Nano Server).For full details, see Using DSC on Nano Server.