Using PowerShell to Realize Unattended Installation of Server Common Software

Operating system: Windows Server 2016, Windows Server 2019

Software environment:

type

Name

Edition

 

system function

TelnetClien

   
 

IIS

 

Enable Asp.net 4.7

 

Hyper-V

 

Enabling Management

Common Software

Winrar

5.0

 
 

FireFox

67 CHS

 
 

SqlServer

2016

Enabling TCP 1436

 

Microsoft SQL Server Management Studio

14.0.17277.0

 
 

Redis

3.2.1

 
 

Flame safety

Personal Version 4.0

 

Operating environment

DotnetFramework

4.7.2

 
 

DotnetCoreSDK

2.2.104

 
 

DotnetCore-IIS-hosting

2.1.7

 
 

VC++ Runtime

2017

 
 

firewall

 

Close all firewalls

 

 

PS script

@@@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 "Existing $file,In comparison..."

$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 file hash Same, no download required"

}else{

Write - Host "$file hash by $md5,The requirements are as follows: $md5_2"

}

}

}

if ($needDown - eq 1){

Write - Host "Start downloading $url reach $file ..."

Invoke - WebRequest - uri $url - OutFile $file

Unblock - File $file

}

 

}

 

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

{

Down $url $file 0

Write - Host "Please wait $name Installation interface appears and completes interaction" - Foreground "Yellow"

Start - Process $file $para - Wait

Write - Host "$name installation is complete"

}

 

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 "Open Services ${name}port ${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 "Disable firewalls $name "

}

}

OpenFirewall "Operation and Maintenance Special Purpose" $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 "Folder Processing"

$normalPath | foreach {

CreateDir $_

}

 

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

if ($winrarVersion.Length -gt 0){

Write-Host "Winrar already installed $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 "Install Firefox Browser"

$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 Installed $firefoxVersion"

$installFireFox = 0

}

}

if ($installFireFox -eq 1) {

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

}

 

Write-Host "redis Handle"

if ($installRedis -eq 1){

$redisService = Get-Service Redis -ErrorAction SilentlyContinue

if($?){

Write-Host "Redis already installed"

$installRedis = 0

}else{

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

 

}

}

 

Write-Host "Firewall Processing"

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 Handle

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

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

Write-Host "TelnetClient already installed"

}

else{

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

}

 

 

 

if ($installDotnet462 -eq 1){

Write-Host "dotnet Handle"

$dotVersion =HasDotnetVersion 0 461814 #394802

if( $dotVersion.Length -gt 0 )

{

Write-Host "already installed DotNet $dotVersion"

}else{

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 Handle"

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 The server(IIS) installation is complete"

}

 

if ($installDotcore220 -eq 1){

Write-Host "dotnetcore Handle"

$dotVersion =HasDotnetVersion 1 "2.2.104"

if( $dotVersion.Length -gt 0 )

{

Write-Host "already installed DotNetCore $dotVersion"

}else{

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

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

 

}

}

 

Write-Host "Handle C++2017 Runtime"

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 already installed" #14.12.25810 14.16.27024

}

}

if($installVCRuntime -eq 1){

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

}

}

Write-Host "The computer is about to reboot. Please continue to execute the script after reboot." -ForegroundColor Red

Restart-Computer

 

