feat(tplus): 新增同步暂存与任务管理迁移和环境配置
This commit is contained in:
1 parent
823d9f02ec
commit
78bef43c06
29 files changed
+1326
-5
No files matched your search
@@ -0,0 +1,37 @@
|
||||
[CmdletBinding()]
|
||||
param(
|
||||
[string]$VmName = "tplus-sql2008r2-test",
|
||||
[string]$Root = "D:\work\app\tplus-vm",
|
||||
[string]$WindowsIso = ""
|
||||
)
|
||||
Set-StrictMode -Version Latest
|
||||
$ErrorActionPreference = "Stop"
|
||||
$rootPath = [IO.Path]::GetFullPath($Root)
|
||||
if (-not $rootPath.StartsWith("D:\work\app\", [StringComparison]::OrdinalIgnoreCase)) {
|
||||
throw "虚拟机目录必须位于 D:\work\app 下。"
|
||||
}
|
||||
if ($WindowsIso -and -not (Test-Path -LiteralPath $WindowsIso -PathType Leaf)) {
|
||||
throw "Windows 安装介质不存在。"
|
||||
}
|
||||
if (Get-VM -Name $VmName -ErrorAction SilentlyContinue) {
|
||||
throw "同名虚拟机已存在,拒绝覆盖。"
|
||||
}
|
||||
if ((Get-PSDrive D).Free -lt 40GB) { throw "D 盘剩余不足 40GB,暂不创建测试环境。" }
|
||||
New-Item -ItemType Directory -Path $rootPath -Force | Out-Null
|
||||
$disk = Join-Path $rootPath "sqlserver2008r2.vhdx"
|
||||
if (Test-Path -LiteralPath $disk) { throw "测试磁盘已存在,拒绝覆盖。" }
|
||||
New-VHD -Path $disk -SizeBytes 64GB -Dynamic | Out-Null
|
||||
$vm = New-VM -Name $VmName -Generation 1 -MemoryStartupBytes 4GB `
|
||||
-VHDPath $disk -Path $rootPath
|
||||
Set-VM -VM $vm -ProcessorCount 2 -AutomaticStartAction Nothing `
|
||||
-AutomaticStopAction ShutDown -CheckpointType Disabled `
|
||||
-SnapshotFileLocation $rootPath -SmartPagingFilePath $rootPath
|
||||
# 来宾系统尚未安装,先断开网卡,不改 Docker/WSL 的交换机。
|
||||
Get-VMNetworkAdapter -VM $vm | Disconnect-VMNetworkAdapter
|
||||
if ($WindowsIso) {
|
||||
Add-VMDvdDrive -VM $vm -Path $WindowsIso | Out-Null
|
||||
}
|
||||
Get-VM -Name $VmName | Select-Object Name, State, Generation, Path
|
||||
Get-VMHardDiskDrive -VMName $VmName | Select-Object Path
|
||||
Write-Host "仅创建了未启动的虚拟机和动态磁盘,未安装 Windows 或 SQL Server。"
|
||||
Write-Host "需授权 Windows x64 和 SQL Server 2008 R2 安装介质,不能用 Express 承载此大账套。"
|
||||
Reference in new issue
Block a user