변수 및 환경 "PS-Drives" 를 덤프 $PSVersionTable
하고 덤프하는 것 외에 PowerShell 환경을 비교하려면 어떻게 해야 합니까?
문제는 다음과 같습니다.
- Microsoft Windows Server 2012를 실행하는 매우 유사한 컴퓨터가 있습니다.
$PSVersionTable
다음과 같이 덤프합니다.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
작동하는 서버에서
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
나에게 문제가 있는 서버에서.
- 기본 드라이브에는 전혀 차이가 없습니다
variable:
. env:
내용 의 합리적인 차이- 그리고 둘 다 ExecutionPolicy가 RemoteSigned로 설정되어 있습니다.
따라서 차이점은 다음과 같습니다.미성년자버전. 그러나 첫 번째 서버는 다음과 함께 제공되는 Animal 클래스 예제를 실행합니다.PSClass 배포, 두 번째는 그렇지 않습니다.
그리고 디버거에서 에 대한 두 번째 호출을 추적했는데 Attach-PSScriptMethod
, 디버거에 있든 없든 두 번째 서버는 해당 호출에 응답하지 않습니다.
업데이트:첫 번째 서버를 두 번째 서버와 동일한 마이너 버전(및 동일한 CLRVersion)인 빌드 6.3.30319.34209로 업데이트하도록 변경했습니다. 이제 예제도 깨졌습니다. Microsoft가 PSClass 라이브러리를 깨뜨린 것 같습니다.
너무 많은 스크립트가 거기에 사용된 OO 모델에 의존하지 않기를 바랍니다. 왜냐하면 간단한 예를 깨뜨렸다면 더 무거운 코드도 깨뜨릴 수 있었기 때문입니다.
아직은 버릴 생각도 못하고문제그것은 가지고있다
답변1
Powershell 버전 4.0 이상부터 $PSVersionTable을 사용할 수 있습니다. 버전 4.0 미만인 경우에는 다음을 사용해야 합니다.Get-Host