通过Ansible执行.NET程序时无法连接ServiceController的权限问题求助
通过Ansible执行.NET程序时无法连接ServiceController的权限问题求助
各位好,我现在碰到个棘手的权限问题,想请大家帮忙出出主意:
我正在用Packer搭配Ansible做应用的自动化部署,其中软件安装流程里有个步骤要检查特定Windows服务的运行状态——这部分我们用Selenium做了自动化,为了单独复现服务检查的逻辑,我写了个简单的C#控制台程序,代码如下:
// Connect with ServiceController ServiceController sc = new ServiceController("WAS"); if (sc != null && sc.Status == ServiceControllerStatus.Running) { Console.WriteLine("Service is running"); return 0; } else { Console.WriteLine("Service is not running"); return 1; }
这个程序手动右键以管理员身份运行时完全正常,能准确检测服务状态。可一旦通过Ansible执行,就会抛出权限异常:
Cannot open Service Control Manager on computer '.'. This operation might require other privileges. InnerException: Access is denied.
我用来执行这个程序的Ansible任务大致是这样的(原代码未完整粘贴,核心逻辑如下):
- name: 执行服务检查控制台程序 win_command: C:\path\to\your\check-service.exe # 原提问中任务的其他配置未完整提供
我试着调整过一些基础权限设置,但都没解决问题。想问问大家有没有遇到过类似的情况?或者知道Ansible执行这类需要系统权限的程序时,该怎么配置才能让它拥有足够权限访问Service Control Manager呢?
备注:内容来源于stack exchange,提问作者Maarten Ureel
相关产品推荐
相关产品推荐

