天天看點

使用PowerShell實作伺服器常用軟體的無人值守安裝

作業系統:windows server 2016 , windows server 2019

軟體環境:

類型 名稱 版本
系統功能 TelnetClien
IIS 啟用Asp.net 4.7
Hyper-V 啟用管理
常用軟體 Winrar 5.0
FireFox 67 CHS
SqlServer 2016 啟用TCP 1436
Microsoft SQL Server Management Studio 14.0.17277.0
Redis 3.2.1
火絨安全 個人版 4.0
運作環境 DotnetFramework 4.7.2
DotnetCoreSDK 2.2.104
DotnetCore-IIS-hosting 2.1.7
VC++ Runtime 2017
防火牆 關閉所有防火牆

PS腳本

@@@code

$installSql = 1

$installSSMS = 1

$installIIS =1

$installHyperV =1

$installDotnet462 =1

$installDotcore220 = 1

$installVCRuntime = 1

$installSysdiag = 1

$installRedis =1

$mainDir ="d:\"

$mainUrl = "http://192.168.10.36/soft"

$tmpPath =$mainDir + "temp\system"

$normalPath = @()

$normalPath += $tmpPath

$normalPath += $mainDir + "data\sql"

$normalPath += $mainDir + "data\web"

$normalPath += $mainDir + "app\redis"

$normalPath += $mainDir + "app\dotnet"

$normalPath += $mainDir + "Hyper-V\Virtual Hard Disks"

$normalPath += $mainDir + "Hyper-V\vm"

$firefoxFile = "FireFox.exe"

$vcruntimeFile = "vc_redist.exe"

$winrarFile = "winrar.exe"

$winrarKeyFile = "rarreg.key"

$sqlFile = "sql2016_deve_sp2.iso"

$sqlServiceName = "SQL2016"

$ssmsFile ="ssms2017.exe"

$dotnetFile = "NDP472.exe"

$dotnetCHSFile = "NDP472CHS.exe"

$dotnetcoreFile ="dotnetcoresdk-2.2.104.exe"

$dotnetcoreHostFile ="dotnet-hosting-2.1.7-win.exe"

$sysdiagFile = "sysdiag.exe"

$redisFile = "Redis.msi"

# add path

Function CreateDir($arg)

{

if (![System.IO.Directory]::Exists($arg))

{

# [System.IO.Directory]::CreateDirectory($dir);

mkdir $arg | Out - Null

}

}

Function Down($url , $file, $force)

$needDown = 1;

