2011-01-20 2 views

답변

10

난 당신이 설치 폴더의 위치를 ​​변경할 수 없습니다 생각, 그래서 당신은 아마 수 :

test-path "${Env:ProgramFiles(x86)}\Microsoft ASP.NET\ASP.NET MVC 3" 
3

또 다른 방법 (불행히도 아주 조금 느리게) 쿼리하는 WMI입니다 :

$res = Get-WmiObject Win32_Product | Where {$_.Name -match 'ASP\.NET MVC 3'} 
if ($res -ne $null) { ... } 
+0

Win32_Product를 사용하지 않는 것이 좋습니다. 첫째, 정말 천천히 (그 쿼리는 몇 분이 걸릴 수 있습니다). 둘째, Win32_Product 클래스가 설치되어있는 모든 MSI 패키지를 열거하여 작동하므로 재구성 및 유효성 검사 (그리고 응용 프로그램이 원본 MSI와 일치하지 않는 경우 복구)가 발생하므로 시스템을 망칠 수 있습니다. /support.microsoft.com/kb/974524 – Jaykul

+0

그래, 나는 그것이 정말로 놀랍도록 느리다는 것을 알아 차렸다. 잠재적 인 문제에 대해 잘 알고 있습니다. 여전히 이것을 결정하는 WMI 방법이있는 것처럼 보입니다. reg 키나 경로에 의존하는 것은 약간 약해 보입니다. –

2

궁금해서 Win32_AddRemovePrograms 클래스 http://poshcode.org/2470을 만들었지 만 작동하지만 솔직히 특정 제품을 확인하지 않아도됩니다. 레지스트리에서 해당 제품의 ID를 찾을 수 있습니다.

test-path "hklm:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{DCDEC776-BADD-48B9-8F9A-DFF513C3D7FA}" 
{DCDEC776-BADD-48B9-8F9A-DFF513C3D7FA가} Asp.net MVC 당신은 그것을 표시 이름 확인하여 확인하기 위해 다시 한 번 확인 할 수 3의 제품 ID입니다

:

(Get-ItemProperty "hklm:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{DCDEC776-BADD-48B9-8F9A-DFF513C3D7FA}" DisplayName).DisplayName -eq "Microsoft ASP.NET MVC 3" 
+1

MVC 3 보안 업데이트의 경우 {D32EF103-4016-4C15-BCB0-700C0A7A2309}. –

관련 문제