操作系統: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腳本
$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
}
}
@@#
數據庫配置文件
;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"
@@#
輸出
文件夾處理
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>
@@#