如何找出用戶帳戶(Local System/User etc)服務被設置爲下(「登錄爲」)運行?查找其帳戶的服務被設置爲「登錄爲」
與此similar question此代碼不能從自身和服務可能沒有運行該服務中運行。
的System.ServiceProcess.ServiceController類有越來越狀態而不是「登錄爲」用戶有用的方法。
如何找出用戶帳戶(Local System/User etc)服務被設置爲下(「登錄爲」)運行?查找其帳戶的服務被設置爲「登錄爲」
與此similar question此代碼不能從自身和服務可能沒有運行該服務中運行。
的System.ServiceProcess.ServiceController類有越來越狀態而不是「登錄爲」用戶有用的方法。
這是我知道的唯一途徑,我發現它環顧四周,測試它,它的工作原理。請確保您使用的服務名稱不是它的顯示名稱,您還需要添加一個引用到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"]));
}
}
如何使用WMI和Win32_Service
類與StartName
參數?
This article可能會有所幫助。
這將做你的工作
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