Questions tagged «windows-service»

Windows服务,也称为NT服务,是服务控制管理器根据服务设置运行的后台服务进程,可以根据需要重新启动。Windows服务还可以根据其他服务依赖项按需启动。

5
安装服务后如何添加对Windows服务的依赖关系
我有一个利用SQL Server数据库的Windows服务。我无法控制该服务的安装,但想添加对该服务的依赖关系,以确保它在SQL Server启动后启动。(SQL Server与相关服务在同一台计算机上运行) 是否存在添加依赖项或可能直接编辑注册表的工具?

4
如何将服务的启动/停止/重新启动权限授予非域成员服务器上的任意用户或组?
我们在服务器上运行着一套Windows服务,它们相互独立执行一堆自动化任务,但一个服务负责其他服务。 如果其中一项服务无法响应或挂起,则该服务将尝试重新启动服务,如果在尝试过程中引发异常,则将电子邮件发送给支持团队,以便他们可以自己重新启动服务。 经过一些研究,我遇到了一些“解决方案”,从KB907460中提到的解决方法到提供服务运行管理员权限的帐户。 我对这两种方法都不满意-我不了解Microsoft知识库文章中概述的第一种方法的后果,但我绝对不希望授予管理员访问运行该服务的帐户的权限。 我快速浏览了“本地安全策略”,除了定义帐户是否可以作为服务登录的策略之外,我看不到其他任何类似于服务的内容。 我们正在Server 2003和Server 2008上运行此程序,因此任何想法或指针都将受到欢迎! 澄清:我不想授予给定用户或组启动/停止/重新启动所有服务的功能-我希望授予给定用户或组仅对特定服务的执行权限。 进一步说明:我需要授予这些权限的服务器不属于域-它们是两个面向Internet的服务器,它们接收文件,对其进行处理并将它们发送给第三方,以及为几个网站提供服务,因此Active Directory组策略是不可能的。抱歉,我没有说清楚。






1
Windows服务触发器启动-手动还是自动差异?
自Windows Server 2008 R2(我认为适用于客户端操作系统是Windows 7)以来trigger start,Microsoft引入了服务。我不明白之间的差别automatic,automatic (delayed)并manual启动类型。根据我在Google文章上阅读的内容,我相信我确实了解trigger start(尽管从未使用过)逻辑。 我真的不知道我的理解将是配置为服务的差异automatic (trigger start)和manual (trigger start)我没有运气找到做任何解释。 我在某种程度上认为,在这两种情况下,除非触发器将启动服务,否则服务都不会运行,那么实际上会有什么不同? 我遇到此问题的原因实际上是监视自动启动类型的服务。由于将服务设置为以触发器启动,并且触发器无效,因此服务未在运行并且监视以这种方式报告,即自动服务未在运行。 总结一下-我的问题是: automatic (trigger start)和manual (trigger start)服务有什么区别? 如果将服务从切换到automatic (trigger start),manual (trigger start)是否会对服务/应用程序产生一般性的影响?

6
如何为本地系统配置代理设置?
如果通过“控制面板”编辑“代理服务器设置”,则设置存储在HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Internet Settings\ProxyEnable和中...\ProxyServer。当在下作为服务运行时,当然不使用这些设置LOCAL SYSTEM。 因此,我尝试在(以及系统上的所有其他用户)下进行设置ProxyEnable和设置,但这不起作用。ProxyServerHKEY_USERS\S-1-5-18\...HKEY_USERS\.DEFAULT\... 如何为LOCAL SYSTEM用户设置代理设置?

10
如何创建在Windows 2008 Server上运行.bat文件的服务?
我已经使用创建了服务 sc create myService binpath=myservice.bat 但是,当我启动它时,它失败并显示以下错误消息: [SC] StartService FAILED 1053: The service did not respond to the start or control request in a timely fashion. 在Win2k3上,我使用了资源工具包中的srvany.exe,但是没有用于win2k8的资源工具包。目前,我已经在计算机上安装了srvany.exe,但我认为这不是最好的方法。 谢谢!

