我想这更多是一个提神而不是一个问题,但是我欢迎任何批评或智慧。
我一直在研究在SCCM OSD任务序列期间运行的PowerShell脚本。该脚本的目的是根据计算机所在的域将计算机移至AD组。我注意到该脚本在正常OS期间可以正常运行,但在任务序列中会失败。我发现由于cmdlet不可用,导致Get-WmiObject命令失败。
这个来自Mike Griswald的博客帮助阐明了一些问题:https://blogs.technet.microsoft.com/michaelgriswold/2015/07/27/powershell-failing-in-a-task-sequence/
基本上,一旦安装了OS但任务序列仍在运行,某些基本的PowerShell模块将不会加载。这包括Microsoft.PowerShell.Management模块,其中包含Get-WmiObject cmdlet。 这是我使用的代码:
Import-Module -Name Microsoft.PowerShell.Management -Verbose
Mike建议在确实解决问题的脚本开头导入此模块。我认为我认为这是解决问题的方法,而不是真正的解决方案,因为理想情况下,我想确保所有核心模块均作为默认行为加载。
答案 0 :(得分:0)
阅读您引用的博客文章,这似乎是SCCM OSD任务序列的一项功能,即PowerShell不会使用Import-Module加载所有模块,因此并不是唯一可行的解决方法。任务。
我想得到想要的唯一的另一种方法是从任务序列中生成另一个PowerShell进程。您可以使用-File参数运行包含WMI命令的脚本,因为PowerShell的新实例应具有所有可用模块。请注意,这只是一个想法-我没有测试它的环境。