2011-01-20 9 views

Odpowiedz

10

Myślę, że nie można zmienić lokalizację folderu instalacyjnego, więc prawdopodobnie można po prostu:

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

Innym sposobem (niestety trochę wolniej) jest do kwerendy WMI:

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

Zdecydowanie zalecam unikanie używania Win32_Product. Po pierwsze, jest naprawdę, bardzo powolny (zapytanie może zająć kilka minut). Po drugie, * możesz zepsuć swój system *, ponieważ klasa Win32_Product działa poprzez wyliczenie każdego zainstalowanego pakietu MSI, co skutkuje rekonfiguracją i sprawdzeniem poprawności (i naprawą, jeśli aplikacja okaże się niezgodna z oryginalnym MSI) http://support.microsoft.com/kb/974524 – Jaykul

+0

Tak, zauważyłem, że to było naprawdę niewiarygodnie powolne. Dobrze wiedzieć o potencjalnych problemach. Mimo to wydaje się, że powinien istnieć sposób WMI, aby to ustalić. Poleganie na kluczach lub ścieżkach reg wydaje się nieco kruche. –

2

Zainteresowałem się i stworzyłem klasę Win32_AddRemovePrograms http://poshcode.org/2470 ... która działa, ale szczerze mówiąc, nie potrzebujesz tego do sprawdzenia konkretnego produktu, możesz po prostu wyszukać identyfikator tego produktu w rejestrze.

test-path "hklm:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{DCDEC776-BADD-48B9-8F9A-DFF513C3D7FA}" 

Gdzie {DCDEC776-BADD-48B9-8F9A-DFF513C3D7FA} jest identyfikator produktu dla ASP.NET MVC 3. Można dokładnie sprawdzić, aby upewnić się, sprawdzając nazwę wyświetlaną dla niego:

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

I {D32EF103-4016-4C15-BCB0-700C0A7A2309} dla aktualizacji zabezpieczeń MVC 3. –

Powiązane problemy