You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

从网络共享的.ps1文件加载PowerShell类出现报错如何解决

前置排查

先确认导入命令的UNC路径格式正确,网络共享路径开头需要加两个反斜杠,修正后的基础命令格式如下:
."\\server\scripts\powershellscripts\manager.ps1"

问题根因

包含PowerShell类的.ps1脚本在使用dot sourcing导入时,PowerShell会先将类定义编译为临时程序集再加载;而仅包含函数的脚本仅在运行时逐行解析,无需编译为独立程序集。默认Windows安全策略会标记网络共享路径的文件为非本地受信任来源,禁止加载该路径下生成的临时程序集,因此仅类定义脚本会触发报错。

解决方案
  • 方案1:解除共享脚本的安全锁定
    单个文件可以直接在文件资源管理器中找到对应.ps1文件,右键点击「属性」,在「常规」选项卡底部的「安全」区块勾选「解除锁定」,确认后重新执行导入命令即可。
    批量处理多个共享路径脚本可以执行如下PowerShell命令:
    Get-ChildItem -Path "\\server\scripts\" -Recurse -Filter *.ps1 | Unblock-File
  • 方案2:配置.NET允许加载远程源程序集
    在PowerShell配置文件中添加运行时配置项,放开远程来源程序集加载限制。首先打开PowerShell当前用户配置文件:
    notepad $PROFILE
    在文件末尾添加如下内容后保存,重启PowerShell即可生效:
    $env:COMPLUS_LoadFromRemoteSources = 1
    
  • 方案3:映射网络驱动器替代UNC路径
    将目标网络共享路径映射为本地逻辑盘符,再通过本地盘符路径导入脚本:
    # 映射共享路径为Z盘
    New-PSDrive -Name Z -PSProvider FileSystem -Root "\\server\scripts\powershellscripts\" -Persist
    # 导入类脚本
    . "Z:\manager.ps1"
    

内容的提问来源于stack exchange,提问作者user10696838

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 19:48:02