if ($force - eq 1){

$needDown = 1;

}else{

if ([System.IO.File]::Exists($file))

{

Write - Host "已存在$file,比對中..."

$1 = $url + ".md5.txt"

$2 = $file + ".md5.txt"

#Write-Host $1,$2

if (![System.IO.File]::Exists($2))

{

Invoke - WebRequest - uri $1 - OutFile $2

Unblock - File $2

}

$md5_2 = [System.IO.File]::ReadAllText($2);

$md5 = (Get - FileHash $file - Algorithm MD5).Hash

if ( $md5 - eq $md5_2){

$needDown = 0;

Write - Host "$file 檔案hash相同,無需下載下傳"

}else{

Write - Host "$file hash 為$md5,要求為$md5_2"

}

if ($needDown - eq 1){

Write - Host "開始下載下傳$url 到 $file ..."

Invoke - WebRequest - uri $url - OutFile $file

Unblock - File $file

}

function DownloadAndInstall( $url, $file,$name,$para)

Down $url $file 0

Write - Host "請等待 $name 安裝界面出現并完成互動" - Foreground "Yellow"

Start - Process $file $para - Wait

Write - Host "$name 安裝完成"

Function ChangeSqlServerTcpPort( $name , $port )

[System.Reflection.Assembly]::LoadWithPartialName("Microsoft.SqlServer.SqlWmiManagement") | Out-Null

$server_name = (Get-WmiObject -Class Win32_ComputerSystem -Property Name).Name

$Machine = new-object 'Microsoft.SqlServer.Management.Smo.Wmi.ManagedComputer' $server_name

$instance = $Machine.ServerInstances[ $name];

$ipAll = $instance.ServerProtocols['Tcp'].IPAddresses['IPAll'];

$ipAll.IPAddressProperties['TcpPort'].Value = "${port}"

$instance.ServerProtocols['Tcp'].Alter();

Function OpenFirewall( $name , $port , $tcp )

Remove - NetFirewallRule - DisplayName "$name" - ErrorAction SilentlyContinue

New - NetFirewallRule - DisplayName "$name" - Direction Inbound - LocalPort ${ port}

-Protocol ${ tcp}

-Action Allow | Out - Null

Write - Host "開放服務${name}端口${port},${tcp}"

Function DisableAllFirewallRule( $port )

Set - NetFirewallProfile - Profile Public - Enabled false

Set - NetFirewallProfile - Profile Private - Enabled false

Get - NetFirewallRule | foreach{

$flag = $_.Enabled

if ( $flag - eq 1 ){

$name =$_.DisplayName

Set - NetfirewallRule - DisplayName $name - Enabled false - ErrorAction SilentlyContinue

Write - Host "禁用防火牆 $name "

}

OpenFirewall "運維專用" $port tcp

Set - NetFirewallProfile - Profile Public - Enabled true

Set - NetFirewallProfile - Profile Private - Enabled true

Function GetRegKey($key,$name)

$result = (Get - ItemProperty - Path "$key" - ErrorAction SilentlyContinue).$name

return $result

#Write-Host $result

Function HasDotnetVersion($iscore,$version)

if ($iscore - eq 0){

$dotVersion = GetRegKey "HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" "Release"

if ( $dotVersion - ge $version)

return GetRegKey "HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full" "Version"

else{

$x = Get - Command dotnet - ErrorAction SilentlyContinue

if ($?){

return (dir(Get - Command dotnet).Path.Replace('dotnet.exe', 'sdk') - ErrorAction Ignore | Where - Object {$_.Name - eq "$version"} | Select Name ).Name

}

return "";

Write-Host "檔案夾處理"

$normalPath | foreach {

CreateDir $_

$winrarVersion = GetRegKey "HKLM:\SOFTWARE\WinRAR" "exe64"

if ($winrarVersion.Length -gt 0){

Write-Host "Winrar已安裝 $winrarFile"

else{

DownloadAndInstall "$mainUrl/system/$winrarFile" "$tmpPath\$winrarFile" "Winrar" " /install /passive /norestart"

$winrarVersion = GetRegKey "HKLM:\SOFTWARE\WinRAR" "exe64"

Down "$mainUrl/system/$winrarKeyFile" "$tmpPath\$winrarKeyFile" 0

[System.IO.File]::Copy("$tmpPath\$winrarKeyFile", [System.IO.Path]::Combine([System.IO.Path]::GetDirectoryName("$winrarVersion") , $winrarKeyFile) , 1)

Write-Host "安裝火狐浏覽器"

$installFireFox = 1

$1 =Get-Item -Path "HKCU:\Software\Mozilla\Firefox\Launcher" -ErrorAction SilentlyContinue

if ($?)

$firefoxVersion=$1.GetValueNames()[0]

#= GetRegKey "HKCU:\Software\Mozilla\Mozilla Firefox" "CurrentVersion"

if ($firefoxVersion.Length -gt 0){

Write-Host "Winrar已安裝在 $firefoxVersion"

$installFireFox = 0

if ($installFireFox -eq 1) {

DownloadAndInstall "$mainUrl/system/$firefoxFile" "$tmpPath\$firefoxFile" "FireFox" " /install /passive /norestart"

}

Write-Host "redis處理"

if ($installRedis -eq 1){

$redisService = Get-Service Redis -ErrorAction SilentlyContinue

if($?){

Write-Host "Redis 已安裝"

$installRedis = 0

DownloadAndInstall "$mainUrl/system/$redisFile" "$tmpPath\$redisFile" "Redis" " "

Write-Host "防火牆處理"

DisableAllFirewallRule 3389

OpenFirewall sqlServer 1436 tcp

OpenFirewall BandService 3410-3415 tcp

OpenFirewall logServerWeb 5881 tcp

OpenFirewall logServer 5880 udp

OpenFirewall Redis 6379 tcp

Write-Host ""TelnetClient處理

$telnet = Get-WindowsFeature "telnet-client" | select InstallState

if($telnet.InstallState -eq "Installed"){

Write-Host "TelnetClient 已安裝"

Install-WindowsFeature "telnet-client" | Out-Null

if ($installDotnet462 -eq 1){

Write-Host "dotnet處理"

$dotVersion =HasDotnetVersion 0 461814 #394802

if( $dotVersion.Length -gt 0 )

Write-Host "已安裝DotNet $dotVersion"

DownloadAndInstall "$mainUrl/system/$dotnetFile" "$tmpPath\$dotnetFile" "Dotnet" " /install /passive /norestart"

DownloadAndInstall "$mainUrl/system/$dotnetCHSFile" "$tmpPath\$dotnetCHSFile" "DotnetCHS" " /install /passive /norestart"

if( $installIIS -eq 1){

Write-Host "IIS處理"

Install-WindowsFeature Web-Server -ErrorAction Continue

Add-WindowsFeature Web-Server,Web-WebServer,Web-Security,Web-Filtering,Web-Common-Http,Web-Http-Errors,Web-Static-Content,Web-Default-Doc,Web-Dir-Browsing

Add-WindowsFeature Web-Performance,Web-Stat-Compression,Web-Health,Web-Http-Logging,Web-App-Dev,Web-Net-Ext45,Web-Asp-Net45,Web-ISAPI-Ext,Web-ISAPI-Filter,Web-Mgmt-Tools,Web-Mgmt-Console

Write-Host "Web 伺服器(IIS) 安裝完成"

if ($installDotcore220 -eq 1){

Write-Host "dotnetcore處理"

$dotVersion =HasDotnetVersion 1 "2.2.104"

Write-Host "已安裝DotNetCore $dotVersion"

DownloadAndInstall "$mainUrl/system/$dotnetcoreFile" "$tmpPath\$dotnetcoreFile" "DotnetCoreSDK" " /install /passive /norestart"

DownloadAndInstall "$mainUrl/system/$dotnetcoreHostFile" "$tmpPath\$dotnetcoreHostFile" "DotnetCore IIS Hosting" " /install /passive /norestart"

Write-Host "處理C++2017運作時"

if ($installVCRuntime -eq 1){

$vcruntimeVersion = GetRegKey "HKLM:\SOFTWARE\Microsoft\DevDiv\VC\Servicing\14.0\RuntimeMinimum" "Version"

if ($vcruntimeVersion.Length -gt 0){

if([System.Version]::Parse($vcruntimeVersion).Minor -ge 16){

$installVCRuntime = 0

Write-Host "Visual C++ Redistributable $vcruntimeVersion 已安裝" #14.12.25810 14.16.27024

if($installVCRuntime -eq 1){

DownloadAndInstall "$mainUrl/system/$vcruntimeFile" "$tmpPath\$vcruntimeFile" "Visual C++ Redistributable" " /install /passive /norestart"

Write-Host "計算機即将重新開機,請在重新開機後繼續執行腳本" -ForegroundColor Red

Restart-Computer

if ($installHyperV -eq 1){

Write-Host "HyperV處理"

$1 = (Get-WindowsFeature Hyper-V).InstallState

if ($1 -eq "Installed"){

Write-Host "HyperV已安裝"

Set-VMHost -ComputerName $env:COMPUTERNAME -VirtualHardDiskPath "d:\Hyper-V\Virtual Hard Disks" -VirtualMachinePath "d:\Hyper-V\VM"

else{

Install-WindowsFeature Hyper-V -IncludeManagementTools -Restart

if ($installSql -eq 1){

Write-Host "$sqlServiceName 處理"

$sqlService = Get-Service MSSQL`$${sqlServiceName} -ErrorAction SilentlyContinue

Write-Host "$sqlServiceName 已安裝"

$installSql = 0

#ChangeSqlServerTcpPort $sqlServiceName 1436

#Restart-Service MSSQL`$${sqlServiceName} -Force

if ($installSql -eq 1){

Down "$mainUrl/system/$sqlFile" "$tmpPath\$sqlFile" 0

$sqlIni = "${tmpPath}\${sqlFile}.ini"

Down $mainUrl/system/${sqlFile}.ini $sqlIni 0

$sqlFile="$tmpPath\$sqlFile"

Write-Host "從配置檔案 $sqlIni 安裝SQLServer,使用了靜默安裝開發版本,後續需要更換正式的授權序列号"

$1 = (Get-DiskImage -ImagePath $sqlFile).Attached

if (!$1){

Write-Host "加載 $sqlFile "

Mount-DiskImage -ImagePath $sqlFile | Out-Null

$1 = (Get-DiskImage -ImagePath $sqlFile | Get-Volume ).DriveLetter

$exe = $1 + ":\setup.exe "

$para ="/ConfigurationFile=${sqlIni}"

# & $exe $para

Write-Host "請等待SQLServer 安裝界面出現并完成互動"

Start-Process $exe $para -Wait

ChangeSqlServerTcpPort $sqlServiceName 1436

Restart-Service MSSQL`$${sqlServiceName} -Force

if ($installSSMS -eq 1){

Write-Host "SSMS處理"

$ssmsKey = GetRegKey 'HKCU:\Software\Microsoft\SQL Server Management Studio\14.0_Config' 'InstallDir'

if( $ssmsKey ){

Write-Host "SSMS已安裝在 $ssmsKey "

$installSSMS = 0

$ssmsKey = GetRegKey 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\AppEnv\14.0\Apps\ssms_14.0' 'StubExePath'

if ( $ssmsKey ){

Write-Host "SSMS已安裝在 $ssmsKey "

$installSSMS = 0

if ($installSSMS -eq 1)

DownloadAndInstall "$mainUrl/system/$ssmsFile" "$tmpPath\$ssmsFile" "Microsoft SQL Server Management Studio" " /install /passive "

if ($installSysdiag -eq 1){

Write-Host "火絨安全處理"

$Key = GetRegKey 'HKLM:\Software\Huorong\Sysdiag' 'InstallPath'

if( $Key.Length -gt 0 ){

Write-Host "火絨安全已安裝在 $Key "

$installSysdiag = 0

}

if ($installSysdiag -eq 1)

Write-Host "火絨安全安裝完成後請先退出一次" -ForegroundColor Red

DownloadAndInstall "$mainUrl/system/$sysdiagFile" "$tmpPath\$sysdiagFile" "火絨安全" " /install /passive "

@@#

資料庫配置檔案

;SQL Server 2016 Configuration File

[OPTIONS]

; 指定安裝程式的工作流,如 INSTALL、UNINSTALL 或 UPGRADE。這是必需的參數。

ACTION="Install"

; 指定從指令行運作時,SQL Server 安裝程式不應顯示隐私聲明。

SUPPRESSPRIVACYSTATEMENTNOTICE="True"

;将在安裝程式使用者界面中顯示許可條款,供您稽核審閱和接受,指定從指令行運作時,設定為True自動接受許可

IACCEPTSQLSERVERLICENSETERMS="True"

; 指定此參數并接受 Microsoft R Open 和 Microsoft R Server 條款即表明你确認已閱讀并了解使用條款。

IACCEPTROPENLICENSETERMS="True"

; 使用 /ENU 參數可在本地化的 Windows 作業系統上安裝英語版本的 SQL Server。

ENU="False"

; 安裝程式将不會顯示任何使用者界面。

QUIET="False"

; 安裝程式将隻顯示進度,而不需要任何使用者互動。

QUIETSIMPLE="True"

; 用于控制使用者界面行為的參數。有效值對于完整 UI 為 Normal,對于簡化的 UI 為 AutoAdvance,為 EnableUIOnServerCore 則跳過 Server Core 安裝程式 GUI 塊。

;使用了QUIETSIMPLE或QUIET之後不能使用UIMODE

;UIMODE="Normal"

; 指定 SQL Server 安裝程式是否應發現和包括産品更新。有效值是 True 和 False 或者 1 和 0。預設情況下,SQL Server 安裝程式将包括找到的更新。

UpdateEnabled="0"

; 如果提供了此參數,則此計算機将使用 Microsoft 更新檢查更新。

USEMICROSOFTUPDATE="False"

; 指定要安裝、解除安裝或更新的功能。頂級功能清單包括 SQL、AS、RS、IS、MDS 和工具。SQL 功能将安裝資料庫引擎、複制、全文和 Data Quality Services (DQS)伺服器。工具功能将安裝共享元件。

FEATURES=SQLENGINE,REPLICATION

; 指定 SQL Server 安裝程式将擷取産品更新的位置。有效值為 "MU" (以便搜尋産品更新)、有效檔案夾路徑以及 .\MyUpdates 或 UNC 共享目錄之類的相對路徑。預設情況下,SQL Server 安裝程式将通過 Window Server Update Services 搜尋 Microsoft Update 或 Windows Update 服務。

UpdateSource="MU"

; 顯示指令行參數用法

HELP="False"

; 指定應将詳細的安裝程式日志傳送到控制台。

INDICATEPROGRESS="False"

; 指定安裝程式應該安裝到 WOW64 中。IA64 或 32 位系統不支援此指令行參數。

X86="False"

; 指定預設執行個體或命名執行個體。MSSQLSERVER 是非 Express 版本的預設執行個體,SQLExpress 則是 Express 版本的預設執行個體。在安裝 SQL Server 資料庫引擎(SQL)、Analysis Services (AS)或 Reporting Services (RS)時,此參數是必需的。

INSTANCENAME="SQL2016"

; 指定共享元件的安裝根目錄。在已安裝共享元件後,此目錄保持不變。

INSTALLSHAREDDIR="C:\Program Files\Microsoft SQL Server"

; 指定 WOW64 共享元件的安裝根目錄。在已安裝 WOW64 共享元件後,此目錄保持不變。

INSTALLSHAREDWOWDIR="C:\Program Files (x86)\Microsoft SQL Server"

; 為您已指定的 SQL Server 功能指定執行個體 ID。SQL Server 目錄結構、系統資料庫結構和服務名稱将包含 SQL Server 執行個體的執行個體 ID。

INSTANCEID="SQL2016"

; TelemetryUserNameConfigDescription

SQLTELSVCACCT="NT Service\SQLTELEMETRY$SQL2016"

; TelemetryStartupConfigDescription

SQLTELSVCSTARTUPTYPE="Automatic"

; 指定安裝目錄。

INSTANCEDIR="C:\Program Files\Microsoft SQL Server"

; 代理帳戶名

AGTSVCACCOUNT="NT Service\SQLAgent$SQL2016"

; 安裝後自動啟動服務。

AGTSVCSTARTUPTYPE="Automatic"

; CM 程式塊 TCP 通信端口

COMMFABRICPORT="0"

; 矩陣如何使用專用網絡

COMMFABRICNETWORKLEVEL="0"

; 如何保護程式塊間的通信

COMMFABRICENCRYPTION="0"

; CM 程式塊使用的 TCP 端口

MATRIXCMBRICKCOMMPORT="0"

; SQL Server 服務的啟動類型。

SQLSVCSTARTUPTYPE="Automatic"

; 啟用 FILESTREAM 功能的級别(0、1、2 或 3)。

FILESTREAMLEVEL="2"

; 要為 FILESTREAM 檔案 I/O 建立的 Windows 共享的名稱。

FILESTREAMSHARENAME="SQL2016"

; 設定為 "1" 可為 SQL Server Express 啟用 RANU。

ENABLERANU="False"

; 指定要用于資料庫引擎的 Windows 排序規則或 SQL 排序規則。

SQLCOLLATION="Chinese_PRC_CI_AS"

; SQL Server 服務的帳戶: 域\使用者或系統帳戶。

SQLSVCACCOUNT="NT Service\MSSQL$SQL2016"

; 設定為 "True" 以啟用 SQL Server 服務的即時檔案初始化。如果已啟用,安裝程式将授予資料庫引擎服務 SID"執行卷維護任務"特權。這可能會導緻資訊洩漏,因為這會允許未經授權的主體通路已删除的内容。

SQLSVCINSTANTFILEINIT="False"

; 要設定為 SQL Server 系統管理者的 Windows 帳戶。

SQLSYSADMINACCOUNTS=".\Administrator"

; 預設值為 Windows 身份驗證。使用 "SQL" 表示采用混合模式身份驗證。

SECURITYMODE="SQL"

SAPWD="Pa4432^22"

; 資料庫引擎 TempDB 檔案數。

SQLTEMPDBFILECOUNT="8"

; 指定資料庫引擎 TempDB 資料檔案的初始大小(MB)。

SQLTEMPDBFILESIZE="8"

; 指定每個資料庫引擎 TempDB 資料檔案的自動增長增量(MB)。

SQLTEMPDBFILEGROWTH="64"

; 指定資料庫引擎 TempDB 日志檔案的初始大小(MB)。

SQLTEMPDBLOGFILESIZE="8"

; 指定資料庫引擎 TempDB 日志檔案的自動增長增量(MB)。

SQLTEMPDBLOGFILEGROWTH="64"

; 資料庫引擎根資料目錄。

INSTALLSQLDATADIR="D:\data\sql"

; 将目前使用者設定為 %SQL_PRODUCT_SHORT_NAME% Express 的資料庫引擎系統管理者。

ADDCURRENTUSERASSQLADMIN="False"

; 指定 0 禁用 TCP/IP 協定,指定 1 則啟用該協定。

TCPENABLED="1"

; 指定 0 禁用 Named Pipes 協定,指定 1 則啟用該協定。

NPENABLED="0"

; Browser 服務的啟動類型。

BROWSERSVCSTARTUPTYPE="Disabled"

輸出

檔案夾處理

開始下載下傳http://192.168.10.36/system/winrar.exe 到 d:\temp\system\winrar.exe ...

請等待 Winrar 安裝界面出現并完成互動

Winrar 安裝完成

開始下載下傳http://192.168.10.36/system/rarreg.key 到 d:\temp\system\rarreg.key ...

安裝火狐浏覽器

開始下載下傳http://192.168.10.36/system/FireFox.exe 到 d:\temp\system\FireFox.exe ...

請等待 FireFox 安裝界面出現并完成互動

FireFox 安裝完成

redis處理

開始下載下傳http://192.168.10.36/system/Redis.msi 到 d:\temp\system\Redis.msi ...

請等待 Redis 安裝界面出現并完成互動

Redis 安裝完成

防火牆處理

禁用防火牆 Connected User Experiences and Telemetry

禁用防火牆 Delivery Optimization (TCP-In)

禁用防火牆 Delivery Optimization (UDP-In)

…..

禁用防火牆 網絡發現(UPnP-In)

禁用防火牆 Firefox (C:\Program Files (x86)\Mozilla Firefox)

禁用防火牆 Redis

開放服務運維專用端口3389,tcp

開放服務sqlServer端口1436,tcp

開放服務BandService端口3410-3415,tcp

開放服務logServerWeb端口5881,tcp

開放服務logServer端口5880,udp

開放服務Redis端口6379,tcp

TelnetClient處理

dotnet處理

開始下載下傳http://192.168.10.36/system/NDP472.exe 到 d:\temp\system\NDP472.exe ...

請等待 Dotnet 安裝界面出現并完成互動

Dotnet 安裝完成

開始下載下傳http://192.168.10.36/system/NDP472CHS.exe 到 d:\temp\system\NDP472CHS.exe ...

請等待 DotnetCHS 安裝界面出現并完成互動

DotnetCHS 安裝完成

IIS處理

Success Restart Needed Exit Code Feature Result

------- -------------- --------- --------------

True Yes SuccessRest... {常見 HTTP 功能, 預設文檔, 目錄浏覽, 請求篩選...}

警告: 必須重新啟動此伺服器才能完成安裝過程。

True Yes NoChangeNeeded {}

True Yes SuccessRest... {ASP.NET 4.6, 應用程式開發, ASP.NET 4.6, ISAPI 擴...

Web 伺服器(IIS) 安裝完成

dotnetcore處理

開始下載下傳http://192.168.10.36/system/dotnetcoresdk-2.2.104.exe 到 d:\temp\system\dotnetcoresdk-2.2.104.exe ...

請等待 DotnetCoreSDK 安裝界面出現并完成互動

已安裝DotNetCore 2.2.104

處理C++2017運作時

Visual C++ Redistributable 14.16.27024 已安裝

SQL2016 處理

已存在d:\temp\system\sql2016_deve_sp2.iso,比對中...

d:\temp\system\sql2016_deve_sp2.iso hash 為E352C8A057BF78FA0348757716F46AA0,要求為CF399685C44B7988F911195401C01B12

開始下載下傳http://192.168.10.36/system/sql2016_deve_sp2.iso 到 d:\temp\system\sql2016_deve_sp2.iso ...

從配置檔案 d:\temp\system\sql2016_deve_sp2.iso.ini 安裝SQLServer,使用了靜默安裝開發版本,後續需要更換正式的授權序列号

加載 d:\temp\system\sql2016_deve_sp2.iso

請等待SQLServer 安裝界面出現并完成互動

警告: 正在等待服務"SQL Server (SQL2016) (MSSQL$SQL2016)"停止...

SSMS處理

已存在d:\temp\system\ssms2017.exe,比對中...

d:\temp\system\ssms2017.exe hash 為7455391756727CBEEA2BA32E0C5BACBA,要求為324F66D14FD1A8A368DB208534FAA496

開始下載下傳http://192.168.10.36/system/ssms2017.exe 到 d:\temp\system\ssms2017.exe ...

請等待 Microsoft SQL Server Management Studio 安裝界面出現并完成互動

Microsoft SQL Server Management Studio 安裝完成

火絨安全處理

火絨安全安裝完成後請先退出一次

開始下載下傳http://192.168.10.36/system/sysdiag.exe 到 d:\temp\system\sysdiag.exe ...

請等待 火絨安全 安裝界面出現并完成互動

火絨安全 安裝完成

PS C:\Windows\system32>