Skip to content

Instantly share code, notes, and snippets.

@numbnet
Last active May 18, 2021 08:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save numbnet/69c39dbf2dba38abf509b4534c8c6c3b to your computer and use it in GitHub Desktop.
Save numbnet/69c39dbf2dba38abf509b4534c8c6c3b to your computer and use it in GitHub Desktop.
##*********************** ≠≠≠≠ ***********************
## start as ADMIN
$currentUser = New-Object Security.Principal.WindowsPrincipal $([Security.Principal.WindowsIdentity]::GetCurrent())
$testadmin = $currentUser.IsInRole([Security.Principal.WindowsBuiltinRole]::Administrator)
if ($testadmin -eq $false) {
Start-Process powershell.exe -Verb RunAs -ArgumentList ('-noprofile -noexit -file "{0}" -elevated' -f ($myinvocation.MyCommand.Definition))
exit $LASTEXITCODE
}
##################################################################
## Включение компонента Hyper-V
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
## DISM /Online /Enable-Feature /All /FeatureName:Microsoft-Hyper-V ## через CMD
##################################################################
## Создание и настройка виртуальной машины
##################################################################
##***********************************************************
## виртуальный диск в формате VHDX
New-Item -Path $env:SYSTEMDRIVE\ -Name 'VHD' -ItemType Directory;
$VDName = "B"
$Letter = "B"
$vhdpath = "$env:SYSTEMDRIVE\VHD\${VDName}.vhdx";
$vhdsize = 512GB
$vhdBSize = 33554432
$PCName = "$env:COMPUTERNAME"; echo $PCName
$vhdPSSize = 4096
$vhdLSSize = 512
Start-Sleep -m 5000;
New-VHD -Path $vhdpath -Dynamic -SizeBytes $vhdsize -BlockSizeBytes $vhdBSize -ComputerName $PCName -LogicalSectorSizeBytes $vhdLSSize -PhysicalSectorSizeBytes $vhdPSSize | Mount-VHD -Passthru | Initialize-Disk -Passthru | New-Partition -DriveLetter ${Letter} -UseMaximumSize | Format-Volume -FileSystem NTFS -Confirm:$false -Force
<#
New-VHD -Path $vhdpath -Dynamic -SizeBytes $vhdsize -BlockSizeBytes $vhdBSize -ComputerName $PCName -LogicalSectorSizeBytes $vhdLSSize -PhysicalSectorSizeBytes $vhdPSSize | Mount-VHD -Passthru | Initialize-Disk -Passthru | New-Partition -DriveLetter A -UseMaximumSize | Format-Volume -FileSystem NTFS -Confirm:$false -Force
или
New-VHD -Path $vhdpath -Dynamic -SizeBytes $vhdsize -BlockSizeBytes $vhdBSize -ComputerName $PCName -LogicalSectorSizeBytes $vhdLSSize -PhysicalSectorSizeBytes $vhdPSSize | Mount-VHD -Passthru | Initialize-Disk -Passthru | New-Partition -AssignDriveLetter -UseMaximumSize | Format-Volume -FileSystem NTFS -Confirm:$false -Force
#echo "== Remove $vhdpath =="; pause; Remove-Item -Path $vhdpath -Recurse;
$vhdpath = "$env:SYSTEMDRIVE\VHD\base.vhds"
New-VHD -Path $vhdpath -SizeBytes 10GB -BlockSizeBytes 33554432 -ComputerName NN -Confirm -Dynamic -LogicalSectorSizeBytes 512 -PhysicalSectorSizeBytes 4096
Remove-VMHardDiskDrive existing.vhdx
Remove-VMHardDiskDrive -VMHardDiskDrive existing.vhdx
Convert-VHD existing.vhdx new.vhds
Add-VMHardDiskDrive new.vhds
pause
Remove-Item -Path $vhdpath -Recurse;
#>
##################################################################
# Создание виртуального коммутатора с помощью PowerShell
Get-NetAdapter
#Выберите сетевой адаптер для использования с коммутатором Hyper-V и разместите экземпляр в переменной с именем $net.
$net = Get-NetAdapter -Name 'Ethernet' || $net = Get-NetAdapter -Name 'Ethernet 2' || $net = Get-NetAdapter -Name 'Lan';
#Выполните следующую команду, чтобы создать новый виртуальный коммутатор Hyper-V.
Remove-VMSwitch -Name "External VM Switch";
New-VMSwitch -Name "External VM Switch" -AllowManagementOS $True -NetAdapterName $net.Name
<#
#Виртуальная сеть на ноутбуке
режим NAT.
Механизм преобразования сетевых адресов (NAT) предоставляет виртуальной машине доступ к сети вашего компьютера путем объединения IP-адреса главного компьютера с портом через внутренний виртуальный коммутатор Hyper-V.
У этого механизма есть ряд полезных возможностей.
NAT экономит IP-адреса за счет сопоставления внешнего IP-адреса и порта с гораздо большим набором внутренних IP-адресов.
NAT позволяет нескольким виртуальным машинам размещать приложения, которым требуются одинаковые (внутренние) порты связи, сопоставляя их с уникальными внешними портами.
NAT использует внутренний коммутатор. После создания внутреннего коммутатора вы можете не использовать сетевое подключение. Кроме того, за счет этого снижается нагрузка на сет компьютера.
Чтобы настроить сеть NAT и подключить ее к виртуальной машине, см. Руководство пользователя по созданию сети NAT.
Подход с использованием двух коммутаторов
Если вы используете Hyper-V в Windows 10 на ноутбуке и часто переключаетесь между беспроводной и проводной сетями, вы можете создать виртуальный коммутатор как для сетевой карты Ethernet, так и для карты беспроводной сети. В зависимости от того, как ноутбук подключается к сети, можно переключать виртуальные машины между этими коммутаторам. Виртуальные машины не переключаются между проводными и беспроводными сетями автоматически.
Важно!
Подход, при котором задействованы два коммутатора, не поддерживают внешний виртуальный коммутатор с использованием платы беспроводных сетей. Такой подход следует использовать только для тестирования.
#################################################
## Следующий шаг — создание виртуальной машины
#>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment