2011-01-14 18 views
8

Bir WIX yükleyiciden bazı bağlantı noktaları kurmaya çalışıyorum. WinXP için özel bir eylemde httpcfg kullanıyoruz ve bu iyi çalışıyor. Win7 için, deniyoruz:netsh http add urlacl sorunu

netsh http add urlacl url=http://127.0.0.1/8346/ user="NT AUTHORITY\Authenticated Users" sddl="D:(A;;GX;;;AU)" 

WIX yükleyicisi doğru bu açıklamayı yürütür ve portları kurar - .msi çalışır YÖNETİCİSİ. Daha az priviliges olan kullanıcılar bu portlara erişemez. Makinedeki tüm kullanıcılar için ayarlamam gerekiyor, ama şanssız düşünebileceğim her şeyi denedim.

Tuhaf olan bir şey, Admin kullanıcısının netstat -a'yı kullanarak atanmış bağlantı noktalarını görebilmesinin, ancak netsh http show urlacl'ı kullanarak hiç görünmüyor olmasıdır ... bu bir şeyin yanlış göstergesi midir?

+0

Neden her iki parametre de kullanıcı ve sddl kullanıyorsunuz? IMHO sadece bir tanesi gereklidir/faydalıdır. – Christian

cevap

2

Yükleme başladığında UAC'yi istemek için kurulum dosyasına koşul ekleyebilirsiniz. Bu, tüm yükleyicinin yönetici tarafından başlatıldığından emin olacaktır ve böylece kullanıcı yönetici hakları olmadığında bile güvenlik duvarında istisna ekleyecektir.

+0

Bu sorunun cevabını vermiş gibi görünüyor, muhtemelen doğru. Ayrıca, bu cevapta hiçbir özellik yoktur. – Gyuri

+0

WIX'in daha yeni sürümlerini, yönetici olarak düzgün bir şekilde başlatmak için önyükleyiciyi (Setup.exe) desteklemeniz gerekir. Else, yalnızca MSIEXEC aracılığıyla bir yönetici komutundan/işleminden başlatıldığında çalışacaktır. Boots.exe, Setup.exe çift kabuktan çift tıklandığında bile yönetici olarak çalıştığınızı garanti etmenin tek yoludur. Ayrıca, bazı garip hata mesajlarından ziyade, kullanıcının/yönetici günlüğünün neden başarısız olduğunu açıklamak için bir başlatma koşulu eklemek yaygındır. MSI/setup.exe bootstrapper olmadan çift tıklandığında. "Başka bir işlem/setup.exe aracılığıyla yalnızca sisteminizi" UAC "komutunu veremezsiniz. –

6

Bağlantı numaranız 8346 ise, sözdizimi yanlış olmalıdır.

netsh http add urlacl url=http://127.0.0.1:8346/ user="NT AUTHORITY\Authenticated Users" 
+0

Yanıt yazım hatası düzeltmeyi gerçek bir ifade olsa da, sorunun nasıl yanıtlandığını göremiyorum. Bu bilgi için bir yorum kullanmış olabilirsiniz. – Gyuri

+0

Biraz daha net olmasını istiyorsanız, herhangi bir adres girmekten kaçınmak için artı işaretini kullanabilirsiniz, bu, yerel makineye çözülen herhangi bir IP veya isim için bir kısayoldur, yani "http: // +: 8346 /" . –

İlgili konular