我有一个批处理文件,我一直用来安装我的C#Windows服务一段时间,直到Windows 7才出现问题。我试图以管理员权限运行批处理文件。我试图使用admin privs运行命令提示符,导航到Windows服务EXE并在那里运行InstallUtil。仍然无效。
在阅读了其他一些建议之后,我尝试将我的文件从/ bin文件夹中移出并从其他位置运行它们,但这也没有用。
批处理文件如下所示
@ECHO OFF
REM The following directory is for .NET 2.0
set DOTNETFX2=%SystemRoot%\Microsoft.NET\Framework\v2.0.50727
set PATH=%PATH%;%DOTNETFX2%
echo Installing IEPPAMS Win Service...
echo ---------------------------------------------------
InstallUtil /i IEPPAMS_WinService1.exe
echo ---------------------------------------------------
echo Done.
我有一个安装日志文件,我将信息转储到。如果我只是双击.bat文件我得到
运行事务安装。
开始安装阶段 安装。看到的内容 日志文件 C:\ Users \用户贾斯汀\桌面\服务 测试\ IEPPAMS_WinService1.exe 大会的进展。该文件是 位于 C:\ Users \用户贾斯汀\桌面\服务 测试\ IEPPAMS_WinService1.InstallLog。
期间发生了异常 安装阶段。 System.InvalidOperationException: 无法打开服务控制管理器 电脑 '。'。这个操作可能会 需要其他特权。内心的 例外 System.ComponentModel.Win32Exception 被抛出以下错误 消息:访问被拒绝。
安装的回滚阶段 正在开始。看到的内容 日志文件 C:\ Users \用户贾斯汀\桌面\服务 测试\ IEPPAMS_WinService1.exe 大会的进展。该文件是 位于 C:\ Users \用户贾斯汀\桌面\服务 测试\ IEPPAMS_WinService1.InstallLog。
回滚阶段已完成 成功。
已完成交易安装。
当我使用admin权限运行.bat文件时,没有任何内容写入日志文件,并且仍然没有安装该服务。
有什么想法?有没有新的方法在Windows 7中安装服务?
答案 0 :(得分:11)
右键单击批处理文件并以管理员身份运行。
您最有可能与Windows Vista和Windows 7中的新安全模型(用户帐户控制)发生争执。即使您作为具有管理员权限的帐户运行,您仍需要提升以执行某些操作(大多数情况下) )行政活动。 (是的,可以禁用此功能,但不能)
编辑... 正确的命令行是InstallUtil YourApp.exe
。 /i
看起来不是InstallUtil
的虚拟开关。
答案 1 :(得分:8)
所以我能够通过在命令行中输入InstallUtil的整个路径来解决问题,并且它能够正常工作。因此,在导航到具有我的EXE的文件夹后,我输入了以下内容:
C:\的Windows \ Microsoft.NET \框架\ v4.0.21006 \ installutil.exe IEPPAMS_WinService1.exe
不知道为什么我现在必须在Windows 7中这样做,因为我从来不需要在XP中,但是哦。感谢您的所有建议!
答案 2 :(得分:3)
当我以管理员权限运行.bat文件时,没有任何内容写入日志文件,但仍未安装该服务。
首先,您必须以管理员权限运行。
其次,当你“以管理员身份运行”时,它实际上将目录更改为c:\ windows \ system32作为初始目录(不知道为什么),这可能解释为什么以管理员身份运行不会导致日志文件。手动更改为IEPPAMS_WinService1.exe所在的路径,即脚本的开头。