![Além de procurar despejar $ PSVersionTable e despejar a variável e o ambiente "PS-Drives", o que mais posso fazer para comparar ambientes PowerShell?](https://rvso.com/image/652672/Al%C3%A9m%20de%20procurar%20despejar%20%24%20PSVersionTable%20e%20despejar%20a%20vari%C3%A1vel%20e%20o%20ambiente%20%22PS-Drives%22%2C%20o%20que%20mais%20posso%20fazer%20para%20comparar%20ambientes%20PowerShell%3F.png)
Além de procurar despejar $PSVersionTable
e despejar a variável e o ambiente "PS-Drives", o que posso fazer para comparar ambientes PowerShell?
Aqui está o problema:
- Tenho máquinas muito semelhantes executando o Microsoft Windows Server 2012
$PSVersionTable
despeja como:Name Value ---- ----- PSVersion 4.0 WSManStackVersion 3.0 SerializationVersion 1.1.0.1 CLRVersion 4.0.30319.34014 BuildVersion 6.3.9600.17090 PSCompatibleVersions {1.0, 2.0, 3.0, 4.0} PSRemotingProtocolVersion 2.2
no servidor que funciona, e
Name Value ---- ----- PSVersion 4.0 WSManStackVersion 3.0 SerializationVersion 1.1.0.1 CLRVersion 4.0.30319.34209 BuildVersion 6.3.9600.16406 PSCompatibleVersions {1.0, 2.0, 3.0, 4.0} PSRemotingProtocolVersion 2.2
no servidor com o qual estou tendo problemas.
- Não há muita diferença em uma
variable:
unidade básica. - Diferenças razoáveis no
env:
conteúdo - E ambos têm ExecutionPolicy definido como RemoteSigned.
Então as diferenças estão nomenorversão. Mas o primeiro servidor executará o exemplo de classes Animal que vem com oImplantação PSClass, e o segundo não.
E rastreei no depurador até a segunda chamada Attach-PSScriptMethod
, seja em um depurador ou não, o segundo servidor simplesmente trava nessa chamada.
Atualizar:Acabei de receber uma alteração para atualizar meu primeiro servidor para Build 6.3.30319.34209, a mesma versão secundária do segundo (e a mesma CLRVersion). Agora o exemplo também quebra. Parece que a Microsoft quebrou a biblioteca PSClass.
Espero que não muitos scripts dependam do modelo OO usado lá, porque se eles quebrassem o exemplo simples, poderiam também ter quebrado código mais pesado.
Eu ainda não consigo nem jogar fora oproblematem
Responder1
Iniciando o Powershell versão 4.0 e superior, você pode usar $PSVersionTable. Qualquer coisa menor que a versão 4.0, você precisaria usarGet-Host