PowerShell提示Set-Location所属Microsoft.PowerShell.Management模块无法加载怎么解决?
已在模块'Microsoft.PowerShell.Management'中找到'Set-Location'命令,但无法加载该模块。如需了解更多信息,请运行'Import-Module Microsoft.PowerShell.Management'。
CategoryInfo : ObjectNotFound: (Set-Location:String) [], CommandNotFoundException
FullyQualifiedErrorId : CouldNotAutoloadMatchingModule
- 模块自动加载路径配置异常:
Microsoft.PowerShell.Management是PowerShell核心内置模块,若环境变量PSModulePath被篡改、缺失默认系统模块路径,会导致模块无法被自动定位加载 - 模块文件损坏或权限不足:系统盘下对应模块目录的文件被杀毒软件误删、被第三方优化工具篡改,或者当前运行PowerShell的用户没有该模块目录的读取权限
- PowerShell运行环境受损:.NET Framework运行环境异常、PowerShell核心组件损坏会触发核心模块加载失败
- 执行策略限制:PowerShell的脚本执行策略设置过于严格,阻止了内置模块的正常加载
验证模块路径配置
运行以下命令查看当前模块路径是否包含默认系统模块路径:$env:PSModulePath
默认系统模块路径一般为C:\Windows\system32\WindowsPowerShell\v1.0\Modules\,如果缺失可临时添加:$env:PSModulePath += ";C:\Windows\system32\WindowsPowerShell\v1.0\Modules\"
若需要永久生效,可在系统环境变量中编辑PSModulePath,添加上述路径即可。手动导入模块定位问题
以管理员身份运行PowerShell,执行命令查看导入时的详细报错:Import-Module Microsoft.PowerShell.Management -Verbose
如果报错指向权限问题,检查模块目录的访问权限,赋予当前用户读取和执行权限即可。调整脚本执行策略
运行命令查看当前执行策略:Get-ExecutionPolicy
若返回结果为Restricted,可调整为宽松度更高的RemoteSigned:Set-ExecutionPolicy RemoteSigned -Scope CurrentUser
按照提示输入Y确认修改后,重新测试模块是否可以正常加载。修复系统受损文件
如果上述操作均无效,运行系统文件检查工具修复损坏的系统组件:sfc /scannow
等待扫描修复完成后重启计算机,再次验证问题是否解决。
内容的提问来源于stack exchange,提问作者Vishal Rajput

