如何在MDT任务序列中运行局域网服务器上的PowerShell脚本?
MDT执行局域网外部服务器PowerShell脚本的正确配置方法
核心问题:权限与网络访问
MDT任务序列默认用本地系统账户执行,这个账户没有访问网络共享的权限,这是绝大多数失败的根源。先解决权限问题:
- 不管用「Run PowerShell Script」还是「Run Command Line」步骤,都要勾选**"Access content directly from a network share"**选项,然后在「Credentials」栏填写拥有目标共享文件夹读取权限的域账户/本地账户。
- 工作组环境注意:目标服务器的本地账户要和你输入的账户完全一致,同时共享权限和NTFS权限都要给该账户读取权限。
「Run PowerShell Script」步骤配置
别直接在脚本名里填共享路径,按以下步骤来:
- 打开MDT工作台,右键你的部署共享→「Properties」→「Windows PE」→「Features」,确保勾选「Networking components」下的TCP/IP、File and Print Sharing等组件,保证WinPE能连上网络。
- 切换到部署共享的「Scripts」节点,右键选「Add Script」,在「Script location」里输入完整共享路径
\\MyServer\SomeFolder\SomeScript.ps1,填个显示名称后保存。 - 在任务序列的「Run PowerShell Script」步骤里,直接选择刚才添加的脚本,同时勾选权限选项并填入有权限的账户。
「Run Command Line」步骤修正
原命令的路径和参数可以调整,适配WinPE环境:
- 修正后的命令:
powershell.exe -ExecutionPolicy Bypass -NoProfile -File \\MyServer\SomeFolder\SomeScript.ps1 - 同样勾选「Access content directly from a network share」并填权限账户,可选在「Start in」栏填
\\MyServer\SomeFolder,避免路径解析问题。
额外排查项
- 验证WinPE网络连通性:加一个「Command Line」步骤,执行
ping MyServer或者net use \\MyServer\SomeFolder /user:Domain\YourAccount YourPassword,确认能访问共享。 - 测试脚本兼容性:把脚本放到本地WinPE环境里运行,排查有没有依赖WinPE没有的模块或语法问题。
- 临时关闭防火墙:目标服务器和MDT服务器的防火墙先关掉,排除SMB端口(445)被拦截的可能。
内容的提问来源于stack exchange,提问作者MikeZetPL
相关产品推荐
相关产品推荐

