• 使用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 + "tempsystem"

    $normalPath = @()

    $normalPath += $tmpPath

    $normalPath += $mainDir + "datasql"

    $normalPath += $mainDir + "dataweb"

    $normalPath += $mainDir + "app edis"

    $normalPath += $mainDir + "appdotnet"

    $normalPath += $mainDir + "Hyper-VVirtual Hard Disks"

    $normalPath += $mainDir + "Hyper-Vvm"

     

    $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:SOFTWAREMicrosoftNET Framework SetupNDPv4Full" "Release"

    if ( $dotVersion - ge $version)

    {

    return GetRegKey "HKLM:SOFTWAREMicrosoftNET Framework SetupNDPv4Full" "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:SOFTWAREWinRAR" "exe64"

    if ($winrarVersion.Length -gt 0){

    Write-Host "Winrar已安装 $winrarFile"

    }

    else{

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

    $winrarVersion = GetRegKey "HKLM:SOFTWAREWinRAR" "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:SoftwareMozillaFirefoxLauncher" -ErrorAction SilentlyContinue

    if ($?)

    {

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

    #= GetRegKey "HKCU:SoftwareMozillaMozilla 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:SOFTWAREMicrosoftDevDivVCServicing14.0RuntimeMinimum" "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-VVirtual Hard Disks" -VirtualMachinePath "d:Hyper-VVM"

    }

    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:SoftwareMicrosoftSQL Server Management Studio14.0_Config' 'InstallDir'

    if( $ssmsKey ){

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

    $installSSMS = 0

    }else{

    $ssmsKey = GetRegKey 'HKLM:SOFTWAREWow6432NodeMicrosoftAppEnv14.0Appsssms_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:SoftwareHuorongSysdiag' '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 FilesMicrosoft 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 ServiceSQLTELEMETRY$SQL2016"

     

    ; TelemetryStartupConfigDescription

     

    SQLTELSVCSTARTUPTYPE="Automatic"

     

    ; 指定安装目录。

     

    INSTANCEDIR="C:Program FilesMicrosoft SQL Server"

     

    ; 代理帐户名

     

    AGTSVCACCOUNT="NT ServiceSQLAgent$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 ServiceMSSQL$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:datasql"

     

    ; 将当前用户设置为 %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: empsystemwinrar.exe ...

    请等待 Winrar 安装界面出现并完成交互

    Winrar 安装完成

    开始下载http://192.168.10.36/system/rarreg.key 到 d: empsystem arreg.key ...

    安装火狐浏览器

    开始下载http://192.168.10.36/system/FireFox.exe 到 d: empsystemFireFox.exe ...

    请等待 FireFox 安装界面出现并完成交互

    FireFox 安装完成

    redis处理

    开始下载http://192.168.10.36/system/Redis.msi 到 d: empsystemRedis.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: empsystemNDP472.exe ...

    请等待 Dotnet 安装界面出现并完成交互

    Dotnet 安装完成

    开始下载http://192.168.10.36/system/NDP472CHS.exe 到 d: empsystemNDP472CHS.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: empsystemdotnetcoresdk-2.2.104.exe ...

    请等待 DotnetCoreSDK 安装界面出现并完成交互

    已安装DotNetCore 2.2.104

    处理C++2017运行时

    Visual C++ Redistributable 14.16.27024 已安装

    SQL2016 处理

    已存在d: empsystemsql2016_deve_sp2.iso,比对中...

    d: empsystemsql2016_deve_sp2.iso hash 为E352C8A057BF78FA0348757716F46AA0,要求为CF399685C44B7988F911195401C01B12

    开始下载http://192.168.10.36/system/sql2016_deve_sp2.iso 到 d: empsystemsql2016_deve_sp2.iso ...

    从配置文件 d: empsystemsql2016_deve_sp2.iso.ini 安装SQLServer,使用了静默安装开发版本,后续需要更换正式的授权序列号

    加载 d: empsystemsql2016_deve_sp2.iso

    请等待SQLServer 安装界面出现并完成交互

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

    SSMS处理

    已存在d: empsystemssms2017.exe,比对中...

    d: empsystemssms2017.exe hash 为7455391756727CBEEA2BA32E0C5BACBA,要求为324F66D14FD1A8A368DB208534FAA496

    开始下载http://192.168.10.36/system/ssms2017.exe 到 d: empsystemssms2017.exe ...

    请等待 Microsoft SQL Server Management Studio 安装界面出现并完成交互

    Microsoft SQL Server Management Studio 安装完成

    火绒安全处理

    火绒安全安装完成后请先退出一次

    开始下载http://192.168.10.36/system/sysdiag.exe 到 d: empsystemsysdiag.exe ...

    请等待 火绒安全 安装界面出现并完成交互

    火绒安全 安装完成

     

     

    PS C:Windowssystem32>

    @@#

  • 相关阅读:
    C# 操作ACCESS数据库
    装饰模式(Decorator Pattern)
    桥接模式(Bridge Pattern)
    单件模式(Singleton Pattern)
    横竖不能重复的9个数,,,,,
    C#操作Access数据库的例子
    组合模式(Composite Pattern)
    建造者模式(Builder Pattern)
    工厂方法模式(Factory Method)
    外观模式(Façade Pattern)
  • 原文地址:https://www.cnblogs.com/QinQouShui/p/11038757.html
Copyright © 2020-2023  润新知