Articles of windows services

使用自定义名称安装Windows服务

我有一个Windows服务的exe文件。 要安装它,我使用命令: installutil myService.exe / ShowCallStack 然后,我可以看到服务窗口中列出的“service1”。 我的问题是,如果有可能安装2个相同的服务(使用相同的exe),但具有不同的名称的实例。 我想在不改变源代码的情况下做到这一点。 谢谢

在Windows服务中模拟用户

我正在尝试模拟一个Windows服务中的域用户,服务以本地系统帐户login。 到目前为止,我只能通过logging服务并使用用户凭证来设置进程来实现这个function,如下所示。 ProcessStartInfo startInfo = new ProcessStartInfo(); startInfo.FileName = CommandDetails.Command; startInfo.WorkingDirectory = Settings.RoboCopyWorkingDirectory; startInfo.Arguments = commandLine; startInfo.UseShellExecute = false; startInfo.CreateNoWindow = true; startInfo.RedirectStandardError = true; startInfo.RedirectStandardOutput = true; // Credentials startInfo.Domain = ImperDomain; startInfo.UserName = ImperUsername; startInfo.Password = ImperPasswordSecure; process = Process.Start(startInfo); 我的目标是没有服务login域用户,而是作为本地系统,因为域帐户密码得到重置。 当我使用本地系统时,我得到的访问被拒绝 任何想法如何做到这一点? StackTace Access is denied at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo) at System.Diagnostics.Process.Start() at […]

在Windows 2008上将myprogram.exe作为服务运行时遇到问题

MyProgram.exe是听从pipe道的请求,并使用命令提示符其工作完美,但我试图通过使用Windows服务,但不成功我已经尝试了以下步骤在Windows Server 2008企业: > sc create MyService binPath= "C:\test\MyProgram.exe" DisplayName= "MyProgramService" >[SC] CreateService SUCCESS >sc start MyService [SC] StartService FAILED 1053: The service did not respond to the start or control request in a timely fashion. 参考 所以我读了一个博客,我们需要创build相同的registry项,然后我尝试了以下步骤 我发现我的新创build的服务:HKEY_LOCAL_MACHINE \ SYSTEM \ ControlSet001 \ Services \ MyService 从registry中的菜单中单击名为MyService的键(它看起来像一个文件夹)。 select“编辑”和“新build”,然后select“键”,这将创build一个新的键,您应该命名为“参数”。接下来,右键单击刚刚命名为“参数”的键,然后select“新build”然后是“string值”。将值命名为“应用程序”。双击string值,popup一个框。 在“数值数据”下的框中,您需要将完整的path放到Dropbox。 在我的情况下,path是:C:\ test \ MyProgram.exe \ […]

Windows服务如何以标准间隔启动应用程序?

顾问build立一个Windows服务来运行一个应用程序。 应用程序应该每15分钟运行一次。 应用程序没有运行,服务似乎运行良好。 我不熟悉应用程序作为服务运行时如何运行一个标准间隔。 该服务使用SRVANY.EXE工具。

当服务已经在使用Windows批处理脚本运行时,Windows服务无法启动

