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:

  1. PowerShell is wonderful for these kinds of bulk operations
  2. 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

Zdroj: http://support.microsoft.com/kb/2249906/en-us

Jednoduchá konzole pro správu

Hyper-V Guest Console

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í

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

  1. 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 offRemote Server Administation ToolsRole Administation ToolsHyper-V Tools
  2. Pomocí utilitky HVRemote1) spustit v příkazovém řádku (s administratorským oprávněním) tyto dva příkazy
    cscript hvremote.wsf /mmc:enable
    cscript hvremote.wsf /anondcom:grant
  3. 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)
    1. stáhnout Elevation PowerToy resp. zde a elevate.cmd a elevate.vbs zkopírovat do C:\Windows
    2. pak Hyper-V Manager můžeme spustit2)
      runas /savecred /user:myshcz$ "elevate.cmd mmc \"C:\Program Files\Hyper-V\virtmgmt.msc\""
    3. 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

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

Zdroj: http://blogs.msdn.com/dimeby8/archive/2009/06/10/change-unidentified-network-from-public-to-work-in-windows-7.aspx

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")
windows/hyper-v-server.txt · Poslední úprava: 28.01.2017 23:19 autor: vm

Nástroje pro stránku