操作系统: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
}else{
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 已安装"
}
else{
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"
}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处理"
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"
if( $dotVersion.Length -gt 0 )
{
Write-Host "已安装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 "处理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
if($?){
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
}else{
$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 "
}
}  @@#

 

 

数据库配置文件

@@@code
;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"
@@#

 

输出

@@@code
文件夹处理
开始下载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)
禁用防火墙 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>
@@#

使用PowerShell实现服务器常用软件的无人值守安装的更多相关文章

  1. 一些常用软件的静默安装参数(nsis,msi,InstallShield,Inno)

    打包的时候,经常需要安装一些其它的环境库,而又不想让用户繁锁的去选择,这时就需要静默安装,而不同的文件所加的参数了不一致,比如VS的环境库vcredist_x86.exe(这是32位的环境库)后面加/ ...

  2. Windows批处理:自动部署常用软件(静默安装)

    一.简介 最近一直在测试使用域组策略自动部署软件,效果并不理想.首先,主机必须加入域才能让策略生效.其实是Windows Server 2012 R2只支持.msi格式的安装包,所以部署前需将软件重新 ...

  3. Linux服务器pxe+kickstart部署无人值守安装

    一.    使用光盘镜像安装好一台Redhat6.8系统的虚拟机(图形化界面) 二.    部署相关服务程序 1.     安装并配置dhcpd服务程序 a)安装dhcp服务程序 b)对dhcp服务进 ...

  4. win10纯净版安装及其常用软件集锦(2020新年湘岳阳万江波整理)

    win10纯净版安装及其常用软件集锦 1.安装win10纯净版:链接:https://pan.baidu.com/s/1L9yl-LNxxDQbEN_TGswzcA 提取码:u0pt 2.安装WPS2 ...

  5. 第六章、PXE高效网络装机、Kickstart无人值守安装

    目录 一.部署PXE远程安装服务 1PXE定义 2PXE服务优点 3搭建网络体系前提条件 4PXE实现过程讲解 二.搭建PXE远程安装服务器 三.Kickstart无人值守安装 一.部署PXE远程安装 ...

  6. CentOS7 系统服务器初始化配置、安全加固、内核升级优化常用软件安装的Shell脚本分享

    转载自:https://www.bilibili.com/read/cv13875630?spm_id_from=333.999.0.0 描述: 适用于企业内部 CentOS7 系列操作服务器初始化. ...

  7. Centos7服务器搭建部署显卡计算环境以及常用软件的安装使用

    安装好anaconda的服务器上会more你已经安装好jupyter notebook,执行下面的命令可以提供链接地址允许远程浏览器打开并访问: jupyter notebook --no-brows ...

  8. Tomcat服务器常用配置和HTTP简介

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html 内部邀请码:C8E245J (不写邀请码,没有现金送) 国 ...

  9. 【转】Ubuntu常用软件合集

    [转]Ubuntu常用软件合集 Ubuntu常用软件合集 我用的使Ubuntu-Kylin14.04,原因呢主要是觉得使本土化的,自带了日历.输入法.优客助手等易于上手的应用.也省的每次安装完原生的系 ...

随机推荐

  1. go基础之不定参函数

    指定类型参数 任意类型参数的变参 go语言同其他编程一样也提供了对变参函数的支持.本文简单讲解一下go中变参函数的使用方法. 指定类型参数 不定参数是指函数传入参数的个数为不确定数量,个数需要在调用的 ...

  2. idea结合maven小项目

    整体构造 (修改 POM 文件 )parent <?xml version="1.0" encoding="UTF-8"?> <project ...

  3. Java中的等待唤醒机制—至少50%的工程师还没掌握!

    这是一篇走心的填坑笔记,自学Java的几年总是在不断学习新的技术,一路走来发现自己踩坑无数,而填上的坑却屈指可数.突然发现,有时候真的不是几年工作经验的问题,有些东西即使工作十年,没有用心去学习过也不 ...

  4. [TimLinux] myblog 数据表格显示

    1. 设计 2. 数据 创建数据库用户: CREATE USER IF NOT EXISTS 'user1'@'MyBlogPwd123'; GRANT ALL ON d1.* TO 'user1'@ ...

  5. [TimLinux] JavaScript 获取元素节点的5种方法

    1. getElementById document.getElementById("id_value") # 返回值为Node对象,没有元素时,返回 == undefined值( ...

  6. BZOJ 1051: [HAOI2006]受欢迎的牛(SCC)

    1051: [HAOI2006]受欢迎的牛 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 8172  Solved: 4470[Submit][Sta ...

  7. 【JS】332- 为什么我更喜欢对象而不是 switch 语句

    昨天偷懒了,欢迎点击关注???这样我就多更大的动力日更了- 正文从这里开始~~~ 最近(或者不是最近,这完全取决于您什么时候阅读这边文章),我正在跟我的团队伙伴讨论如何去处理这种需要根据不同的值去处理 ...

  8. jmeter微信公众号接口测试实例

    线程组 HTTP Cookie 管理器 HTTP 请求默认值 用户定义的变量 察看结果树 HTTP请求 响应断言 正则表达式提取器 线程组 HTTP Cookie 管理器 HTTP 请求默认值 用户定 ...

  9. hdu 2089 不要62 (数位dp基础题)

    不要62 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submis ...

  10. Caffe源码-Net类(上)

    Net类简介 Net类主要处理各个Layer之间的输入输出数据和参数数据共享等的关系.由于Net类的代码较多,本次主要介绍网络初始化部分的代码.Net类在初始化的时候将各个Layer的输出blob都统 ...