我正在写一个Windows批处理脚本,将安装服务。 如果它已经运行,那么我正在停止并删除服务,然后再次安装服务。 我正面临一个奇特的行为。 当服务已经运行,并且当我正在运行下面的batch file时,该服务再次被安装,但它无法启动。 当我重新启动系统,并启动服务,它开始。 如何解决此启动服务问题,而无需重新启动计算机。 我还join了taskkill / f / PID来杀死进程libertyserver.exe。 这是我的代码:test.bat。 我从命令行运行test.bat。 test.bat的: @echo off setlocal @echo off set JAVA_SERVICE_EXE=libertyserver.exe … …. set SERVICE_DISPLAY_NAME="%LIBERTY_SERVICE_NAME%" set SERVICE_DESCRIPTION="%LIBERTY_SERVICE_NAME%" echo Stopping and Deleting existing services for /F "tokens=3 delims=: " %%H in ('sc query %SERVICE_NAME% ^| findstr "STATE" ') do ( if /I "%%H" EQU "RUNNING" […]

设置Visual Studio的“附加到进程”对话框中显示“标题”值?

当您在Visual Studio中select“debugging/附加到进程”时,显示的对话框中有一个“标题”列。 默认情况下,这显示属于进程的主窗口的标题。 例如,它可能会显示“这是一个黑暗和暴风雨的夜晚 – 记事本”。 我怎样才能为没有主窗口的应用程序(例如Windows服务)设置这个字段? 我有多个服务运行相同的可执行文件名称,我想在附加时能够轻松地区分它们。

安装依赖的Windows服务

我的安装程序不支持安装服务,但我可以运行一个程序/命令行等,所以我的问题是如何安装Windows服务,并添加2依赖使用命令行? 该程序是一个.Net 2.0应用程序。 谢谢

命名pipe道名称是否有反斜杠?

根据MSDN , [pipe道名称]必须具有以下forms: \\.\pipe\pipename 名称的pipe道名部分可以包含除反斜杠以外的任何字符,包括数字和特殊字符。 整个pipe道名称string最多可以有256个字符。 pipe道名称不区分大小写。 但有很多例子,我已经看到命名pipe道名称与反斜杠在其中。 例如,SQL Server的标准pipe道名称是\\.\pipe\sql\query 。 从SysInternals运行PipeList显示我的机器上的名字包含一个反斜杠的pipe道很多。 那么,pipe道名称是否可以带有反斜杠呢? 我问,因为我正在用几个这样的名字创build一个服务: \\.\pipe\MyApp \\.\pipe\MyApp\0 \\.\pipe\MyApp\1 \\.\pipe\MyApp\2 在创build第一个pipe道之后,创build其他pipe道将失败,并显示Windows错误123(ERROR_INVALID_NAME)。 如果我跳过创build第一个pipe道,所有其他的,在名称中的反斜杠字符,将工作得很好。 看起来,pipe道是像文件系统一样的层次结构,如果你有一个具有特定名称的pipe道,那么这个名称就不能再用作其他pipe道的“文件夹”或容器。 当试图弄清楚这一点,我遇到了MSDN文章,现在质疑我是否应该使用反斜杠。 有什么build议?

计划的控制台应用程序与Windows服务? 什么时候适用每个?

我刚刚读到: 作为Windows服务开发应用程序有什么好处? 但我仍然不确定何时使用Windows服务。 我有几个任务需要间隔运行(即每隔5分钟)。 我应该使用哪种types的项目? 是否有任何应该是Windows服务的应用程序的例子? 谢谢, 凯尔

防止在Windows上阻止非交互式进程中的对话框/消息框/挂起GUI?

我们正在Windows上用Visual Studio 2005开发C ++应用程序(大量的MFC)。 有时候会发生我们每晚的构build和/或unit testing挂起,因为某些应用程序或帮助程序工具的某些部分打开一个消息框在一个由构build命中的angular落案例。 由于自动化的东西运行(通过Windows服务)没有附加任何桌面会话,显然没有人可以确认,甚至读取GUI消息。 有没有办法让Windows阻止应用程序打开对话框? 或者,也许是一个工具,观看服务会话自动杀死任何应用程序,打开一个对话框? 我在想,大多数情况下,应用程序显示意外的popup消息,它将最终从user32.dll调用其中一个MessageBox*函数,它可能只是“神奇地”可能有这些function失败的某个login会话? (只是一个疯狂的想法。) 显然,“正确的”解决方法是让东西不打开任何对话框,但是使用第三方工具并不总是可能的,使用我们的工具,如果有一个失败的unit testing会告诉我testing“非法”打开消息框比有挂unit testing。 (边注:我们使用Boost.Test进行unit testing,FinalBuilder使用我们的自动构build脚本。) 注意:删除了原始标签[连续集成构build – 自动化自动化testing]并将问题改为更加以stream程为中心。