Sql server 远程安装SQL Server

Sql server 远程安装SQL Server,sql-server,powershell,Sql Server,Powershell,我正在尝试使用PowerShell在远程计算机上安装SQL server 2016。下面是我的脚本。请有人帮我找出问题所在 # Variables $INSTANCENAME = 'DB1234INST01' $VOLNAME = '1234INST01' $SAPASS = "abc@12345" $InstMem = '4096' Invoke-Command -ComputerName DB12345 -ScriptBlock{ # Install SQL Instance D:\S

我正在尝试使用PowerShell在远程计算机上安装SQL server 2016。下面是我的脚本。请有人帮我找出问题所在

# Variables
$INSTANCENAME = 'DB1234INST01'
$VOLNAME = '1234INST01'
$SAPASS = "abc@12345"
$InstMem = '4096'

Invoke-Command  -ComputerName DB12345 -ScriptBlock{

# Install SQL Instance
D:\Setup.exe `
/SkipRules=RebootRequiredCheck `
/ACTION=Install `
/AGTSVCSTARTUPTYPE=Automatic `
/BROWSERSVCSTARTUPTYPE=Automatic `
/ERRORREPORTING=False `
/FEATURES="SQLEngine,DQ" `
/IACCEPTSQLSERVERLICENSETERMS `
/INSTANCEDIR="E:\$VOLNAME" `
/INSTANCEID=$INSTANCENAME `
/INSTANCENAME=$INSTANCENAME `
/ISSVCSTARTUPTYPE=Automatic `
/QUIETSIMPLE `
/SAPWD=$SAPASS `
/SECURITYMODE=SQL `
/SQLSVCSTARTUPTYPE=Automatic `
/SQLSYSADMINACCOUNTS="bac\Domain Admins" "bac\DB Admins" `
/SQMREPORTING=False `
/TCPENABLED=1 `
/UpdateEnabled=1 `
/UpdateSource=MU

#Set Memory on Instance
import-module SQLPS -DisableNameChecking
Invoke-Sqlcmd -ServerInstance .\$INSTANCENAME -Username sa -Password $SAPASS -Query "EXEC sys.sp_configure 'show advanced options', 1"
Invoke-Sqlcmd -ServerInstance .\$INSTANCENAME -Username sa -Password $SAPASS -Query "RECONFIGURE"
Invoke-Sqlcmd -ServerInstance .\$INSTANCENAME -Username sa -Password $SAPASS -Query "EXEC sys.sp_configure 'max server memory (MB)', $InstMem"
Invoke-Sqlcmd -ServerInstance .\$INSTANCENAME -Username sa -Password $SAPASS -Query "EXEC sys.sp_configure 'show advanced options', 0"
Invoke-Sqlcmd -ServerInstance .\$INSTANCENAME -Username sa -Password $SAPASS -Query "RECONFIGURE"

}
从远程机器(如跳转主机)运行时,我遇到以下错误:

SQL Server 2016 transmits information about your installation experience, as well as other usage and performance data, to Microsoft to help improve 
the product. To learn more about SQL Server 2016 data processing and privacy controls, please see the Privacy Statement.
The following error occurred:
The specified value for setting 'SAPWD' is invalid. The expected value type is SqlSecureString.

Error result: -2068578303
Result facility code: 1204
Result error code: 1

Please review the summary.txt log for further details
Microsoft (R) SQL Server 2016 13.00.1601.05

Copyright (c) 2016 Microsoft Corporation.  All rights reserved.


Could not load file or assembly 'Microsoft.SqlServer.ConnectionInfo, Version=13.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91' or one of 
its dependencies. The system cannot find the file specified.
    + CategoryInfo          : NotSpecified: (:) [Import-Module], FileNotFoundException
    + FullyQualifiedErrorId : System.IO.FileNotFoundException,Microsoft.PowerShell.Commands.ImportModuleCommand
    + PSComputerName        : DB12345

