Windows启动时的PowerShell文件监视器

时间:2011-11-11 14:28:04

标签: events powershell monitoring

我有一个使用System.IO.FileSystemWatcher事件监视PowerShell脚本的文件系统。 该脚本运行良好,但它需要一个打开的PowerShell窗口。

因此,我需要在Windows启动时将其作为Windows服务运行(无需登录)。有没有办法做到这一点?

1 个答案:

答案 0 :(得分:2)

要在Windows启动时执行脚本(无需登录),您可以为它创建一个Windows服务(使用srvany.exe)。 步骤进行:

  1. 获取Windows 2003资源工具包(包含srvany.exe)
  2. 安装资源工具包
  3. 使用sc和srvany.exe

    创建服务
    sc create PSService binPath= "C:\Program Files\Windows Resource Kits\Tools\srvany.exe" DisplayName= "PSService"
    
  4. 参数化您的服务

    Windows Registry Editor Version 5.00
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\PSService]
    "Type"=dword:00000010
    "Start"=dword:00000003
    "ErrorControl"=dword:00000001
    "DisplayName"="PSService"
    "ObjectName"="LocalSystem"
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\PSService\Parameters]
    "Application"="C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe -noExit -ExecutionPolicy RemoteSigned -File C:\\PSService\\psservice.ps1"
    
  5. 一些评论:

    • Srvany.exe不适用于Windows Vista及更高版本。它可能有用,但可能不支持
    • 您可能希望使用其他凭据运行它(出于安全原因)
    • 您可能希望将脚本保存在只有管理员具有写访问权限的目录中(出于安全原因)