Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
A partire dalla versione 5.1, PowerShell è disponibile in diverse edizioni che indicano diversi set di funzionalità e compatibilità della piattaforma.
Desktop Edition: basata su .NET Framework e offre compatibilità con script e moduli destinati alle versioni di PowerShell in esecuzione su edizioni con footprint completo di Windows, ad esempio Server Core e Windows Desktop.
Core Edition: basata su .NET Core e offre compatibilità con script e moduli destinati a versioni di PowerShell in esecuzione su edizioni con footprint ridotto di Windows, ad esempio Nano Server e Windows IoT.
L'edizione in esecuzione di PowerShell viene visualizzata nella proprietà PSEdition di $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
Gli autori di script possono impedire l'esecuzione di uno script a meno che non venga eseguito in un'edizione compatibile di PowerShell usando il parametro PSEdition in un'istruzione #requires .
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
Gli utenti di PowerShell Gallery possono trovare l'elenco degli script supportati in un'edizione specifica di PowerShell. Gli script senza PSEdition_Desktop e PSEdition_Core tag sono considerati funzionare correttamente in PowerShell Desktop Edition.
# Find scripts supported on PowerShell Desktop edition
Find-Script -Tag PSEdition_Desktop
# Find scripts supported on PowerShell Core edition
Find-Script -Tag PSEdition_Core