powershell - किसी अन्य उपयोगकर्ता को इंस्टॉल करने वाले ऐप को अनइंस्टॉल कैसे करें?




windows-8 windows-runtime (8)

Windows Store ऐप्स प्रबंधित करने के लिए PowerShell cmdlets का एक सेट है। यदि आप निम्न आदेश को व्यवस्थापक के रूप में चलाते हैं तो आप सभी उपयोगकर्ताओं के लिए मशीन पर इंस्टॉल किए गए ऐप्स सूचीबद्ध कर सकते हैं:

Get-AppxPackage -AllUsers

मुझे एक अलग उपयोगकर्ता के लिए ऐप को अनइंस्टॉल करने का कोई तरीका नहीं मिला है, हालांकि। Remove-AppxPackage केवल वर्तमान उपयोगकर्ता के लिए काम करता है। यह सबकुछ और भी दिलचस्प बनाता है यदि आप उपयोगकर्ता को इंस्टॉल करने वाले उपयोगकर्ता को हटा देते हैं। कम से कम विंडोज 8 के प्रीरलीज़ संस्करणों में इसने इंस्टॉल किए गए ऐप को मिटाना असंभव बना दिया। मैं अंतिम रिलीज के बाद से ऐसी स्थिति से सफलतापूर्वक बचने में कामयाब रहा हूं इसलिए मैं पुष्टि नहीं कर सकता कि समस्या अभी भी मौजूद है, यानी उपयोगकर्ता खाता हटा दिए जाने पर ऐप्स अनइंस्टॉल नहीं किए जाते हैं।

जब मैं अपने विंडोज 8 ऐप्स को डीबग करने का प्रयास करता हूं तो मैं इस समस्या को मारता रहता हूं और एक अन्य उपयोगकर्ता खाते पर पहले से स्थापित एक प्रति है:

DEP0700: ऐप का पंजीकरण विफल रहा। एक और उपयोगकर्ता पहले से ही इस ऐप का एक पैक संस्करण स्थापित कर चुका है। एक अनपेक्षित संस्करण इसे प्रतिस्थापित नहीं कर सकता है। विवादित पैकेज {{{PackageName}}} है और इसे CN = {{{प्रमाणपत्र सामग्री}}} द्वारा प्रकाशित किया गया था। (0x80073cf9)

कभी-कभी मैं लॉग इन कर सकता हूं या मशीन में लॉग इन करने और ऐप को अनइंस्टॉल करने के लिए किसी और से पूछ सकता हूं। वैकल्पिक रूप से मैं एप्लिकेशन का नाम / आईडी बदल सकता हूं, लेकिन कोई हमेशा संभव नहीं होता है और दूसरा जोखिम भरा होता है (मैं बदले गए एप्लिकेशन आईडी को स्रोत नियंत्रण में देखना नहीं चाहता)।

इसे अनइंस्टॉल करने का कोई तरीका होना चाहिए। शायद एक पावरशेल स्क्रिप्ट?


निकालें-एपएक्सपैकेज cmdlet में विंडोज 10 170 9 में एक सुधार हुआ था, जिसमें विकल्प के रूप में -लुसर शामिल थे।

इसलिए, सभी उपयोगकर्ताओं के लिए ऐप को अनइंस्टॉल करने के लिए, यह आदेश काम करता है:

Get-AppxPackage -AllUsers [PackageFamilyName] | Remove-AppxPackage -AllUsers

जहां [पैकेजफैमिलीनाम] आम तौर पर आपके पैकेज का GUID है।

चेतावनी / सावधानी: आदेश बाद में बहुत मुश्किल है (डीआईएसएम का उपयोग कर पैकेज को फिर से प्रावधान करना) लगता है, क्योंकि ऐसा लगता है कि प्रत्येक उपयोगकर्ता व्यक्तिगत रूप से ऐप को अनइंस्टॉल कर देता है। यहां पहुंचने के लिए बहुत कुछ ...


मेरे लिए क्या काम किया

 1. Close VS
 2. Open Services
 3. Stop Appx Deployment Service
 4. Open C:\ProgramData\Microsoft\Windows\AppRepository\ and delete the PackageRepository.edb file.
 5. Start Appx Deployment Service
 6. Start VS & Debug - worked like charm

