Articles of windows service

必须保持活动的应用程序

我需要一种方法来强制我的应用程序(名为看门狗)保持有效,即使我故意closures它。 此应用程序同时检查其他两个应用程序(辅助控制和数据传输)的活动。 当这两个应用程序中的任何一个closures时,看门狗就可以再次使其运行。 但是当看门狗停下来的时候,再也没有人操作了。 我怎样才能做到这一点? 有没有一个窗口服务,可以应付这个使命? 感谢您的帮助! 谢谢大家! 经过大量的试验和错误,我终于可以让我的看门狗应用程序持续控制'Assistance Control'和'Data Transfer'窗口应用程序的运行。 实际上,有两个Windows应用程序由第三个Windows应用程序控制是没有意义的,主要是因为它们本身的性质 – 它们确实存在以提供交互,所以任何人都可以随时停止看门狗。 这是自然的方式。 考虑到西蒙的build议,我决定把控制权发展到一个新的水平,现在把我的看门狗作为一个Windows服务来发展。 我知道这可能不是最好的方式,因为服务本身与基于GUI的应用程序进行通信,而不是build议。 我设置了我的看门狗服务,以允许桌面交互,现在没有什么阻止它继续活着,除非,当然,平均用户停止服务。 如果有人需要这样的持续控制,我认为这可能是一个明确的和明确的解决scheme。

允许服务与桌面进行交互

DC操作系统 – Windows Server 2008 R2标准 客户端操作系统 – Windows XP,Windows 7 我通过networking策略服务器实施了安全策略,并自动启用了有线自动configuration服务。 在启用有线自动configuration服务的同时,如果选中“允许服务与桌面交互”标记,则可以在某些Window7笔记本电脑中正常工作。 但在互联网上,它给我的警告“交互式服务可以显示用户界面并接收用户input,如果您允许服务与桌面交互,那么桌面上显示的任何信息也将显示在交互式用户桌面, 恶意用户就可以控制这个服务,或者从交互桌面上进行攻击。 你能给我举一些例子吗?恶意用户如何控制服务或从交互式桌面攻击它?

我如何授予用户安装Windows服务的能力?

我希望能够让开发团队在Win2003服务器上安装服务。 他们已经可以通过RDP / FTP连接到有限的帐户,但我希望能够授予安装权限。 我怎么做,而不授予pipe理员权限? (这些服务是使用.NET框架创build的,因此我们使用C:\ Windows \ Microsoft.NET \ Framework \ v2.0.50727 \ installutil.exe进行安装)

打印后台处理程序服务不重新启动

我有一台带有几台打印机的Windows Server 2003,偶尔打印后台处理程序服务在事件查看器中与此消息一起崩溃:错误应用程序spoolsv.exe,版本5.2.3790.0,错误模块ZSR.DLL,版本6.20.1625.0 ,故障地址0x0001f979。 显然,完全防止这种情况会很好,但在此之前,我希望它自动重启。 我已经在“属性/恢复”选项卡上的“第一个/第二个/后续故障”中将其设置为“重新启动服务”,但不会重新启动。 我可以手动启动它,然后它工作正常。 我怎么能把它设置为自动重启?

为什么我需要在VM中托pipe的Windows Server中的“即插即用”服务?

我正在审查在虚拟机内运行的Windows Server 2008 R2服务器的日志。 服务器承载Azure Webangular色。 日志包含此logging: 即插即用服务进入运行状态 这是一个虚拟机内部托pipe的完全无人值守的服务器。 为什么首先需要这项服务呢?

如何设置服务的权限

Nessus插件44676审计扫描显示此问题:“SMB不安全configuration的服务”说明在远程主机上至less检测到一个不安全configuration的Windows服务。 未授权的用户可以修改这些受影响的服务的属性。 一个非特权的本地攻击者可以利用这个来执行任意命令作为SYSTEM。 解决scheme确保“每个人”组没有ChangeConf,WDac或WOwn权限。 有关更多信息,请参阅Microsoft文档。 另请参阅http://support.microsoft.com/kb/914392 http://msdn.microsoft.com/zh-cn/library/ms685981(VS.85).aspx输出•以下服务对每个人都具有不安全的权限: • •任务计划程序(计划):DC,WD,WO 我从另一台没有这个问题的机器上复制安全描述符,用sc sdshow schedule 。 然后我尝试用sc sdset schedule *SDDL_security_descriptor*将其设置在受影响的机器上。 但是,当我重新启动机器,然后再次检查sdshow,它回到了以前。 有没有人知道如何做这个工作或另一个补救这个发现?

如何防止用户login用于模拟的帐户?

目前我有一个用C#(以LocalSystem身份运行)编写的windows服务,它使用DirectoryEntry添加用户/密码和关联的UserFlags来创build一个模拟所需的用户帐户。 然后,只需使用此帐户使用LogonUser()function执行一些任务(使用模拟) – 完美工作。 然而,这个帐户只能用于我的服务模仿,用户不应该能够在本地或通过networkinglogin(即使他有证书)。 为了达到这个目的,我尝试设置“本地拒绝login”和“拒绝从networking访问这台计算机”的本地策略,并添加了我的服务创build的用户。 但是现在,模拟失败,出现以下情况:login失败:用户尚未在此计算机上被授予所请求的logintypes(1385) 所以,我猜这不是正确的做法…但我需要确保locking该帐户,以便它只能被我的服务用于模拟目的,并确保没有其他人可以永久login帐户(即使他们拥有所有的凭据)。 我可以使用LSA吗? 或者使用与帐户创build时类似的DirectoryEntry代码? 有没有办法允许帐户存在,但不允许用户交互式login? 任何帮助将非常感激。 谢谢,

在一百台EC2服务器上部署/更新/控制Windows服务的最佳方式是什么?

我正在开发在Amazon EC2上的Windows上运行的image processing应用程序。 该应用程序目前是我在几台机器上手动启动的控制台应用程序。 我将其重构为Windows服务,并试图了解在大型集群计算机环境中部署和pipe理Windows服务的最佳方式。 我意识到我可以更新一个中央机器,创build一个新的AMI,然后开始用这个新的AMI创build新的实例,但觉得必须有更好的方式来部署,更新和控制(开始/停止/重新启动)Windows大规模的服务。 有没有最佳做法如何做到这一点? 谢谢,Hg

没有足够的权限批量更改Windows组权限

我写了一个batch file,在当前目录中创build多个文件夹和子文件夹。 一个文件夹的组权限也被改变。 这在我的本地工作站上以pipe理员权限运行,但在服务器上不起作用,因为我没有足够的权限。 此批次也应该由其他非pipe理员用户使用,他们无权更改文件夹的权限,因此无权给予他们这个权限。 看完这个评论之后 ,解决scheme似乎很明显: 编写一个VBScript,它改变给定文件夹的权限(文件夹名称是参数) 作为Windows服务运行VBScript(以pipe理员身份运行) 然后更改批处理,以便调用Windows服务(将文件夹作为parameter passing) 我的问题是:如何批量发送命令到Windows服务? 服务要以何种方式来执行,接受这个命令并对其进行处理?

如何使WMI调用失败?

我是一个开发人员,但我有一个问题似乎属于更多的ServerFault类别比StackOverflow。 我们有一个每隔一段时间就会倾倒的生产服务: System.Runtime.InteropServices.COMException:调用被消息filter取消。 (从HRESULTexception:0x80010002(RPC_E_CALL_CANCELED)) 触发此错误的代码是使用WMI获取networking接口MAC地址。 我有replace代码不使用WMI,但我们需要在更改之前/之后validation问题。 我的问题是:我如何人为地重新创build上面生成的错误信息?