2009-10-27 7 views
7

उपयोगकर्ता खाता (Local System/User etc) कैसे पता लगाएं ("लॉग ऑन एज़") के अंतर्गत चलाने के लिए सेट किया गया है?पता लगाएं कि कौन सा खाता "लॉग ऑन एज़" पर सेट है

इस similar question के विपरीत यह कोड सेवा के भीतर से नहीं चलाया जा सकता है और सेवा नहीं चल रही है।

System.ServiceProcess.ServiceController कक्षा में स्थिति प्राप्त करने के लिए उपयोगी तरीके हैं लेकिन "लॉग ऑन एज़" उपयोगकर्ता नहीं हैं।

उत्तर

13

यह एकमात्र तरीका है जिसे मैं जानता हूं, मैंने पाया कि यह चारों ओर देख रहा है और इसका परीक्षण किया गया है, यह काम करता है। सुनिश्चित करें कि आप सेवा नाम का उपयोग नहीं यह प्रदर्शन नाम, आप भी के लिए एक संदर्भ जोड़ने के लिए System.Management

string serviceName = "aspnet_state"; 

SelectQuery query = new System.Management.SelectQuery(string.Format(
    "select name, startname from Win32_Service where name = '{0}'", serviceName)); 
using (ManagementObjectSearcher searcher = 
    new System.Management.ManagementObjectSearcher(query)) 
{ 
    foreach (ManagementObject service in searcher.Get()) 
    { 
     Console.WriteLine(string.Format(
      "Name: {0} - Logon : {1} ", service["Name"], service["startname"])); 
    } 
} 
2

StartName पैरामीटर के साथ WMI और Win32_Service कक्षा का उपयोग करने के बारे में कैसे?

This article मदद कर सकता है।

0

यह आपके काम करने की आवश्यकता होगी है

Get-WMIObject Win32_Service | Where-Object {$_.startname -ne "localSystem" }| Where-Object {$_.startname -ne "NT AUTHORITY\LocalService" } |Where-Object {$_.startname -ne "NT AUTHORITY\NetworkService" } |select startname, name 
संबंधित मुद्दे