【发布时间】:2016-11-29 03:26:58
【问题描述】:
我目前有一个非常简单的 Powershell 脚本,它创建一个 IO.FileSystemWatcher 对象,并在触发该事件时调用一个可执行文件。
我可以在我的 2012 Windows Server 上从 Administrator Powershell 运行此脚本而不会出现问题,但是当我从 Task Scheduler 运行我的脚本时,它似乎遇到了问题。
我尝试在登录时运行任务,在我注销时在触发器上运行,在这两种情况下,当我检查时,事件状态都显示为:“正在运行”。但是,与应被监视的文件夹交互不会产生任何结果。我添加了一个日志文件来记录代码的哪些部分正在运行,并且脚本确实创建了事件,但是似乎是事件触发才是问题所在。有人听说过通过任务计划程序创建事件的问题吗?
我读过一些论坛说这可能是域用户问题
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Lsa
将 ValueName 为“disabledomaincreds”的“REG_DWORD”更改为“0”
虽然情况已经如此,但我已经按照Scripting Guy 和SpiceWorks 在任务属性中尝试了多种设置。我发现的普遍共识是,它需要使用 -NoExit 参数运行,以便在用户未登录时正确运行事件。
补充说明:
- Powershell 脚本位于网络位置,而不是物理上位于计算机上 (\serverName\FTP\Folder\script.ps1
【问题讨论】:
-
如果您告诉我们这些问题是什么,我们或许可以提供帮助。如前所述,您的问题属于Super User。
-
抱歉,社区新手。希望我的编辑澄清!
-
-NoExit是必需的,无论用户是否登录 - 事件注册仅在该会话中持续存在,因此如果进程退出,FileSystemWatcher 也会终止 -
我将查看文件服务器资源管理器,感谢您的建议 - 如果它能够在文件创建时运行带有参数的可执行文件,那可能是一个可行的替代方案。
标签: powershell scheduled-tasks filesystemwatcher windows-server-2012-r2 powershell-4.0