从我的MVC4页面,我需要调用Powershell脚本。我真的不需要从中返回任何结果,只需确保脚本运行。
当我在计算机中调试时,它工作正常,但是当我在发布后尝试时,它只是没有做任何事情或显示任何错误。
这是我的控制器中的代码:
using (new Impersonator(ConfigurationManager.AppSettings["ImpersonatorUser"],
ConfigurationManager.AppSettings["ImpersonatorDomain"],
ConfigurationManager.AppSettings["ImpersonatorPassword"]))
{
var scr = new PSScriptParam("\\\\SERVER\\...\\Script.ps1", Param);
scr.Run();
}
PSScriptParam类就是这样:
public class PSScriptParam
{
public string Script { get; set; }
public string Param { get; set; }
public PSScriptParam(string Path, string param)
{
Param = param;
Script = Path;
}
public void Run()
{
try
{
Process _Proc = Process.Start("Powershell.exe", Script + " '" + Param + "'");
}
catch (Exception err)
{
System.IO.File.WriteAllText("\\\\SERVER\\...\\Error.txt", err.Message.ToString());
}
}
}
模仿者正在使用域管理员帐户,并且执行策略在服务器中设置为不受限制(从cmd运行脚本没有问题)。
有人可以帮忙吗?
提前致谢!
答案 0 :(得分:0)
在服务器中应用挂起的更新后,此问题已得到解决...即使我不确定它为什么不起作用,更新Windows也解决了问题。