使用Add-PnPJavaScriptLink时Connection参数解析失败求助
问题描述
尝试使用Add-PnPJavaScriptLink添加JS链接,执行以下代码:
$jsLinkAddJquery = "Add-PnPJavaScriptLink -Name 'jquery' -Url '/SiteAssets/jquery-3.4.1.min.js' -Connection $($Global:PnPConnection)" Invoke-Expression $jsLinkAddJquery
出现异常:
Cannot bind parameter 'Connection'. Cannot convert the "PnP.PowerShell.Commands.Base.PnPConnection" value of type "System.String" to type "PnP.PowerShell.Commands.Base.PnPConnection".
解决方案
问题根源是Invoke-Expression会将$Global:PnPConnection对象强制转换为字符串(即对象的类型名称),而非传递实际的连接对象。可以通过以下两种方式解决:
直接调用命令(推荐):跳过字符串拼接步骤,直接传入连接对象,避免类型转换问题:
Add-PnPJavaScriptLink -Name 'jquery' -Url '/SiteAssets/jquery-3.4.1.min.js' -Connection $Global:PnPConnection使用脚本块执行(若需动态场景):如果必须通过动态方式执行,用脚本块代替字符串,保留对象的原始类型:
$jsLinkAddJquery = { Add-PnPJavaScriptLink -Name 'jquery' -Url '/SiteAssets/jquery-3.4.1.min.js' -Connection $Global:PnPConnection } & $jsLinkAddJquery
内容的提问来源于stack exchange,提问作者HiighQ
相关产品推荐
相关产品推荐

