当检查用户登录时,任务计划程序成功运行 powershell 脚本,但当检查用户注销或登录时则不会运行

当检查用户登录时,任务计划程序成功运行 powershell 脚本,但当检查用户注销或登录时则不会运行

我在 C:\ 上写了一个简单的 ps1 文件来备份我的 dhcp 信息。它会将其保存到共享文件夹中,然后在达到 6 个之后删除最旧的文件: $date=Get-Date -Format 'MM-dd-yyyy' $file="S:\DHCPBak${date}.txt" netsh dhcp server export $file all if ((Get-ChildItem S:\ -File | Measure-Object).count -gt 5){ Get-ChildItem S:\ | Sort-Object -property lastwritetime | select -first 1 | Remove-Item }

我希望这段代码能在周末运行,因为那时每个人可能都已经注销了。

当从 powershell 内部运行、使用 args 运行 powershell.exe 以及当任务计划程序在启用“仅在用户登录时运行”的情况下运行它时,此代码可以完美运行。

但是,当我单击“无论用户是否登录都运行”后,程序将成功运行,但目录中不会出现任何文件。“历史记录”选项卡将显示任务已完成,没有错误。我可以将其切换回“仅当用户登录时”并运行它以接收我的备份文件。

我知道备份文件不会复制,所以我在测试之间小心地删除了它,选择“登录或注销”后,脚本将无法正常工作。是否存在我遗漏的范围不匹配,导致它们保存在不同的地方,还是任务计划程序不满意?

答案1

在仔细研究了这里的一些问题后,我遇到了如果将 Windows 10 任务计划程序设置为“无论用户是否登录都运行”,则不会运行任何 exe。LPChip 留下一条评论说系统无权访问网络共享或资源。这肯定就是导致我的问题的原因。

相关内容