2013-06-05 1 views
3

저는 직장에서 앱용 PowerShell 설치 스크립트를 만들고 있는데, PowerShell ISE에서 PowerGUI로 계속 전환하고 있습니다.[Environment + SpecialFolder]의 Powershell ISE와 PowerGUI의 차이점

나는 그 (것)들 사이 다름을 찾아 냈다 나는 진짜로 설명 할 수없고 나는 약간 통보가 있고 싶다.

$test = "" 
$feedback = $FALSE 
try 
{ 
    $test = [System.Environment]::GetFolderPath([Environment+SpecialFolder]::ProgramFilesX86) 
} 
catch 
{ 
    $test = "" 
} 
if($test -eq "") 
{ 
    $feedback = $TRUE 
} 
else 
{ 
    $feedback = $FALSE 
} 
"Feedback : " + $feedback 
"Result : " + $test 

파워 쉘 ISE 반환 :

Feedback : True 
Result : 

그리고 PowerGUI를 반환 : 같은 다음 코드를

물론
Feedback : False 
Result : C:\Program Files (x86) 

, C : \ 프로그램 파일 (86) 기존 폴더입니다.

이유가 궁금합니다. 감사합니다. .

답변

2

사용자 환경이 동일한 버전의 PowerShell 또는 적어도 동일한 버전의 CLR을 재생하지 않습니다. $PSVersionTable을보십시오.

NET Framework 4.5에는 Environment.SpecialFolder 열거 형에 ProgramFilesX86이 포함되어 있지만 NET Framework 3.5 및 이전 버전에서는 그렇지 않습니다.

+0

이 팁에 대해 감사드립니다. –

+0

+1 맛있는 CLR 너겟/트리 비어. – x0n