使用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

 
 

火绒安全

个人版 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

 

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

# 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")

$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 "防火墙处理"

DisableAllFirewallRule 3389

OpenFirewall sqlServer 1436 tcp

OpenFirewall BandService 3410-3415 tcp

OpenFirewall logServerWeb 5881 tcp

OpenFirewall logServer 5880 udp

 

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

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

Write-Host "TelnetClient 已安装"

}

else{

Install-WindowsFeature "telnet-client"

}

 

if ($installDotnet462 -eq 1){

Write-Host "dotnet处理"

$dotVersion =HasDotnetVersion 0 461814

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"

}

}

 

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

}

$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 ($installHyperV -eq 1){

$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

}

}

 

@@#

 

 

数据库配置文件

@@@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

文件夹处理

Winrar已安装 winrar.exe

安装火狐浏览器

Winrar已安装在 C:\Program Files (x86)\Mozilla Firefox\firefox.exe|Browser

防火墙处理

禁用防火墙 核心网络 – 组策略(NP-Out)    

禁用防火墙 运维专用

禁用防火墙 sqlServer

禁用防火墙 BandService

禁用防火墙 logServerWeb

禁用防火墙 logServer

开放服务运维专用端口3389,tcp

开放服务sqlServer端口1436,tcp

开放服务BandService端口3410-3415,tcp

开放服务logServerWeb端口5881,tcp

开放服务logServer端口5880,udp

TelnetClient 已安装

dotnet处理

已安装DotNet 4.7.03190

IIS处理

 

Success Restart Needed Exit Code Feature Result

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

True No NoChangeNeeded {}

True No NoChangeNeeded {}

True No NoChangeNeeded {}

Web 服务器(IIS) 安装完成

dotnetcore处理

已存在d:\temp\system\dotnetcoresdk-2.2.104.exe,比对中...

d:\temp\system\dotnetcoresdk-2.2.104.exe 文件hash相同,无需下载

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

DotnetCoreSDK 安装完成

已存在d:\temp\system\dotnet-hosting-2.1.7-win.exe,比对中...

d:\temp\system\dotnet-hosting-2.1.7-win.exe 文件hash相同,无需下载

请等待 DotnetCore IIS Hosting 安装界面出现并完成交互

DotnetCore IIS Hosting 安装完成

处理C++2017运行时

Visual C++ Redistributable 14.16.27024 已安装

SQL2016 处理

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

d:\temp\system\sql2016_deve_sp2.iso 文件hash相同,无需下载

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

d:\temp\system\sql2016_deve_sp2.iso.ini 文件hash相同,无需下载

从配置文件 d:\temp\system\sql2016_deve_sp2.iso.ini 安装SQLServer,使用了静默安装企业版本,后续需要更换正式的授权序列号

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

 

Attached : True

BlockSize : 0

DevicePath : \\.\CDROM1

FileSize : 3217154048

ImagePath : d:\temp\system\sql2016_deve_sp2.iso

LogicalSectorSize : 2048

Number : 1

Size : 3217154048

StorageType : 1

PSComputerName :

 

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

 

CodeBase : file:///C:/Windows/assembly/GAC_MSIL/Microsoft.SqlServer.SqlWmiManagement/13.0.0.0__89845dcd8080cc91/Microsoft.SqlServer.SqlWmiManagement.dll

FullName : Microsoft.SqlServer.SqlWmiManagement, Version=13.0.0.0, Culture=neutral, PublicKeyToken=89845dcd8080cc91

EntryPoint :

DefinedTypes : {AssemblyVersionInfo, Microsoft.SqlServer.Management.Smo.Wmi.WmiSmoObject, Microsoft.SqlServer.Management.Smo.Wmi.ProtocolBase, Microsoft.SqlServer.Management.

Smo.Wmi.ClientProtocol...}

Evidence : {<System.Security.Policy.GacInstalled version="1"/>

, <StrongName version="1"

Key="0024000004800000940000000602000000240000525341310004000001000100272736AD6E5F9586BAC2D531EABC3ACC666C2F8EC879FA94F8F7B0327D2FF2ED523448F83C3D5C5DD2DFC7BC99

C5286B2C125117BF5CBE242B9D41750732B2BDFFE649C6EFB8E5526D526FDD130095ECDB7BF210809C6CDAD8824FAA9AC0310AC3CBA2AA0523567B2DFA7FE250B30FACBD62D4EC99B94AC47C7D3B28F

1F6E4C8"

Name="Microsoft.SqlServer.SqlWmiManagement"

Version="13.0.0.0"/>

, <System.Security.Policy.Url version="1">

<Url>file:///C:/Windows/assembly/GAC_MSIL/Microsoft.SqlServer.SqlWmiManagement/13.0.0.0__89845dcd8080cc91/Microsoft.SqlServer.SqlWmiManagement.dll</Url>

</System.Security.Policy.Url>

, <System.Security.Policy.Zone version="1">

<Zone>MyComputer</Zone>

</System.Security.Policy.Zone>

...}

PermissionSet : {}

SecurityRuleSet : Level1

ManifestModule : Microsoft.SqlServer.SqlWmiManagement.dll

ReflectionOnly : False

Location : C:\Windows\assembly\GAC_MSIL\Microsoft.SqlServer.SqlWmiManagement\13.0.0.0__89845dcd8080cc91\Microsoft.SqlServer.SqlWmiManagement.dll

ImageRuntimeVersion : v2.0.50727

GlobalAssemblyCache : True

HostContext : 0

IsDynamic : False

EscapedCodeBase : file:///C:/Windows/assembly/GAC_MSIL/Microsoft.SqlServer.SqlWmiManagement/13.0.0.0__89845dcd8080cc91/Microsoft.SqlServer.SqlWmiManagement.dll

ExportedTypes : {Microsoft.SqlServer.Management.Smo.Wmi.WmiSmoObject, Microsoft.SqlServer.Management.Smo.Wmi.ProtocolBase, Microsoft.SqlServer.Management.Smo.Wmi.ClientProtoco

l, Microsoft.SqlServer.Management.Smo.Wmi.ProviderArchitecture...}

IsFullyTrusted : True

CustomAttributes : {[System.Runtime.CompilerServices.InternalsVisibleToAttribute("XMDocuments, PublicKey=0024000004800000940000000602000000240000525341310004000001000100272736ad6

e5f9586bac2d531eabc3acc666c2f8ec879fa94f8f7b0327d2ff2ed523448f83c3d5c5dd2dfc7bc99c5286b2c125117bf5cbe242b9d41750732b2bdffe649c6efb8e5526d526fdd130095ecdb7bf210

809c6cdad8824faa9ac0310ac3cba2aa0523567b2dfa7fe250b30facbd62d4ec99b94ac47c7d3b28f1f6e4c8")], [System.Runtime.CompilerServices.RuntimeCompatibilityAttribute(Wra

pNonExceptionThrows = True)], [System.Runtime.InteropServices.ComVisibleAttribute((Boolean)True)], [System.CLSCompliantAttribute((Boolean)True)]...}

Modules : {Microsoft.SqlServer.SqlWmiManagement.dll}

 

SSMS处理

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

d:\temp\system\ssms2017.exe 文件hash相同,无需下载

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

Microsoft SQL Server Management Studio 安装完成

HyperV已安装

 

 

 

PS C:\Windows\system32>

@@#

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章