मेरे पास विंडोज़ 2003, 2008 और 2008r2 सर्वर के साथ एक नेटवर्क है। मेरे पास एक पॉवरशेल स्क्रिप्ट है जिसे मैंने "Microsoft.Update" कॉम ऑब्जेक्ट का उपयोग करके एक स्थानीय मशीन को पैच करने के लिए लिखा था। ( विंडोज अपडेट पॉवरशेल रीमोटिंग के समान ।) मेरी स्क्रिप्ट स्थानीय रूप से शानदार काम करती है, लेकिन मैं इसका उपयोग करना चाहूंगा, क्योंकि मैं इसे प्रबंधित करने के लिए उचित संख्या में सर्वर रखता हूं। उस स्थिति में यह नीचे गिरता है (उसी तरह अन्य पद, जो हल नहीं किया गया था)।
मैं हालांकि एक विशेष वर्ग पर दो तरीकों से विफलता को कम करने में सक्षम था।
(New-Object -ComObject "Microsoft.Update.Session").CreateUpdateDownloader()
(New-Object -ComObject "Microsoft.Update.Session").CreateUpdateInstaller()
यदि आप एक व्यवस्थापक के रूप में स्थानीय स्तर पर इन्हें चलाते हैं, तो आपके पास कोई समस्या नहीं होगी। यदि आप चालान-कमांड (या प्रवेश-सत्र, या विजेता) का उपयोग करने का प्रयास करते हैं, तो आपको निम्न त्रुटि मिलेगी। (यह स्थानीयहोस्ट के साथ परीक्षण कर रहा है, लेकिन कोई भी होस्ट करेगा। मैंने अलग-अलग प्रमाणीकरण विधियों जैसे कि क्रेडिट्स और केर्बरोस के साथ भी कोशिश की है।)
PS C:\> Invoke-Command -ComputerName localhost -ScriptBlock { (New-Object -ComObject "microsoft.update.session").createUpdateDownloader()}
Exception calling "CreateUpdateDownloader" with "0" argument(s): "Access is denied. (Exception from HRESULT: 0x80070005
(E_ACCESSDENIED))"
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : ComMethodTargetInvocation
मैंने इसका उल्लेख ब्लॉग पर बग के रूप में किया है, लेकिन उस दावे का कोई बैकअप नहीं है। दो वर्कअराउंड मौजूद हैं और दोनों मुझे खुश नहीं करते हैं।
- सिस्टम उपयोगकर्ता के रूप में कमांड चलाने के लिए psexec का उपयोग करें। PSExec वह है जो मैं उपयोग नहीं करने की कोशिश कर रहा हूं क्योंकि यह अविश्वसनीय साबित हुआ है। मुझे शुद्ध पॉवरशेल समाधान भी चाहिए।
- एक शेड्यूल किए गए कार्य को बनाएं और बताएं कि सिस्टम स्क्रिप्ट के रूप में अपनी स्क्रिप्ट को चलाने के लिए। (टी पोस्ट के माध्यम से ) यह न केवल गन्दा है, बल्कि फिर मेरे पास अद्यतन परिणाम नहीं हैं। मुझे एक फ़ाइल में लॉग इन करना होगा या डेटाबेस या कुछ और अपडेट करना होगा।
मैं एक मेजबान पर अपडेट को चलाने के लिए अन्य तरीकों से खुला हूं क्योंकि ऐसा लगता है कि यह एक मुद्दा है जिसे बहुत से लोग मार रहे हैं।
मुझे कुछ डॉक्स मिले जो संदेश की व्याख्या करते हैं लेकिन कारण या समाधान नहीं।
यदि सफल रहा तो रिटर्न रिटर्न S_OK। अन्यथा, COM या Windows त्रुटि कोड देता है।
This method can also return the following error codes. Return code Description E_INVALIDARGA parameter value is invalid. E_ACCESSDENIED This method cannot be called from a remote computer.
मुझे कैसे पता चलेगा कि मैं दूरस्थ कंप्यूटर पर हूँ?