यदि आप वर्तमान उपयोगकर्ता के लिए ऐप को मिटाना चाहते हैं तो कोशिश करें:

Get-AppxPackage | where name -eq "APP.NAME" | Remove-AppxPackage

यह मेरी मदद की। तो बिना Get-AppxPackage


यदि सब कुछ विफल हो जाता है और आप बेताब हैं, जैसे मेरा मामला था (क्योंकि उपयोगकर्ता हटा दिया गया था) यह थोड़ा खतरनाक है लेकिन यह मेरे लिए काम करता है।

अपने जोखिम पर करो! मुझे पता था कि मेरा उपयोगकर्ता मशीन पर बनाया गया अंतिम उपयोगकर्ता था।

यह जवाब TAKEOWN और intika के उत्तर पर उपरोक्त औरी रहीमजादेह के उत्तर का एक संयोजन है जहां आप 'डीबी ब्राउज़र फॉर एसक्यूएलसाइट' का उपयोग करके राज्य रिपोजिटरी-मशीन.srd को संशोधित करते हैं (यहां डाउनलोड किया गया: SQLite 3 के लिए डीबी ब्राउज़र ), केवल अंतर है कि मैंने केवल एक संपादित किया है बात: पैकेजयूसर में मैंने मूल्य 3 को बदल दिया (जो पिछले हटाए गए उपयोगकर्ता की आईडी थी) 4 (जो मुझे है, आखिरी बनाया गया उपयोगकर्ता)

उपयोगकर्ता तालिका की जांच करें और देखें कि मूल्य आपके मामले में क्या काम करते हैं!


यह कुछ अन्य उत्तरों के समान है, खासकर @Pavel Nazarov, लेकिन विभिन्न उपयोगकर्ताओं के लिए काम करता है। और यह स्वीकार्य उत्तर से अलग है क्योंकि आपको किसी भी प्रोग्राम को स्थापित करने की आवश्यकता नहीं है।

व्यवस्थापक मोड में विंडोज पावरहेल में, चलाएं:

get-appxpackage -all | where name -eq "{{ App Name }}" | remove-appxpackage


विंडोज़ 10 पर:

सबसे पहले, आपको SQL डेटाबेस संपादक जैसे SqliteBrowser3 की आवश्यकता है

  1. सिस्टम उपयोगकर्ता के रूप में हेरफेर करें (psexec या अन्य का उपयोग करें)
  2. C:\ProgramData\Microsoft\Windows\AppRepository\StateRepository-Machine.srd एक प्रति बनाएं
  3. उस प्रतिलिपि को SqliteBrowser3 के साथ खोलें
  4. आपको "पैकेज", "पैकेजस" और "उपयोगकर्ता" तालिका को संपादित करने की आवश्यकता होगी। ऐसा करने के लिए, आपको "उपयोगकर्ता" तालिका से भूत उपयोगकर्ता आईडी को नोट करना होगा और फिर उन्हें हटा दें। फिर, "packageuser" तालिका से user कॉलम में भूत उपयोगकर्ता आईडी वाले प्रविष्टियों को हटा दें।
  5. tasklist /svc /fi "services eq StateRepository" मार डालो
  6. बैकअप के बाद मूल StateRepository-Machine.srd प्रतिस्थापित करें।
  7. रीबूट करें और फिर आप सामान्य रूप से अपने पैकेज को हटा सकते हैं

नोट: आपको पैकेज में असाइन की गई अपनी उपयोगकर्ता प्रविष्टि छोड़नी होगी


वर्कअराउंड :

यदि आपके लिए कुछ भी काम नहीं करता है (मेरे लिए यह भी नहीं था), तो आप अपने ऐप मेनिफेस्ट में अपना पैकेज नाम बदल सकते हैं (बस पिछले कुछ पात्रों को दूसरे पात्रों के साथ बदलें)। जब आप ऐसा करते हैं, तो आपके पास अब विरोधाभासी पैकेज नहीं होंगे।

कुछ परिदृश्यों के लिए पैकेज नाम बदलना उचित नहीं हो सकता है, लेकिन जब आप अपने समस्याग्रस्त डिवाइस पर डिबगिंग समाप्त करते हैं तो आप इसे हमेशा वापस ले सकते हैं और इसे वापस बदल सकते हैं ....







windows-store