2
如何以编程方式导致创建新的Windows用户的个人资料?
我正在为Windows服务创建(本地)用户运行。我有充分的理由不想使用网络服务,本地服务或本地系统。 我通过创建用户net user foobar "Abcd123!" /add-效果很好。 此时,c:\users\foobar尚不存在。 如果我创建了用户的主目录,则在用户登录(或更确切地说,是针对用户的服务)或启动用户要使用的服务之前,Windows会创建一个名为“邻家用户配置文件”的邻家服务器c:\users\foobar-{gibberish/SID/whatever}-这不是可预测的名称。 我需要用户的主目录包含诸如.ssh目录之类的东西,.gitconfig-这样的工具(不限于那些工具),这些工具假设它将是一个使用它们的人,因此用户配置应包含在内~/...。通常,工具来自Unix。 实际问题 那么-是否存在一种编程方式(最好是PowerShell或现成的命令行)来告诉Windows为本地用户创建用户配置文件? 或者,还有其他解决方法吗? 我尚未尝试的事情: 一个NSSM启动/预挂钩,通过Windows启动该服务,创建用户配置文件,然后将控制权交给运行该挂钩的NSSM包装程序,从而在启动之前将文件从其他位置复制到当前希望存在的用户配置文件目录中。 将服务的USERPROFILE环境变量设置为实际用户配置文件目录之外的其他位置。这使我觉得是危险的越野滑雪,但也可以正常工作。 其他背景: Windows Server 2016,桌面体验。 不能使用Core / Nano。 没有正在使用的活动目录。不会的。 这些是本地用户。 我正在通过Ansible进行此操作,后者在Windows的后台使用PowerShell。特别是带有Ansible 2.7.5 的win_user模块。 我不想创建一个C:\users\default(等效于/etc/skel),因为有几个不同的服务用户,并且一个大小无法容纳所有用户。这也不会影响用户配置文件的创建时间,只会影响创建时的内容。 我正在使用NSSM来管理服务。 我尝试过的事情 启动服务并允许Windows创建目录 我不想这样做,因为该服务在启动之前需要秘密,因此,如果我在图像烘焙过程中执行此操作,则需要清理它们,并确保我的服务不起作用烘烤阶段的任何工作。我想避免这两个小问题。

6
如何在Windows上使用某些启动参数启动服务
如何使用某些参数启动服务?在另一个问题中,我发现 净启动服务名称等等 但是,如果我尝试这样做,则会向我net抛出语法错误。 我究竟做错了什么? 编辑:澄清net start servicename工作正常,但我需要将参数传递给服务。我可以services.msc通过在启动服务之前填写启动参数来手动执行此操作。但是如何从脚本执行此操作? 另一个编辑:对不起,但我的问题有误导性。在我的测试中,我有更多的参数,而不是/blah net start抱怨。实际上,任何以斜杠开头的东西都可以。所以net start servicename /blah作品,net start servicename blah不能正常工作。既然我需要net start servicename /foo bar,bar那就是问题所在。

1
如何在Windows Server启动时将SSH密钥添加到PuTTY代理?
每次Windows服务器启动时-我需要在用户交互式登录之前,将私有SSH密钥添加到Putty Agent(pagent.exe)。密钥将由服务使用。 如果是需要使用密钥的普通用户,我将在“启动”文件夹中放置一个快捷方式,但是,这在服务器上不起作用,因为没有用户登录。 我在Windows Server 2008和Windows Server 2003上都需要此功能。 我认为这肯定是一个非常普遍的用例,因为使用SSH和SFTP进行公钥身份验证变得越来越普遍。

2
使用sc.exe创建服务时出现问题
我有以下命令来创建服务: sc create svnserve binpath="\"C:\Program Files (x86)\Subversion\bin\svnserve.exe\" --service --root C:\SVNRoot" displayname="Subversion" depend=tcpip start=auto obj="NT AUTHORITY\LocalService" 不幸的是,即使语法正确,它似乎也不起作用。当我运行它时,我得到用法说明(我想这是一种告诉我我提供了不正确参数的方法,尽管我不知道我可能提供了什么不正确的参数)。 谁能帮我摆脱困境?谢谢!

4
如何在不使用sc qc的情况下获取Windows服务可执行文件的路径?
我需要通过命令提示符在Windows服务中查询其可执行文件的路径。我想我的方式会做到这一点是:sc qc myServiceName,但是当我这样做,我得到以下错误: [SC] QueryServiceConfig失败122: 传递给系统调用的数据区域太小。 [SC] GetServiceConfig需要1094字节 我认为这意味着sc命令正在将数据结构发送到某个其他库,该库对于需要返回的数据而言太小了。SC并没有很好地重试使用更大的数据结构(1094字节),而是轰炸了一下,并给了我这个难看的错误消息。感谢Micro $ oft。 那么有没有办法解决此错误?我只需要可执行文件的路径,但是如果需要,它将从其他文本中解析出来。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.