![$PSVersionTable을 덤프하고 변수 및 환경 "PS-Drives"를 덤프하는 것 외에 PowerShell 환경을 비교하기 위해 무엇을 할 수 있습니까?](https://rvso.com/image/652672/%24PSVersionTable%EC%9D%84%20%EB%8D%A4%ED%94%84%ED%95%98%EA%B3%A0%20%EB%B3%80%EC%88%98%20%EB%B0%8F%20%ED%99%98%EA%B2%BD%20%22PS-Drives%22%EB%A5%BC%20%EB%8D%A4%ED%94%84%ED%95%98%EB%8A%94%20%EA%B2%83%20%EC%99%B8%EC%97%90%20PowerShell%20%ED%99%98%EA%B2%BD%EC%9D%84%20%EB%B9%84%EA%B5%90%ED%95%98%EA%B8%B0%20%EC%9C%84%ED%95%B4%20%EB%AC%B4%EC%97%87%EC%9D%84%20%ED%95%A0%20%EC%88%98%20%EC%9E%88%EC%8A%B5%EB%8B%88%EA%B9%8C%3F.png)
변수 및 환경 "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