我在visual studio 2005中创建一个.net窗口应用程序,其中我需要修改Windows服务的登录凭证。 请参阅Services.msc - >右键单击任何服务 - >属性 - >登录选项卡。 我需要知道是否有.net 2.0中的任何API /类可用于调用此登录选项卡窗口? 我想在我的Windows应用程序中调用此屏幕,以便我可以对用户凭证执行修改。 需要援助,因为我是.net的新手。使用.net 2.0修改windows服务(services.msc)的登录凭证
感谢
我在visual studio 2005中创建一个.net窗口应用程序,其中我需要修改Windows服务的登录凭证。 请参阅Services.msc - >右键单击任何服务 - >属性 - >登录选项卡。 我需要知道是否有.net 2.0中的任何API /类可用于调用此登录选项卡窗口? 我想在我的Windows应用程序中调用此屏幕,以便我可以对用户凭证执行修改。 需要援助,因为我是.net的新手。使用.net 2.0修改windows服务(services.msc)的登录凭证
感谢
我已经在过去使用WMI's Change:
public uint ChangeLogonAccount(string serviceName, string user, string pw)
{
// Service name is not the same as the display name. For example, world wide web publishing service's service name would be "w3svc"
string objPath = string.Format("Win32_Service.Name='{0}'", serviceName);
using (ManagementObject mo= new ManagementObject(new ManagementPath(objPath))
{
object[] wmiParams = new object[8]; // WMI_SERVICE_PROPERTY.StartPassword is index 7 so we need an object array of at least length 8
wmiParams[(int) WMI_SERVICE_PROPERTY.StartName] = user;
wmiParams[(int) WMI_SERVICE_PROPERTY.StartPassword] = pw;
return (uint) mo.InvokeMethod("Change", wmiParams);
}
}
的WMI_SERVICE_PROPERTY枚举在我的例子中使用:
public enum WMI_SERVICE_PROPERTY
{
DisplayName = 0,
PathName,
ServiceType,
ErrorControl,
StartMode,
DesktopInteract,
StartName,
StartPassword,
LoadOrderGroup,
LoadOrderGroupDependencies,
ServiceDependencies
}
i'已经使用代码来更改登录凭据,但凭据似乎不会更新。任何建议如何去改变用户名和密码? – subee 2014-11-05 09:37:46
string objPath = string.Format(“Win32_Service.Name ='{0}'”,“CryptSvc”); using(ManagementObject mo = new ManagementObject(new ManagementPath(objPath))) object [] wmiParams = new object [8]; wmiParams [(int)WMI_SERVICE_PROPERTY.StartName] =“管理员”; wmiParams [(int)WMI_SERVICE_PROPERTY.StartPassword] =“#welcome123”; uint ret =(uint)mo.InvokeMethod(“Change”,wmiParams); \t} – subee 2014-11-05 09:38:09
此代码现在正在做的唯一事情是显示返回值 – subee 2014-11-05 09:40:01
AFAIK托管C#ServiceController
API不允许密码维护。本地API是ChangeServiceConfig
,这是你应该在你的应用中使用的。显示您自己的服务配置对话框。现在
,如果要专门使用Microsoft管理控制台(亦称MMC)操纵服务(SERVICES.MSC不过是具体配置MMC的),那么你必须使用MMC automation objects模型。作为COM自动化,完全由C#通过COM interop支持。
道歉的版本应该是2.0,在.NET Windows应用程序我创建东东ds将在2005年视觉工作室创建,因此这一限制。 – subee 2014-10-30 17:20:58
已编辑! :) – subee 2014-10-31 06:01:26
你还有1.1标签,我更新了它。 – 2014-10-31 06:05:14