if ($installHyperV -eq 1){

Write-Host "HyperV Handle"

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

if ($1 -eq "Installed"){

Write-Host "HyperV already installed"

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 Handle"

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

if($?){

Write-Host "$sqlServiceName already installed"

$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 "From the configuration file $sqlIni install SQLServer,The development version is installed silently, and the formal authorization serial number needs to be replaced later."

 

 

 

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

if (!$1){

Write-Host "Load $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 "Please wait SQLServer Installation interface appears and completes interaction"

Start-Process $exe $para -Wait

ChangeSqlServerTcpPort $sqlServiceName 1436

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

}

}

if ($installSSMS -eq 1){

Write-Host "SSMS Handle"

 

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

if( $ssmsKey ){

Write-Host "SSMS Installed $ssmsKey "

$installSSMS = 0

}else{

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

if ( $ssmsKey ){

Write-Host "SSMS Installed $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 "Safety treatment of flannel"

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

if( $Key.Length -gt 0 ){

Write-Host "Fur Safety Installed $Key "

$installSysdiag = 0

}

if ($installSysdiag -eq 1)

{

Write-Host "Please exit once after the safety installation of the flannel is completed" -ForegroundColor Red

DownloadAndInstall "$mainUrl/system/$sysdiagFile" "$tmpPath\$sysdiagFile" "Flame safety" " /install /passive "

}

}

 

@@#

 

 

Database Profile

@@@code

;SQL Server 2016 Configuration File

[OPTIONS]

 

; Specify the workflow of the installer, such as INSTALL,UNINSTALL or UPGRADE. This is the necessary parameter.

 

ACTION="Install"

 

; Specifies that when run from the command line, SQL Server Setup should not display privacy statements.

 

SUPPRESSPRIVACYSTATEMENTNOTICE="True"

;License terms will be displayed in the installer user interface for your review and acceptance,Specify run time from the command line,Set to True Automatic acceptance of permits

IACCEPTSQLSERVERLICENSETERMS="True"

 

; Specify this parameter and accept it Microsoft R Open and Microsoft R Server Terms indicate that you confirm that you have read and understood the terms of use.

 

IACCEPTROPENLICENSETERMS="True"

 

 

 

; Use /ENU Parameters can be localized Windows Install the English version on the operating system SQL Server.

 

ENU="False"

 

; The installer will not display any user interface.

 

QUIET="False"

 

; The installer will only show progress without any user interaction.

 

QUIETSIMPLE="True"

 

; Parameters used to control user interface behavior. RMS for completeness UI by Normal,For simplified UI by AutoAdvance,by EnableUIOnServerCore Skip Server Core Erection sequence GUI Block.

;Used QUIETSIMPLE or QUIET Can not be used later UIMODE

;UIMODE="Normal"

 

; Appoint SQL Server Should the installer discover and include product updates? The effective value is True and False Or 1 and 0. By default, SQL Server The installer will include the updates found.

 

UpdateEnabled="0"

 

; If this parameter is provided, the computer will use it Microsoft Update check update.

 

USEMICROSOFTUPDATE="False"

 

; Specify functions to install, uninstall, or upgrade. Top-level feature lists include SQL,AS,RS,IS,MDS And tools. SQL Functions will install database engine, replication, full text and Data Quality Services (DQS)The server. Tool functions install shared components.

 

FEATURES=SQLENGINE,REPLICATION

 

; Appoint SQL Server The installer will get the location of the product update. Valid value "MU" (To search for product updates),Effective folder path and .\MyUpdates or UNC Relative paths such as shared directories. By default, SQL Server Installation will go through Window Server Update Services search Microsoft Update or Windows Update Service.

 

UpdateSource="MU"

 

; Display command line parameter usage

 

HELP="False"

 

; Specifies that the detailed installer log should be sent to the console.

 

INDICATEPROGRESS="False"

 

; Specify that the installer should be installed to WOW64 Medium. IA64 Or the 32-bit system does not support this command-line parameter.

 

X86="False"

 

; Specify the default instance or named instance. MSSQLSERVER Right or wrong Express The default instance of the version, SQLExpress then is Express Default instance of version. Installation SQL Server database engine(SQL),Analysis Services (AS)or Reporting Services (RS)This parameter is required.

 

INSTANCENAME="SQL2016"

 

; Specify the installation root directory for shared components. This directory remains unchanged after the shared components have been installed.

 

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

 

; Appoint WOW64 Installation root directory for shared components. Installed WOW64 After sharing components, the directory remains unchanged.

 

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

 

; For what you have specified SQL Server Function specifying instance ID. SQL Server The directory structure, registry structure, and service name will include SQL Server Examples of examples ID.

 

INSTANCEID="SQL2016"

 

; TelemetryUserNameConfigDescription

 

SQLTELSVCACCT="NT Service\SQLTELEMETRY$SQL2016"

 

; TelemetryStartupConfigDescription

 

SQLTELSVCSTARTUPTYPE="Automatic"

 

; Specify the installation directory.

 

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

 

; Agent account name

 

AGTSVCACCOUNT="NT Service\SQLAgent$SQL2016"

 

; Auto-start service after installation.

 

AGTSVCSTARTUPTYPE="Automatic"

 

; CM Program Block TCP Communication Port

 

COMMFABRICPORT="0"

 

; How to Use Private Network for Matrix

 

COMMFABRICNETWORKLEVEL="0"

 

; How to Protect Communication between Program Blocks

 

COMMFABRICENCRYPTION="0"

 

; CM Block usage TCP port

 

MATRIXCMBRICKCOMMPORT="0"

 

; SQL Server Startup type of service.

 

SQLSVCSTARTUPTYPE="Automatic"

 

; Enable FILESTREAM Level of functionality(0,1,2 Or 3).

 

FILESTREAMLEVEL="2"

 

; Must be FILESTREAM file I/O Created Windows The name of the share.

 

FILESTREAMSHARENAME="SQL2016"

 

; Set to "1" May be SQL Server Express Enable RANU.

 

ENABLERANU="False"

 

; Specifies what to use for the database engine Windows Ordering rules or SQL Sorting rules.

 

SQLCOLLATION="Chinese_PRC_CI_AS"

 

; SQL Server Accounts for Services: field\User or system account.

 

SQLSVCACCOUNT="NT Service\MSSQL$SQL2016"

 

; Set to "True" To enable SQL Server Instant file initialization of the service. If enabled, the installer will grant the database engine service SID"Perform volume maintenance tasks"Privileges. This can lead to information leakage, because it allows unauthorized subjects to access deleted content.

 

SQLSVCINSTANTFILEINIT="False"

 

; To set to SQL Server System Administrator's Windows Account.

 

SQLSYSADMINACCOUNTS=".\Administrator"

 

; The default value is Windows Authentication. Use "SQL" Represents authentication in mixed mode.

 

SECURITYMODE="SQL"

SAPWD="Pa4432^22"

 

; database engine TempDB Number of files.

 

SQLTEMPDBFILECOUNT="8"

 

; Specify the database engine TempDB Initial size of data file(MB).

 

SQLTEMPDBFILESIZE="8"

 

; Specify each database engine TempDB Automatic Incremental Growth of Data Files(MB).

 

SQLTEMPDBFILEGROWTH="64"

 

; Specify the database engine TempDB Initial size of log file(MB).

 

SQLTEMPDBLOGFILESIZE="8"

 

; Specify the database engine TempDB Automatic Increment Growth of Log Files(MB).

 

SQLTEMPDBLOGFILEGROWTH="64"

 

; The database engine root data directory.

 

INSTALLSQLDATADIR="D:\data\sql"

 

; Set the current user to %SQL_PRODUCT_SHORT_NAME% Express Database Engine System Administrator.

 

ADDCURRENTUSERASSQLADMIN="False"

 

; Specify 0 to disable TCP/IP Protocol, specify 1 to enable the protocol.

 

TCPENABLED="1"

 

; Specify 0 to disable Named Pipes Protocol, specify 1 to enable the protocol.

 

NPENABLED="0"

 

; Browser Startup type of service.

 

BROWSERSVCSTARTUPTYPE="Disabled"

@@#

 

output

@@@code

Folder Processing

Start downloading http://192.168.10.36/system/winrar.exe to d: temp system winrar.exe...

Wait for the Winrar installation interface to appear and complete the interaction

Winrar Installation Completed

Start downloading http://192.168.10.36/system/rarreg.key to d: temp system rarreg.key...

Install Firefox Browser

Start downloading http://192.168.10.36/system/FireFox.exe to d: temp system FireFox.exe...

Wait for the FireFox installation interface to appear and complete the interaction

FireFox installation completed

redis processing

Start downloading http://192.168.10.36/system/Redis.msi to d: temp system Redis.msi...

Wait for the Redis installation interface to appear and complete the interaction

Redis installation completed

Firewall Processing

Disable Firewall Connected User Experiences and Telemetry

Disable Firewall Delivery Optimization (TCP-In)

Disable Firewall Delivery Optimization (UDP-In)

.....

Disable Firewall Network Discovery (UPnP-In)

Disable Firefox (C: Program Files (x86) Mozilla Firefox)

Disable Firefox (C: Program Files (x86) Mozilla Firefox)

Disable Firewall Redis

Open Service Operations and Maintenance Special Port 3389,tcp

Open service sqlServer port 1436,tcp

Open Service BandService Port 3410-3415,tcp

Open Service LogServer Web Port 5881,tcp

Open Service logServer Port 5880,udp

Open Service Redis Port 6379,tcp

TelnetClient Processing

dotnet processing

Start downloading http://192.168.10.36/system/NDP472.exe to d: temp system NDP472.exe...

Wait for the Dotnet installation interface to appear and complete the interaction

Dotnet installation completed

Start downloading http://192.168.10.36/system/NDP472CHS.exe to d: temp system NDP472CHS.exe...

Wait for the DotnetCHS installation interface to appear and complete the interaction

Dotnet CHS installation completed

IIS Processing

Success Restart Needed Exit Code Feature Result

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

True Yes SuccessRest... {Common HTTP functions, default documents, directory browsing, request filtering...}

Warning: This server must be restarted to complete the installation process.

True Yes NoChangeNeeded {}

True Yes SuccessRest... {ASP.NET 4.6, application development, ASP.NET 4.6, ISAPI extension...

Warning: This server must be restarted to complete the installation process.

Web Server (IIS) Installation Completed

dotnetcore processing

Start downloading http://192.168.10.36/system/dotnetcoresdk-2.2.104.exe to d: temp system dotnetcoresdk-2.2.104.exe...

Wait for the Dotnet Core SDK installation interface to appear and complete the interaction

DotNet Core 2.2.104 installed

Processing C++2017 runtime

Visual C++ Redistributable 14.16.27024 Installed

SQL2016 Processing

Existing d: temp system sql2016_deve_sp2. iso, in the comparison.

D: temp system sql2016_deve_sp2. ISO hash is E352C8A057BF78FA03487716F46AA0, requiring CF399685C44B79F911195401C01B12

Start downloading http://192.168.10.36/system/sql2016_deve_sp2.iso to d: temp system sql2016_deve_sp2.iso...

Install the SQL Server from the configuration file d: temp system sql2016_deve_sp2.iso.ini, using the silent installation of the development version, and subsequently need to change the formal authorization serial number.

Load d: temp system sql2016_deve_sp2.iso

Please wait for the SQL Server installation interface to appear and complete the interaction

Warning: Waiting for the service "SQL Server (SQL2016) (MSSQL$SQL2016)" to stop...

SSMS Processing

Existing d: temp system ssms2017.exe, in the comparison.

D: temp system ssms2017.exe hash is 743917727CBEEA2BA32E0C5BACBA, requiring 324F66D14FD1A8A368DB208534FAA496

Start downloading http://192.168.10.36/system/ssms2017.exe to d: temp system ssms2017.exe...

Please wait for the Microsoft SQL Server Management Studio installation interface to appear and complete the interaction

Microsoft SQL Server Management Studio Installation Completed

Safety treatment of flannel

Please exit once after the safety installation of the flannel is completed

Start downloading http://192.168.10.36/system/sysdiag.exe to d: temp system sysdiag.exe...

Please wait for the appearance of the Flannel Safety Installation Interface and complete the interaction.

Fur safety installation completed

 

 

PS C:\Windows\system32>

@@#

Keywords: Windows SQL Firefox Redis Database

Added by xpherism on Fri, 09 Aug 2019 14:10:52 +0300