2008-10-31 10 views
16

मैंने एक एमएसआई फ़ाइल लिखी है जो यूआई चरण में "प्रति उपयोगकर्ता" या "सभी के लिए" स्थापना का विकल्प प्रदान करती है, और अब यह पता चलता है कि इंस्टॉलर Vista पर विफल रहता है:Vista पर Windows इंस्टालर में यूएसी वैकल्पिक बनाएं

  • अगर मैं संस्थापक कि XP ​​के लिए काम करता है, पुन: उपयोग, विस्टा अगर मैं PID_WORDCOUNT की बिट 3 में यूएसी बंद कर देते हैं, एक यूएसी भी "प्रति-उपयोगकर्ता" स्थापना के लिए संकेत ट्रिगर किया जाएगा कि स्थापना व्यर्थ
  • बनाने , Vista अब यूएसी का आह्वान नहीं करेगा, इसलिए यदि उपयोगकर्ता को मशीन रजिस्ट्री (कहें) में स्थापित करने की अनुमति होगी, तो विशेषाधिकार उठाना नहीं होता है, इसलिए स्थापना विफल हो जाती है।

तो: जब मैं वास्तव में आवश्यकता नहीं है तो इंस्टॉलर को यूएसी का आह्वान करने से कैसे रोक सकता हूं? वैकल्पिक रूप से, बिट 3 सेट होने पर भी मैं प्रोग्राम को यूएसी का अनुरोध कैसे कर सकता हूं?

उत्तर

6

दुर्भाग्य से, Windows इंस्टालर एक भी पैकेज है कि प्रति-मशीन और प्रति-उपयोगकर्ता स्थापित कर सकते हैं, लेकिन केवल प्रति-मशीन मामले पर यूएसी के लिए संकेत बनाने के लिए एक तरीका प्रदान नहीं करता है। मुद्दा यह है कि यूएसी प्रॉम्प्ट को दबाने वाला बिट सारांश सारांश स्ट्रीम में संग्रहीत किया जाता है और पैकेज निष्पादित होने पर संशोधित नहीं होता है।

+0

धन्यवाद। क्या इसके लिए कोई गंभीर कारण है, या क्या हम उम्मीद कर सकते हैं कि यह ध्वज कुछ दिन संपत्ति बन जाए? –

+1

मैंने सुना है कि एमएसआई 5.0 कुछ ऐसा कर रहा है। लेकिन इसके लिए हमें Win7 की आवश्यकता होगी।

3

इस संदर्भ का प्रयास करें: UAC in MSI Notes: How to Build Packages that work for both Standard User and Per-Machine?

+0

कृपया समझें कि मैं निष्पादन योग्य के यूएसी के बारे में बात नहीं कर रहा हूं - कोई setup.exe नहीं है। इसके बजाए, उपयोगकर्ता सीधे एमएसआई फ़ाइल लॉन्च करते हैं। –

+0

नया संदर्भ प्रदान किया गया ... – saschabeaumont

+0

यह ब्लॉग पोस्ट की श्रृंखला का एक शानदार लिंक है जो इस बात पर चर्चा करता है कि कैसे उपयोगकर्ता एक्सेस कंट्रोल (यूएसी) विंडोज इंस्टालर (.msi) तकनीक से संबंधित है। लिंक के लिए धन्यवाद, @ सस्चा! पुष्टिकरण के लिए – dthrasher

1

मैंने अपने एमएसआई पैकेज में थोड़ा सा PID_WORDCOUNT सेट करके यूएसी को बंद कर दिया। मैं इसे "अल्युमर" और "प्रति-उपयोगकर्ता" के लिए इंस्टॉल करने में सक्षम हूं, और VISTA मशीनों पर दोनों मोड में HKLM के लिए भी लिख सकता हूं। क्या आपके लिए इंस्टॉलेशन के दौरान विशेषाधिकार प्राप्त उपयोगकर्ता के लिए यूएसी पॉपअप प्राप्त करना अनिवार्य है?

+0

इस बिट को बंद करना मेरे लिए काम नहीं करता था। उपयोगकर्ताओं को "अनुमति अस्वीकार" त्रुटियां मिलेंगी, भले ही वे व्यवस्थापक समूह के सदस्य हों। केवल प्रशासक ही पैकेज को सफलतापूर्वक इंस्टॉल कर सकता है। –

संबंधित मुद्दे