【发布时间】:2016-09-01 13:36:25
【问题描述】:
这是我第一次在这里发帖,也是我第二次编码。因此,为了了解这一切是如何工作的,我尝试查找代码 sn-ps 并复制/粘贴它们,直到我的应用程序似乎可以运行。我以前写过一些批处理和 ps 脚本,但老实说,我更喜欢系统管理和硬件......直到现在!
我的项目是一个简单的 GUI 工具,用于在特定服务器上启动和停止 TeamViewer 服务。我想让它尽可能简单,直到我在同事的计算机上启动该应用程序以向他们展示如何使用它为止,它似乎可以工作。
我收到错误:System.InvalidOperationException: Der Dienst TeamViewer kann nicht auf dem Computer MYSERVERNAME geöffnet werden。 ---> System.ComponentModel.Win32Exception: Zugriff verweigert,这显然与用户权限有关。所以我用谷歌搜索了很长一段时间关于模拟和 WMI 服务凭据的信息,但现在我被困住了,不得不向你们寻求帮助。
这是我的代码:
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void EIN_Click(object sender, EventArgs e)
{
String svcName = "TeamViewer";
String machineName = "MYSERVERNAME";
var sc = new System.ServiceProcess.ServiceController(svcName, machineName);
sc.Start();
sc.WaitForStatus(System.ServiceProcess.ServiceControllerStatus.Running);
}
private void AUS_Click(object sender, EventArgs e)
{
String svcName = "TeamViewer";
String machineName = "MYSERVERNAME";
var sc = new System.ServiceProcess.ServiceController(svcName, machineName);
sc.Stop();
sc.WaitForStatus(System.ServiceProcess.ServiceControllerStatus.Stopped);
}
}
如果有人可以帮助我,我会很高兴!
p.s.:我的 Powershell 脚本工作起来就像一个魅力,但我想让它看起来更复杂:)
Edit1:我尝试停止/启动服务的服务器不是域的成员,但域的每个成员都应该能够停止/启动服务。
【问题讨论】:
-
您是否对远程计算机进行身份验证?如果每个拥有 IP 地址的人都被允许在远程机器上启动和停止服务,那就太糟糕了
-
如果您有一个可以运行的 powershell 脚本,您可以随时启动该脚本并让它运行。
-
您是否尝试以提升的权限运行您的应用程序?
-
请看看这个类似的问题:*.com/questions/34919343/…
-
那么您确定您在远程计算机上的用户权限是正确的,并且您以提升的权限在本地启动了吗?
标签: c#