你的问题帖子中几乎没有错误。其中一个出现是因为缺少SMO(SQL共享管理对象):

它可以从SQL Server功能包下载


如果安装没有帮助,请查看此线程:

存在对相关ms connect项目的引用

更新2019-02-09:

/QUIETSIMPLE
指定安装程序在UI中运行并显示进度,但不会 不接受任何输入或显示任何错误消息

指定安装程序在无任何用户界面的安静模式下运行。 这用于无人值守的安装。/Q参数覆盖 /QS参数的输入


Setup.exe参数将从
/QUIETSIMPLE
更改为
/QUIET
,因为通过Invoke命令远程执行对QUIETSIMPLE带来的交互性不满意

我已解决了远程安装SQL的问题及其工作正常。唯一的问题是,现在我无法修改创建实例的内存值。以某种方式调用Sqlcmd-ServerInstance$Servers\$INSTANCENAME命令表示无法连接到服务器或找不到实例。关于这方面的任何想法都会有所帮助

变量
当我在DB服务器上运行脚本而不使用invoke命令时,没有问题。从远程服务器运行脚本时我面临的唯一问题。是不是也需要在jumb box上安装SSMS…@Abhishek,您的变量。是否可以将它们放在ScriptBlock中?错误:-当应用程序未在UserInteractive模式下运行时,显示模式对话框或窗体是无效的操作。指定ServiceNotification或DefaultDesktopOnly样式以显示来自服务应用程序的通知。@Abhishek,QUIETSIMPLE仍然生成一些交互,我做了一个调整相同的问题。。只是想检查我在服务器A上,并试图在服务器B上安装,所以服务器B上存在的exe是否会产生问题,我必须使用配置文件进行静默安装。
/QUIETSIMPLE
/QUIET
$Servers = Get-Content C:\server.txt

Invoke-Command -ComputerName $Servers{

$INSTANCENAME = 'DB1243INST01'
$VOLNAME = '1243INST01'
$SAPASS = 'test123'
$InstMem = '4096'
# Install SQL Instance
C:\Temp\Setup.exe `
/SkipRules=RebootRequiredCheck `
/ACTION=Install `
/AGTSVCSTARTUPTYPE=Automatic `
/BROWSERSVCSTARTUPTYPE=Automatic `
/ERRORREPORTING=False `
/FEATURES="SQLEngine,DQ" `
/IACCEPTSQLSERVERLICENSETERMS `
/INSTANCEDIR="E:\$VOLNAME" `
/INSTANCEID=$INSTANCENAME `
/INSTANCENAME=$INSTANCENAME `
/ISSVCSTARTUPTYPE=Automatic `
/QUIET `
/SAPWD=$SAPASS `
/SECURITYMODE=SQL `
/SQLSVCSTARTUPTYPE=Automatic `
/SQLSYSADMINACCOUNTS="abc\Admins" "abc\DB Admins" `
/SQMREPORTING=False `
/TCPENABLED=1 `
/UpdateEnabled=FALSE `
/UpdateSource=MU `

#Set Memory on Instance
import-module SQLPS -DisableNameChecking
Invoke-Sqlcmd -ServerInstance $Servers\$INSTANCENAME -Username sa -Password $SAPASS -Query "EXEC sys.sp_configure 'show advanced options', 1"
Invoke-Sqlcmd -ServerInstance $Servers\$INSTANCENAMEE -Username sa -Password $SAPASS -Query "RECONFIGURE"
Invoke-Sqlcmd -ServerInstance $Servers\$INSTANCENAMEE -Username sa -Password $SAPASS -Query "EXEC sys.sp_configure 'max server memory (MB)', $InstMem"
Invoke-Sqlcmd -ServerInstance $Servers\$INSTANCENAME -Username sa -Password $SAPASS -Query "EXEC sys.sp_configure 'show advanced options', 0"
Invoke-Sqlcmd -ServerInstance $Servers\$INSTANCENAME -Username sa -Password $SAPASS -Query "RECONFIGURE"

}