2011-01-20 28 views

cevap

10

Ben yüklemek klasörün konumunu değiştiremez düşünüyorum, bu yüzden muhtemelen tekini:

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

başka yolu, (ne yazık ki biraz daha yavaş) sorgulamak için WMI geçerli:

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

Win32_Product kullanımının önlenmesi önerilir. İlk olarak, gerçekten çok yavaş (bu sorgu birkaç dakika sürebilir). İkincisi, * sisteminizi kapatabilirsiniz * çünkü Win32_Product sınıfı yüklenen her MSI paketini numaralandırarak çalışır, bu da bir yeniden yapılandırma ve doğrulama ile sonuçlanır (ve uygulama orijinal MSI ile tutarsız olarak bulunursa onarılır) http://support.microsoft.com/kb/974524 – Jaykul

+0

Evet, gerçekten inanılmaz derecede yavaş olduğunu fark ettim. Potansiyel konular hakkında bilmek güzel. Yine de, bunu belirlemek için bir WMI yolu olmalı gibi görünüyor. Kayıt anahtarlarına veya yollarına güvenmek biraz kırılgan görünüyor. MVC 3 güvenlik güncelleştirmesi için –

2

Merak ettim ve bir Win32_AddRemovePrograms sınıfında çalışan http://poshcode.org/2470 ... ama dürüst olmak gerekirse, belirli bir ürünü kontrol etmek için buna ihtiyacınız yok, sadece bu ürünün kimliğini kayıt defterinde bulabilirsiniz.

test-path "hklm:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\{DCDEC776-BADD-48B9-8F9A-DFF513C3D7FA}" 
{DCDEC776-BADD-48B9-8F9A-DFF513C3D7FA} Asp.net MVC Bunun için ekran adını kontrol ederek emin olmak için kontrol çift olabilir 3. ürün kimliğidir

:

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

ve {D32EF103-4016-4C15-BCB0-700C0A7A2309}. –

İlgili konular