我的整个脚本大约有800行,并且包含很多其他功能,因此我将重点关注此问题中的实际问题。 我创建了一个PowerShell脚本,该脚本使用Get-WmiObject cmdlet在运行它的计算机上获取已安装的Windows更新。 完整命令如下所示:
$windowsupdates = Get-WmiObject Win32_QuickFixEngineering -ErrorAction Stop |
Select-Object Caption, CSName, Description, FixComments, HotFixID, InstallDate, InstalledBy, InstalledOn, Name, ServicePackInEffect, Status -ErrorAction Stop |
Sort-Object -Property InstallDate -ErrorAction Stop
在此命令之后,我通过ForEach迭代找到的更新并从中生成csv文件。 这在手动运行脚本时完全正常,但只要我在用于手动运行的完全相同的用户下运行它作为计划任务,它将不再在系统上找到任何更新。 没有抛出异常,一切看起来好像脚本运行正常。 当我完成脚本时,将使用计划任务来运行它,因为它必须在特定的时间间隔内运行,所以我必须确保它作为计划任务运行正常。该脚本将在没有管理员权限的标准用户下运行(我将无法在管理员用户下运行它,因此不建议我这样做,但它确实可以管理员用户)所以我确定它是安全/访问问题,因为脚本在管理员用户下按计划任务运行正常。 我发现有关此问题的唯一其他问题是WMI query in powershell script returns no object when run in a scheduled task并且我检查了“以最高权限运行”复选框,但它仍然无效。有没有人遇到过这个问题并知道解决方案?