我从来没有真正找到答案,除了你不能这样做(用runas)。
这是什么','是,在不同的AD帐户下的远程计算机上以编程方式,停止,删除,创建和启动Windows服务。我们使用受信任的帐户而不是我们的个人用户帐户来访问服务器(个人用户帐户无法访问)。
我没有远程进入服务器并运行安装程序,也没有在命令行上手动输入命令,而是希望以编程方式从我本地计算机上运行的应用程序(我已登录)中完成此操作,而无需输入密码。
要点:
从Windows 10本地系统执行Windows服务停止,删除,创建和启动远程系统(Windows Server 2012 R2)。
可信帐户(非个人登录)在服务器上具有此类权限(远程登录除外)。
安装程序应用程序可以在启动时通过登录表单访问受信任的帐户密码。
希望以编程方式在C#中执行此操作,或者在没有用户交互的情况下生成进程或命令行(例如手动输入密码)。
如果我想手动输入密码,Runas工作正常(使用/ netonly选项)(更新意味着我每次都要输入密码来停止,删除,创建和启动)。
否则,重定向,管道或插入stdin会因runas失败 - 即使在命令行上(假设它以某种方式绕过stdin。
我也尝试过PsExec,但这可以通过远程登录工作,这是此受信任帐户所不具备的权限。到目前为止,我没有看到runas / netonly的PsExec等效参数。
我玩过模拟和调用sc,但这也不起作用(不,sc没有密码命令行参数)。我愿意使用Win32 / pinvoke,但我希望我没有。
任何想法都非常感激。