Skip to content

[Bug] window 下安装报“无法调用方法。此语言模式仅支持核心类型的方法调用”错误 #650

Closed

Description

@Tao-Oak
Image

Activity

  1. haofeng0705 commented on Oct 20, 2026

    @haofeng0705
    Collaborator

    Hi @Tao-Oak,感谢反馈和截图!

    我们已定位到 PowerShell 受限语言模式(ConstrainedLanguage)与安装脚本不兼容,并提交了诊断修复 PR #1536。目前 PR 仍待评审和 CI,尚未合入;不能认为更新 CLI 就已经解决这个问题。

    截图中,安装器打印 “Downloading dws …” 后调用了非核心类型方法 [System.IO.Path]::GetTempPath(),被受限语言模式拦截。现行脚本还可能更早在注册表对象初始化时失败。这个限制和钉钉接口权限、PowerShell 的 ExecutionPolicy 都不是一回事,-ExecutionPolicy Bypass 不会解除它。

    PR 会让两份 Windows 安装脚本在下载和安装前给出明确提示,用异常停止而不是关闭已有终端。本次修复改善诊断与失败行为,不提供完整受限模式安装支持,也不会绕过 AppLocker/WDAC。 本地验证使用 macOS 上的 pwsh,Windows 实机和组织策略下的结果仍需确认。

    现在可以按以下方式处理(建议新开一个终端,所有方式都须符合组织策略):

    1. 执行 $ExecutionContext.SessionState.LanguageMode 查看当前模式。公司受管设备优先联系 IT,通过批准的软件分发方式安装,请勿解除组织安全策略。
    2. 如果组织允许 Node.js/npm,可以尝试:
      npm install -g dingtalk-workspace-cli
      npm 不运行 install.ps1,但 Windows 解压仍可能用到 PowerShell,不能保证避开同类限制。
    3. 策略允许手动安装时,从 Releases 下载 dws-windows-amd64.zip(ARM64 设备选 dws-windows-arm64.zip)和 checksums.txt,用 Get-FileHash 核对 SHA256,解压后通过 Windows 设置将二进制目录加入 PATH。
    4. 在新终端执行 dws version 验证,再用 dws skill setup --dry-run 预览,确认后执行 dws skill setup 安装技能。若策略禁止运行下载的 dws.exe,仍须由 IT 处理。

    本条反馈先关闭,后续诊断修复由 #1536 跟踪;这不代表受限模式已获完整支持。如果上述允许的方式仍失败,欢迎继续回复 Windows/PowerShell 版本、语言模式及脱敏错误堆栈($Error[0].ScriptStackTrace),我们继续定位。感谢反馈,欢迎继续交流!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions