Script com edições compatíveis do PowerShell
Começando na versão 5.1, o PowerShell está disponível nas diferentes edições que denotam conjuntos de funcionalidade e compatibilidade de plataforma variados.
Edição Desktop: incorporada no .NET Framework e fornece compatibilidade com scripts e módulos de filtragem de versões do PowerShell a executar edições de requisitos de espaço total do Windows, tais como Server Core e o Ambiente de trabalho do Windows.
Edição Core: incorporada no .NET Core e fornece compatibilidade com scripts e módulos de filtragem de versões do PowerShell a executar edições de requisitos de espaço reduzido do Windows, tais como Servidor Nano e o IoT do Windows.
A edição em execução do PowerShell é apresentada na propriedade PSEdition da $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
Os autores de scripts podem impedir a execução de um script, a menos que seja executado numa edição compatível do PowerShell com o parâmetro PSEdition numa #requires
instrução.
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
Galeria do PowerShell utilizadores podem encontrar a lista de scripts suportados numa Edição específica do PowerShell. Os scripts sem PSEdition_Desktop e etiquetas de PSEdition_Core são considerados como funcionando corretamente na edição do PowerShell Desktop.
# Find scripts supported on PowerShell Desktop edition
Find-Script -Tag PSEdition_Desktop
# Find scripts supported on PowerShell Core edition
Find-Script -Tag PSEdition_Core
Mais detalhes
PowerShell Gallery