Obsah
Hyper-V Server
Replace VHD path on VM
to fix up the paths for the VM’s after moving from one volume to another:
$oldPath = "C:\Users\Public\Documents\Hyper-V\Virtual Hard Disks" $newPath = "D:" get-vm | Get-VMHardDiskDrive | ? path -Like $path* | %{Set-VMHardDiskDrive -VMHardDiskDrive $_ -Path $_.path.Replace($oldPath, $newPath)}
A couple of details on this answer:
- PowerShell is wonderful for these kinds of bulk operations
- While we do not allow you to edit the virtual hard disk path on a saved virtual machine using Hyper-V manager – we do allow you to do this through PowerShell. In fact – there are a lot of things that are blocked in Hyper-V manager that are possible through PowerShell.
Boot from USB
Inject drivers to VHD image
Mount-VHD -Path "E:\hyperV.vhd"
single driver
Dism /Image:C:\test\offline /Add-Driver /Driver:C:\drivers\mydriver.inf
recursive
Dism /Image:F:\ /Add-Driver /Driver:e:\2012r2 /Recurse
Dismount image
Dismount-VHD -Path "E:\hyperV.vhd"
Po zkopírování VHD chybí práva
Je třeba přidat uživateli NT VIRTUAL MACHINE\<ID> full access práva na daný vhd soubor:
icacls <Path of .vhd or .avhd file> /grant "NT VIRTUAL MACHINE\<Virtual Machine ID>":F
Jednoduchá konzole pro správu
dism /online /enable-feature /featurename:NetFx2-ServerCore dism /online /enable-feature /featurename:NetFx3-ServerCore
Zdroj: http://www.altaro.com/hyper-v/enabling-hyper-v-guest-console-in-server-core-2/
Import VM bez předchozího exportu
Hyper-V z flash disku
Krok za krokem postup je na http://technet.microsoft.com/en-us/library/ee731893(v=ws.10).aspx
Instalace Hyper-V serveru na FLASH disk http://blogs.msdn.com/b/virtual_pc_guy/archive/2009/11/18/booting-hyper-v-r2-off-a-usb-stick.aspx
http://technet.microsoft.com/en-us/library/jj733589.aspx – doplnění pro verzi 2012
http://social.technet.microsoft.com/wiki/contents/articles/121.aspx – This is a list of tools, resources, and external links to download and learn about those tools.
iSCSI
Připojení disku
potřeba nastartovat službu pro iSCSI
sc config MSiSCSI start= auto net start MSiSCSI
nastavit správné závislosti služeb pro iSCSI (u LanManServeru), pozor, pokud se nastaví špatné závislosti pro lanman službu, tak přestanou fungovat sdílené složky.
sc config lanmanserver depend= SamSS/Srv/MSiSCSI
Poznámky k lanman:
a pak přes GUI program na R2 přidat samotné targety
iscsicpl
příprava disku
inicializace disku RAW disku http://social.technet.microsoft.com/Forums/en/winserverfiles/thread/0eb69611-487a-4ae4-95ed-339263c5582a
DISKPART> RESCAN DISKPART> SELECT DISK n DISKPART> ONLINE DISK DISKPART> CONVERT MBR DISKPART> OFFLINE DISK
offline na konci je proto, aby šel dát jako pass through k virtuálu (a bootovací dávat jen na ATA Controller)
If the Pass-through disk will be used to boot the operating system, it must be attached to an IDE Controller. Data disks can take advantage of SCSI controllers.
pripadne: http://blogs.technet.com/b/askcore/archive/2008/10/24/configuring-pass-through-disks-in-hyper-v.aspx
K projítí
http://projectdream.org/wordpress/2009/07/31/hyper-v-server-2008-r2-live-migration-failover-clustering/ http://www.markwilson.co.uk/blog/2009/07/running-windows-from-a-usb-flash-drive.htm http://blogs.technet.com/stephenrose/archive/2009/07/28/a-bootable-usb-utility-to-create-bootable-usb-drives-for-win-7-and-server-2008.aspx http://www.mydigitallife.info/2009/07/15/how-to-install-windows-7-or-vista-from-bootable-portable-usb-flash-memory-key-or-hard-disk-drive/ http://blogs.technet.com/askcore/archive/2008/10/24/configuring-pass-through-disks-in-hyper-v.aspx
PowerShell na serveru
Hyper-V Server R2 už má v sobě PowerShell, spustit se dá takto:
Aby to fungovalo, tak je třeba:
start /w ocsetup MicrosoftWindowsPowerShell
Potom si otevřeme PowerShell okno takto:
start C:\Windows\System32\WindowsPowerShell\v1.0\PowerShell.exe
Vzdálená správa
Jak ovládat Hyper-V server z Windows 7
- pro vzdálenou správu z Windows 7 je potřeba nainstalovat Remote Server Administration Tools a pak povolit v Turn Windows Features on or off → Remote Server Administation Tools → Role Administation Tools → Hyper-V Tools
- Vytvořit na serveru i na klientovi stejné uživatelské účty (jméno i heslo). Nyní se buď na klientovi na tento vytvořený účet přihlásit a používat z něj, nebo pro větší pohodlí můžeme využít možnosti runas. (elevate.cmd je nutný jen pokud máme zaplé UAC)
- stáhnout Elevation PowerToy resp. zde a elevate.cmd a elevate.vbs zkopírovat do C:\Windows
- pak Hyper-V Manager můžeme spustit2)
runas /savecred /user:myshcz$ "elevate.cmd mmc \"C:\Program Files\Hyper-V\virtmgmt.msc\""
- můžeme si vytvořit zástupce s odkazem na
C:\Windows\System32\cmd.exe /s /c "runas /savecred /user:myshcz$ "elevate.cmd mmc \"C:\Program Files\Hyper-V\virtmgmt.msc\"""
(/savecred uloží heslo na které se poprvé zeptá) a ikonkou z %ProgramFiles%\Hyper-V\SnapInAbout.dll
Management
- http://msdn.microsoft.com/en-us/library/cc723869(VS.85).aspx
PowerShell a firewall
$NLMType = [Type]::GetTypeFromCLSID(‘DCB00C01-570F-4A9B-8D69-199FDBA5723B’) $INetworkListManager = [Activator]::CreateInstance($NLMType) $NLM_ENUM_NETWORK_CONNECTED = 1 $NLM_NETWORK_CATEGORY_PUBLIC = 0x00 $NLM_NETWORK_CATEGORY_PRIVATE = 0x01 $INetworks = $INetworkListManager.GetNetworks($NLM_ENUM_NETWORK_CONNECTED) foreach ($INetwork in $INetworks) { $Category = $INetwork.GetCategory() if (!$INetwork.IsConnectedToInternet -and ($Category -eq $NLM_NETWORK_CATEGORY_PUBLIC)) { $INetwork.SetCategory($NLM_NETWORK_CATEGORY_PRIVATE) } }
uložit jako firewall.ps1 (důležitá je přípona ps1) a pak spustit
powershell.exe c:\firewall.ps1
v PS> je třeba ještě povolit spuštění
PS> set-executionpolicy remotesigned
a pro private profil vypnout firewall
netsh advfirewall set privateprofile state off
Pravidelný restart
$daily2AM = New-JobTrigger -Daily -At "2:00 AM" Register-ScheduledJob -Name RestartMujPC123 -ScriptBlock {Restart-VM "MujPC 123" -Force} -Trigger $daily2AM
Povolit Ping i pro Public profil firewallu
pro připojení do internetu používáme Public profile firewallu, který ve výchozím neodpovídá na ping, to jde změnit takto
netsh firewall set icmpsetting 8
pro zakázání
netsh firewall set icmpsetting 8 disable
resp.
netsh advfirewall firewall add rule name=”ICMP Allow incoming V4 echo request” protocol=icmpv4:8,any dir=in action=allow
netsh cheat
netsh interface ipv4 show interfaces netsh interface ipv4 set address name="" source=static address= mask= gateway=
Where:
- ID is the number from step 2 above
- StaticIP is the static IP address that you are setting
- SubnetMask is the subnet mask for the IP address
- DefaultGateway is the default gateway
Připojení k Server Manageru
na počítači, ze kterého se připojujeme musíme Hyper-V server dát mezi Trusted Hosts, což jde pomocí příkazu
winrm set winrm/config/client @{TrustedHosts="jmeno-hyperv-serveru")