C# 运行方式管理(来自批处理脚本/cmd)工作不正常

C# 运行方式管理(来自批处理脚本/cmd)工作不正常,c#,sharepoint,batch-file,cmd,C#,Sharepoint,Batch File,Cmd,我正在尝试获取一个批处理脚本来运行我的程序的静默安装。下面是引起麻烦的线路: runas /user:domain\admin /savecred start "" "%temp%\MyProgram - 4.6.0.0\Setup.exe" /silent >> %userprofile%\Desktop\BatchLog.txt 请注意: ”在文件位置出现之前,以避免在Setup.exe的位置出现空格问题 /silent是传递到Setup.exe的参数,用于运行静默安装 >%

我正在尝试获取一个批处理脚本来运行我的程序的静默安装。下面是引起麻烦的线路:

runas /user:domain\admin /savecred start "" "%temp%\MyProgram - 4.6.0.0\Setup.exe" /silent >> %userprofile%\Desktop\BatchLog.txt
请注意:

  • 在文件位置出现之前,以避免在
    Setup.exe的位置出现空格问题
  • /silent
    是传递到
    Setup.exe的参数,用于运行静默安装
  • >%userprofile%\Desktop\BatchLog.txt
    通过管道将输出传输到日志文件
当作为批处理脚本的一部分运行时,
Setup.exe
不会作为
domain\admin
运行。对于熟悉SharePoint的人来说,
SPFarm.Local
抛出了一个
null ref
(它是用C#编写的),表示运行中的用户没有DB访问权限。你能发现我在这里使用的
runas
有什么错误吗

从命令行运行该行只需调出
runas
帮助屏幕。我也想知道为什么会这样

如果我只是手动运行(双击)
Setup.exe
(以
domain\admin
的身份登录),我不会得到
null ref
,这表明我的程序以
domain\admin
的身份正常运行


如何修复这一行以
domain\admin
的身份执行我的程序?

我认为整个命令需要加引号,因为runas只需要一个“program”参数。另外,start命令似乎与runas不兼容。试试这个:

runas /user:domain\admin /savecred "\"%temp%\MyProgram - 4.6.0.0\Setup.exe\" /silent >> \"%userprofile%\Desktop\BatchLog.txt\""

认为整个命令需要加引号,因为runas只接受1个“program”参数。另外,start命令似乎与runas不兼容。试试这个:

runas /user:domain\admin /savecred "\"%temp%\MyProgram - 4.6.0.0\Setup.exe\" /silent >> \"%userprofile%\Desktop\BatchLog.txt\""

认为整个命令需要加引号,因为runas只接受1个“program”参数。另外,start命令似乎与runas不兼容。尝试以下操作:runas/user:domain\admin/savecred“\%temp%\MyProgram-4.6.0.0\Setup.exe\”/silent>\%userprofile%\Desktop\BatchLog.txt\”@Egg我将尝试该语法并返回给您。@Egg忽略silent参数。@Egg Nevermind,这是安装程序的问题,不是命令的问题。谢谢。@Egg如果您想添加它作为答案,我将接受它。我认为整个命令需要加引号,因为runas只需要1个“program”参数。另外,start命令似乎与runas不兼容。尝试以下操作:runas/user:domain\admin/savecred“\%temp%\MyProgram-4.6.0.0\Setup.exe\”/silent>\%userprofile%\Desktop\BatchLog.txt\”@Egg我将尝试该语法并返回给您。@Egg忽略silent参数。@Egg Nevermind,这是安装程序的问题,不是命令的问题。谢谢。@Egg如果你想补充这一点作为回答,我会接受的。