c# - 远程机器上的 iisreset (C#)

标签 c# iisreset

Process myProcess = new Process();
ProcessStartInfo remoteAdmin =
            new ProcessStartInfo(Environment.GetFolderPath(Environment.SpecialFolder.System) + @"\iisreset.exe /restart");

remoteAdmin.UserName = username;
remoteAdmin.Password = pwd;
remoteAdmin.Domain = domain;
myProcess.StartInfo = remoteAdmin;
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.RedirectStandardOutput = true;

myProcess.Start();   --- ERROR HERE

Can not find the file specified.

但是当我尝试通过 cmd 在本地计算机上运行 iisreset 时,它正在运行。

最佳答案

除非我遗漏了什么,(Environment.GetFolderPath(Environment.SpecialFolder.System) 将取回本地机器(运行代码的地方)特殊文件夹。所以它期待文件 C:\Windows\System\iisreset.exe 位于您的机器上。我能看到的解决此问题的唯一方法是删除 C:\ 并取而代之添加设备名称 \\DeviceName\C$\,然后添加文件路径。这是假设特殊文件夹系统位于您的计算机和远程计算机上的同一位置。

获取远程机器系统目录的唯一其他方法是通过 WMI 或通过读取 reg 条目获取它。

所以如果使用 WMI:

"SELECT * FROM Win32_OperatingSystem"

完成后,您需要自己从中构建文件夹字符串。

关于c# - 远程机器上的 iisreset (C#),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6675255/

相关文章:

c# - EPPlus 克隆工作表

c# - 网格列中的控件不考虑列的大小

c# - 如何在 C# 中使用逗号和连词本地化或字符串格式化单词列表?

Windows 10 上的 iisreset 错误

azure - Windows Azure 上的 Web 角色和 iisreset 副作用

c# - 如何验证我的 C# 代码在管理员模式下运行 IISRESET 命令

c# - 在验证方法中使用 .xsd 文件

c# - 复制列表值