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:
- Developing PowerShell Cmdlets for Nano Server
- Developing PowerShell Cmdlets for Nano Server using the PowerShell Core SDK
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:
hanno veramente diviso powershell in due ?
cercando di complicare un linguaggio che gia’ usano in pochissimi…
MS dei pazzi…
In realtà per chi usa attualmente PowerShell non cambia assolutamente nulla continuerà ad usarlo con tutte le funzionalità, ma in questo modo chi lo desidera usare in Nano Server o in Windows IoT potrà farlo col set si funzionalità che ha senso per quel tipo si OS ridotti.
Di fatto non è stato fatto altro che quello era stato fatto per .NET per far si che si posse scrivere applicazioni per gli ambienti Embedded.
La modifica server appunto a chi vuole sviluppare moduli PS per Nano Server e per controllare che un determinato modulo sia Core compliance e quindi usabile in Nano Server