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

远程安装SQL Server时PowerShell执行异常及权限问题排查

远程PowerShell安装SQL Server的问题排查与解决

初始脚本语法错误修复

你最初的脚本出现An error occurred while creating the pipeline错误,核心原因是Invoke-Command的参数换行语法错误:-ArgumentList被拆成单独一行,PowerShell无法识别它属于Invoke-Command的参数。

修正后的脚本:

Import-Module sqlserver -DisableNameChecking
$setupDrive = "\\sqlshare\sql_source\ISO\Setup\SW_DVD9_NTRL_SQL_Svr_Ent_Core_2019Dec2019_64Bit_English_OEM_VL_X22-22120"
$fileExe = Join-Path -Path $setupDrive -ChildPath "setup.exe"
$configurationFile = "\\sqlshare\sql_source\ISO\ConfigurationFileMSSQLSERVER.ini"
$session = New-PSSession -ComputerName "xxxx_yyyy"
Invoke-Command -ScriptBlock {
    & $args[0] /CONFIGURATIONFILE=$args[1]
} -Session $session -ArgumentList $fileExe, $configurationFile

注:用Join-Path替代手动拼接路径,避免转义问题;同时确保-ArgumentList与Invoke-Command在同一逻辑行(或用反引号`换行)。

SQL安装权限拒绝(Error -2061762559)解决

后续映射共享后出现的权限拒绝错误,本质是PowerShell远程会话的双跳凭证问题:当你在本地发起远程会话到服务器B时,服务器B无法将你的凭证传递到共享服务器(sqlshare),导致SQL安装进程访问共享文件时权限不足。

方案1:启用CredSSP(推荐,适用于保留共享部署的场景)

需要在本地客户端和目标服务器上都配置CredSSP:

  1. 本地客户端(发起远程命令的机器)执行:
Enable-WSManCredSSP -Role Client -DelegateComputer "xxxx_yyyy"
  1. 目标服务器(xxxx_yyyy)执行:
Enable-WSManCredSSP -Role Server
  1. 创建会话时指定使用CredSSP:
$cred = Get-Credential
$session = New-PSSession -ComputerName "xxxx_yyyy" -Credential $cred -Authentication CredSSP

之后再执行Invoke-Command调用SQL安装。

方案2:将安装文件复制到目标服务器本地

绕开共享权限问题,直接把SQL安装包和配置文件复制到目标服务器的本地磁盘,再执行安装:

$targetPath = "C:\SQLInstall"
$session = New-PSSession -ComputerName "xxxx_yyyy"
# 复制安装文件到目标服务器
Copy-Item -Path $setupDrive -Destination $targetPath -Recurse -ToSession $session
Copy-Item -Path $configurationFile -Destination $targetPath -ToSession $session
# 远程执行本地安装
Invoke-Command -Session $session -ScriptBlock {
    $localExe = Join-Path -Path "C:\SQLInstall" -ChildPath "setup.exe"
    $localConfig = Join-Path -Path "C:\SQLInstall" -ChildPath "ConfigurationFileMSSQLSERVER.ini"
    & $localExe /CONFIGURATIONFILE=$localConfig
}

方案3:授予目标服务器计算机账户共享权限

如果必须使用共享,可将共享目录的读取权限授予目标服务器的计算机账户(格式:DOMAIN\ServerName$),这样SQL安装进程以本地系统权限运行时,可通过计算机账户访问共享。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 02:45:36