मुझे प्रोग्रामिंग के लिए विंडोज सेवा के लिए लॉगऑन उपयोगकर्ता को बदलने की जरूरत है। और मैं निम्नलिखित कोड का उपयोग कर रहा है कि क्या करने के लिए:विंडोज सेवा उपयोगकर्ता को प्रोग्रामेटिक रूप से बदलें
string objPath = string.Format("Win32_Service.Name='{0}'", ServiceName);
using (ManagementObject service = new ManagementObject(new ManagementPath(objPath)))
{
object[] wmiParams = new object[11];
if (PredefinedAccount)
{
wmiParams[6] = "LocalSystem";
wmiParams[7] = "";
}
else
{
wmiParams[6] = ServiceUsername; // provided by user
wmiParams[7] = ServicePassword; // provided by user
}
object invokeResult = service.InvokeMethod("Change", wmiParams);
// handle invokeResult - no error up to this point
}
इस कोड स्थितियों के 90% में काम करता है, लेकिन कुछ स्थितियों में विफलता लॉगऑन की वजह से शुरू नहीं किया जा सकता। आम तौर पर InvokeMetod पर कोई त्रुटि है, लेकिन जब हम सेवा हम निम्न त्रुटि प्राप्त प्रारंभ करने का प्रयास:
System.InvalidOperationException: Cannot start service X on computer '.'. --> System.ComponentModel.Win32Exception: The service did not start due to a logon failure.
वैकल्पिक हल समाधान सरल है, हम बस हल किया जाता है विंडोज इंटरफेस और समस्या के माध्यम से एक ही क्रेडेंशियल दर्ज करने की जरूरत है।
तो मेरा सवाल यह है कि, क्या किसी ने प्रबंधनऑब्जेक्ट के साथ ऐसी ही समस्या का अनुभव किया है क्योंकि ऐसा लगता है कि कुछ स्थितियों में यह विंडोज सेवा के लिए उपयोगकर्ता नाम और पासवर्ड से संबंधित नहीं है?
मुझे आश्चर्य है कि अगर यह होता है अपने कथन का उपयोग की वजह से। मेरा मतलब यह है कि प्रबंधन ऑब्जेक्ट को पूरा करने की अनुमति देने से पहले नष्ट हो रहा है? मैं डब्लूएमआई से ज्यादा परिचित नहीं हूं, इसलिए मुझे यकीन नहीं है। – HVS
चूंकि उपयोगकर्ता नाम और पासवर्ड उपयोगकर्ता दर्ज किया गया है, इसलिए मैं समस्याओं के लिए भी वहां देखता हूं। सुनिश्चित करें कि वे वैध नाम हैं। "DOMAIN \ username" किसी भी सिस्टम में अच्छा है, लेकिन 'उपयोगकर्ता नाम @ DOMAIN' विंडोज 2000 और इससे पहले काम नहीं करता है। – HVS
हमें एक ही समस्या है और मुझे पूरा यकीन है कि सेवा सी #, .NET 1.1 स्थापना प्रोग्राम के साथ स्थापित की गई थी। मैं कमांड लाइन ('नेट स्टार्ट') से सेवा शुरू करता हूं और लॉगऑन विफलता प्राप्त करता हूं। आश्चर्यजनक रूप से यह मशीन पर स्थापित 7 में से 2 सेवाओं के साथ होता है (संभवतः एक ही स्थापना कोड का उपयोग कर)। मुझे अभी तक इसका निदान करने के लिए चारों ओर नहीं मिला है लेकिन मशीन नवीनतम सर्विस पैक के साथ विंडोज 2003 सर्वर है। सेवाएं सी # नेट 2.0 कोड हैं। पासवर्ड टाइप करना मैन्युअल रूप से रीबूट होने तक इसे ठीक करता है। – LegendLength