我想出了一个不错的 PowerShell 脚本,用于根据 MS Patch Tuesday + Offset 管理 Configuration Manager 中的每月维护时段。创建、更新和清理选项。以管理员身份交互运行时,该脚本运行良好。但是,当作为计划任务或配置项(预期用途)运行时,它会失败。我使用 psexec.exe 以系统身份运行交互式 PowerShell 会话,该脚本成功映射了 PSDrive 并导入了模块,但随后所有 cmdlet 都因相同的错误而失败。
New-CMSchedule:值不能为空。参数名称:key
Get-CMCollection:值不能为空。参数名称:key
Get-CMMaintenanceWindow:值不能为空。参数名称:key
[错误:New-CMSchedule:值不能为空。参数名称:key][1] [1]: https://i.stack.imgur.com/AEM2l.png
由于所有 cmdlet 都没有 key 参数,我相信错误是在堆栈跟踪'at System.Collections.Concurrent.ConcurrentDictionary`2.TryGetValue(TKey key, TValue& value)'中引用的
有人知道我是否遗漏了解决方法,或者这只是模块编写方式的限制吗?提前致谢
答案1
虽然有点晚了,但可能会对其他人有所帮助。我必须以服务帐户身份登录服务器上运行计划任务中的 cmdlet,然后运行一次控制台,才能通过计划任务工作。