Blogg moved to www.forbergsit.se

As of today, ITHarri has moved to our new homepage. You will find mine and my colleagues blogs here: http://www.forbergsit.se/bloggar/

 

Automate the installation of Hyper-V VMintegration services with PowerShell

Tired of installing VM integration services manually in your Hyper-V environment? Here´s a script to help you with that!

Tip, this hotfix requires reinstallation of all your VMs integration services: Https://support.microsoft.com/en-us/kb/3063283

This script only works on x64 machines!

vmint

Begin Script
========================================================================================================

<#
Powershell Script for updating of Hyper-V Integration Services
2015-11-23 Harri Förberg, Förbergs IT AB
http://itharri.com

Välkommen


Warning, this script could potentially reboot a lot of VM:s in rapid succession. Use wisely, and with caution.
Prequisites: Mount and copy the contents of C:\Windows\System32\vmguest.iso (found on your Hyper-V host), copy the content to a shared folder on the server that will used to execute the script
C:\Temp\IntegrationSvc is used in the script below
— You might need to have you GPO:s adjusted to allow file copy from the server where you execute this script. —
#>

# Fill the latest Integration Services number here
$ICSVer = ”6.3.9600.17831” # This was the latest version 2015-11-23 (Delivered in a Hotfix – https://support.microsoft.com/en-us/kb/3063283)

#Specify your list of all Hyper-V Hosts
$HPVServer = ”HPV01” , ”HPV02” # <– Change to your servers

# Check all Running VM:s on all HPV hosts for ICS versions lower than our preset in line >> 13
$VMNames = Get-VM -ComputerName $HPVServer | ? {$_.IntegrationServicesVersion -lt $ICSVer -and $_.State -eq ”Running”} # This would be a good place to narrow your search parameters

# Check if any VM:s are in need of updating
if
($VMNames -eq $null) {Write-Host ”No VM:s detected with old versions” -ForegroundColor Red}
else
{
Write-Host ”Found VM:s with old Integration Services, starting upgrade process” -ForegroundColor Green

# Install Integration Services on VMs
foreach ($VirtualMachine in $VMNames)
{
$VMName = $VirtualMachine.VMName

# If copy fails here, check firewall rules on your client server.
write-host ”Copying installation files to $VMName
Copy-Item -Path C:\Scripts\IntegrationSvc -Destination ”\\$VMName\C$\temp\IntegrationSvc” -Recurse -Force
write-host ”Installing integration services…”
$scriptblock = {cmd.exe /C ”C:\Temp\IntegrationSvc\support\amd64\setup.exe /quiet /norestart”} # <– ADD or Remove /norestart if you want or dont want to reboot all VM:s after the installation completes!
Invoke-Command -scriptblock $scriptblock -computername $VMName
# Cleanup of copied installation files
write-host ”Cleanup…”
Remove-Item -Path ”\\$VMName\C$\temp\IntegrationSvc” -Recurse -Force
# Display Status
Write-Host $VMName updated” -ForegroundColor Green
}
}
Write-Host ”All done” -ForegroundColor DarkMagenta

========================================================================================================

End Script

Bra artikel om hur du övervakar RAM i VMs med dynamiskt minne

Jag har ofta fått förklara varför och hur det skiljer sig med dynamiskt minne, här är en riktigt bra och lättläst artikel i ämnet.

http://fastvue.co/tmgreporter/blog/understanding-hyper-v-dynamic-memory-dynamic-ram

12

Hur vi installerar en massa hotfixar utan WSUS via PowerShell

Markus Lassfolk har en bra blogpost som beskriver alla hotfixar som du borde ha i din Datacenterlösning. Han beskriver förvisso hur du kan få in dom i WSUS, men det är lite knepigt då vissa patchar helt enkelt inte finns i Windows Update Catalogue. (Ladda ner lämpliga hotfixar, och packa upp dom till en mapp)

Här har du en alternativ lösning som installerar hotfixarna från en central plats med hjälp av PowerShell. Den loggar vilka servrar du har installerat, samt visar feedback på hur installationen gick.

Lägger du till fler hotfixar i framtiden så kommer dom automatiskt att installeras om du kör om skriptet, utan att du behöver modifiera i skriptet dessutom. Packa bara upp MSU filerna till den delade katalogen.

script

Ett speciellt tack till Jimmy Veerman & Rickard Lundqvist på Förbergs IT som hjälpte till med Scriptet.

Åtgärda VMQ som har slutat fungera

Upptäckte att SCOM larmade en massa om event id 113 med ett meddelande likt:

Failed to allocate VMQ for NIC EDCED345-4C96-4C75-92A0-0C4FC5688F73–35BEB899-5BE9-4128-900A-6FE0BBFC7B22
(Friendly Name: Network Adapter) on switch DE4F3664-68D9-4781-825B-882A540FAB08 (Friendly Name: VM Switch).
Reason – Maximum number of VMQs supported on the Protocol NIC is exceeded. Status = Insufficient system
resources exist to complete the API.

En koll med PowerShell visar snabbt att VMQ inte fungerar alls se bilden nedan:

vmq_pre

Följande KB artikel beskriver problemet och en hotfix för lösningen: https://support.microsoft.com/en-us/kb/3001783

Ladda ner hotfixen här: https://support.microsoft.com/en-us/kb/3031598

Efter hotfixen syns VMQ som normalt igen!

vmq_after

Update Rollup 6 för System Center 2012 R2

Nu finns uppdateringarna i UR6 att ladda ner för System Center 2012 R2

Som vanligt gäller det att noggrant läsa på varje produkt och inte bara trycka in uppdateringarna vilt i produktion. För mera information läs på här: https://support.microsoft.com/en-us/kb/3051171 (Alla förutom SCCM)

Några axplock:

DPM – Stödjer nu SQL 2014 som databas server för DPM Servern. 15 fixar.

VMM – Azure Subscription – Styr dina VM:s i Azure! 46 fixar.

SCOM – Nya fixar och SSL3 fix för Linux/Unix övervakade maskiner.

 

Hjälp, klustret svarar inte!

Det är knappast en trevlig känsla när man inser att SCOM larmar, VMM säger att den inte har kontakt med Filservern, samt när du loggar in på SOFS klusternoderna, eller rättare sagt, från din administrationsmaskin startar Failover Cluster Manager och inser att du inte ens kan koppla upp dig mot klustret.

Följande har nu hänt mig ett par gånger hos lite olika kunder. Och lösningen är som tur är hyffsat enkel också.

  1.  Ha lite is i magen, dina VM:s snurrar, så diskarna är uppe. Andas ut och starta PowerShell.
  2. Kontrollera status för ditt kluster ”Get-Cluster samt Get-ClusterNode” är bra verktyg för det.
    1. Troligen visar den nu att båda är i state ”UP”
  3. Pausa ena klusternoden, Suspend-ClusterNode ”ServerNamn” -DrainRoles
  4. På den servern som du nu stoppade, så startar du om klustertjänsten ”Restart-Service ClusSvc”
  5. Starta klustret igen med ”Resume-ClusterNode ”ServerNamn”
  6. Upprepa sedan proceduren med den andra noden.

Nu kommer du att upptäcka att du kan starta GUI verktygen mot Klustret igen.

När läget är under kontroll, så kan det vara läge för lite standard MS felsökning, dvs pausa en av noderna och starta om dom vi ordning.

Varför inträffar detta då, jag har märkt detta vid hårvaru/nätverksproblem. Men det kan mycket väl vara andra orsaker som att klusternoderna har olika patchnivåer osv.

/itHarri

Kan inte göra ”Compliance Scan” av Hyper-V host i VMM

Jag har vi ett antal tillfällen sett hur VMM låser sig och vägrar låta compliance scans köras ordentligt. Oftast med ett felmeddelande som inte har med verkligheten att göra, typ:

Error (2927)
A Hardware Management error has occurred trying to contact server HOST .

WinRM: URL: [https://host:5986], Verb: [INVOKE], Method: [ScanForUpdates], Resource: [http://schemas.microsoft.com/wbem/wsman/1/wmi/root/scvmm/UpdateManagement]

Unknown error (0x8033800d)

Recommended Action
Check that WinRM is installed and running on server HOST. For more information use the command “winrm helpmsg hresult” and http://support.microsoft.com/kb/2742275 .

Ofta ligger grunden till problemet att Hyper-V hosten tagits in/ur en eller flera gånger från VMM. Då publiceras dubbletter i WSUS. Framförallt när Hyper-V hosten har tagits bort med -force, kanske blivit ominstallerad eller dylikt.

Lösningen är enkel, ta temporärt bort den trilskande Hyper-V hosten från din Update Baseline. Radera dator objektet från WSUS, och sedan lägg tillbaka servern i update baseline igen.

Capture

DPM 2012 (R2) Backup av Exchange 2013

Några steg som som får din Exchange backup att lyckas.

  1. Installera Visual C++ Redistributable for Visual Studio 2012 på DPM Servern
  2. Kopiera ese.dll samt eseutil.exe från Exchange servern till DPM
    • Från: ”\Program Files\Microsoft\Exchange Server\V15\Bin”
    • Till: ”\Program Files\Microsoft System Center 2012 R2\DPM\DPM\bin”
  3. Om din Exchange Server är virtuell och du redan kör en Hyper-V backup av den, se till att den agenbaserade backupen inte krockar med det schemat (och låser databasen när du ska ta backup på den)

Felmeddelande du får om du inte har VCRedist installerat lyder såhär: ”Data consistency verification check failed for LOGS of Exchange Mailbox Database <Database Name> (ID 30146 Details: The extended attributes are inconsistent (0xFF))

Hitta & byt ut dåliga HDD i Storage Spaces

Min labserver hade börjat bete sig ”underligt” och till slut kom jag fram till att en hårddisk hade börjat få många läsfel. Nedan en kort beskrivning om hur du kan felsöka och byta ut diskar i Storage Spaces.

diskhealth

Två av hårddiskarna vägrar att svara på storage health rapporten, så dessa är troligen ganska rökta, låt oss kolla vad loggboken säger.

Misstankarna blir bekräftade här, så vi byter båda dessa diskarna. Den första disken rasade redan för ett par veckor sedan och jag tog den ur drift (och gjorde en repair)

Men nu har alltså en disk till rasat under tiden jag fixat fram en reservdisk. Så jag kommer börja med att byta ut min disk som är ”Retired” med en helt ny disk, sedan kommer jag byta ut disk nummer två.

Bytte sedan hårddisken, och startade en reparation av den virtuella disken.

Kollade i loggen, det här gick ju inget vidare, speciellt med tanke på att det sitter en helt tom disk i poolen…

Då min andra hårddisk fortfarande bråkade beslutade jag för att sätta även den som retired nu.

Get-PhysicalDisk PhysicalDisk5 | Set-PhysicalDisk -Usage Retired

Jag tog sedan bort den första av mina ”Retired Disks, den jag fysiskt bytt ut. (Viktigt, när denna rasade, hade jag redan slutfört ett ”repair job”, ta inte bort en retired disk innan du ombalanserat diskarna, även om du rent fysiskt tagit bort disken!

Körde sedan om repair jobbet, som kickade igång fint denna gången.

 

Bonus material

Vill du larma om diskar över mail? (Om du nu mot förmodan inte har SCOM för detta)

Spara nedan till en ps1 fil, aktivera sedan den från Eventloggen som en eventrigger

$diskinfo Get-WinEvent -LogName ”Microsoft-Windows-StorageSpaces-Driver/Operational” ID -EQ ”203” select -First FL Out-String
$smtp New-Object Net.Mail.SmtpClient(”yourmailserver.mail.protection.outlook.com”$smtp.Send(”DiskAlert@yourdomain.com”,”itharri@yourdomain.com”,”Diskfailure”,$diskinfo)

 

Låt den sedan öppna din PowerShell snurra för att skicka larm.