PowerShell su Nano Server

La versione 5.1 di PowerShell è disponibile in due edizioni differenti con feature e compatibilità diverse come indicato in PowerShell on Nano Server.

La prima edizione è la Desktop basata su .NET Framework e garantisce la compatibilità con scripts e moduli PowerShell in esecuzione su versioni complete di Windows quali Server Core e Windows Desktop.

La seconda edizione è la Core basata su .NET Core e garantisce la compatibilità con scripts e moduli PowerShell in esecuzione su versioni ridotte di Windows quali Nano Server e Windows IoT.

PowerShell 5.1 sarà disponibile nativamente in Windows Server 2016 o tramite il Windows Management Framework 5.0, a riguardo si veda Windows Management Framework 5.0 Updates and WMF 5.1.

Per conoscere quale edizione di PowerShell è in esecuzione è possibile utilizzare la proprietà PSEdition della variabile automatica $PSVersionTable.

PowerShell 5.1 consentirà di creare moduli dichiarando la compatibilità degli stessi ad una o più edizioni di PowerShell utilizzando la CompatiblePSEditions module manifest key supportata appunto solo in PowerShell 5.1 o successivo, a riguardo si veda PowerShell on Nano Server. Per ulteriori informazioni sullo sviluppo di moduli e cmdlets per Nano Server si vedano i seguenti:

Ovviamente il ridotto footprint di Nano Server implica che non tutte le features di PowerShell sono disponibili in PowerShell Core di Nano Server, inoltre il ridotto footprint di .NET Core implica anche che non tutti i cmdlets scritti in C# possono essere eseguiti su PowerShell Core.

Di seguito le features che in Nano Server TP5 non sono disponibili come indicato in PowerShell on Nano Server:

  • ADSI, ADO, WMI type adapters e WMI v1 cmdlets (è disponibile il modulo per CimCmdlets)
  • Enable-PSRemoting, Disable-PSRemoting, Export-PSSession, Import-PSSession (PowerShell remoting è abilitato per default)
  • Cmdlets per joining a dominio { Add | Remove }
  • Profiles (Set-PSSessionConfiguration consente l’aggiunta di uno startup script per le sessioni remote in entrata)
  • EventLog cmdlets (sono disponibili New-WinEvent e Get-WinEvent)
  • Logging e tracing tramite PSDiagnostics module
  • PowerShell transactions e Transaction
  • PowerShell Workflow infrastructure
  • Cmdlets Reset‑ComputerMachinePassword, Test‑ComputerSecureChannel, Get-PfxCertificate,
    Get-HotFix, New-PSTransportOption, Out-Printer, Update-List
  • Cmdlets per la gestione di Scheduled jobs, Clipboard, TraceSource, Counter

Nano Server è anche gestibile tramite Windows PowerShell Desired State Configuration (DSC), ma al momento è possibile eseguire la gestione solo in push mode e non tutte le feature di DSC sono disponibili. A riguardo si vedano: