Bloggarkiv

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.

Annonser

Exchange 2013 uppdraget jag gjorde har släppts som pressrelease

Kul Exchange 2013 uppdrag, genomfördes direkt efter CU1 släpptes! Extra roligt var att jag fick chansen att genomföra en massa PowerShell automation, till exempel när Skolelever ska läggas till, eller vad sägs om en helt PowerShell baserad dokumentation som dessutom uppdaterar sig själv en gång i månaden, smidigt om man vill backa några månader och se om nåt har förändrats i miljön 🙂

Powershell Pingverktyg

Jag brukar använda ett skript som är enkelt anpassningsbart för att snabbt pinga många maskiner, användbart när man vill testa att alla maskinerna svarar på Ping efter en live migration från en host till en annan.

Du har två lägen som du kan köra:

Ett: Pinga alla maskiner som är startade (hittar automatiskt alla VM:s som du har)

Två: Pinga alla maskiner utifrån en textfil (Givetvis finns en oneliner för att automatiskt fylla listan åt dig!)

Jag brukar skapa en CMD fil i skriptkatalogen som startar PowerShell Skriptet, sedan brukar jag skapa en länk till skrivbordet, sätta lämpligt namn & en snygg ikon på den. Då har du den alltid lätt tillgänglig.

Skript 1, Pinga alla VM:s som är startade

#### Ping all computers
#
# Load Virtual Machine Manager Commandlets
ipmo
virtualmachinemanager

# Ping all Running VM:s
Write-Host
”Pinging all Running VM:s”
$VM
= ((Get-SCVirtualMachine | ? Status -EQ ”Running”).Name)

foreach ($name in $VM)
{
if ( Test-Connection -ComputerName $name -Count 1 -ErrorAction SilentlyContinue ) {
Write-Host $name is up” -ForegroundColor Green
}
else {
Write-Host $name is down” -ForegroundColor Red
}
}

Skript 2, Pinga efter en textfil:

#### Ping all computers in textfile
#
# First get a list of all your computers to the textfile (remove # first, the edit the list to your liking)
# (Get-SCVirtualMachine | where {$_.VirtualizationPlatform -eq ”HyperV”}).ComputerName > C:\script\computers.txt

### or this if you only have one Hyper-V host (w/o SCVMM)
# (get-vm).Name > C:\script\computers.txt

### Then ping all computers in this list

$names = Get-Content ”C:\script\computers.txt”

foreach ($name in $names) {
if ( Test-Connection -ComputerName $name -Count 1 -ErrorAction SilentlyContinue ) {
Write-Host $name is up” -ForegroundColor Green
}
else {
Write-Host $name is down” -ForegroundColor Red
}
}

Problemlösning i Hyper-V/VMM 2012 Sp1

Jag har samlat på mig lite information om problemlösning jag råkat ut för senaste tiden.

  1. SQL 2012 SP1 loopar Windows Installer och ställer till problem.
  2. Monterad DVD krachar VMM 2012 Sp1 konsolen & tjänsten.
  3. Låsta objekt i SQL gör att VMM 2012 jobb inte går att starta.
  4. Korrupta VM:s går ej att ta bort från Hyper-V/VMM

1. SQL 2012 SP1 loopar Windows Installer och ställer till problem

Det finns en hel del buggar i SQL 2012 SP1, varar den värsta är att den krachar VMM m.fl. System Center 2012 produkter där Windows Installer går i evighetsloop.
Nu finns den en stor uppdatering med flertalet buggfixar, inklusive en fix på Windows Installer felet. Speciellt alla ni som kör System Center på SQL 2012 SP1 bör uppdatera till denna snarast.

Den finns inte på Windows Update än, men sök på kb2790947 på http://catalog.update.microsoft.com så får ni ner den. Jag rekommenderar dessutom denna väg då manuell installation av RU2 är att föredra före Windows Update då den ger mera feedback på SQL uppdateringen.

För att kontrollera om din SQL 2012 behöver uppdateras, öppna SQL management tool så ser du versionsnumret i ”roten”

Här har du en opatchad SQL 2012 med SP1 (11.0.3000)

Efter patchning av SQL skall du ha versionnummer 11.0.3339 (för RU2)

2. Monterad DVD krachar VMM 2012 Sp1 konsolen & tjänsten.

Problemet uppkommer när man kör Hyper-V i kluster och en DVD monteras lokalt via Hyper-V Managern, till exempel installationen av Hyper-V tools och sedan har man glömt bort att skicka DVD:n efteråt. I sig själv skulle detta inte vara ett så stort problem, men nu leder detta till av VMM krachar varje gång den kör en ”refresh” av VM:s. Detta inträffar även med senaste rollupen (2) för VMM & alla nu tillgängliga patchar i Windows/SQL/VMM.

För att underlätta så har jag skrivit en PowerShell OneLiner som listar alla DVD som är monterade i din Hyper-V miljö.

# Hämta alla VMs i listformat från Hyper-V (körs på VMM servern)
Get-Module -ListAvailable *virtual* | import-moduleGet-SCVirtualMachine | where {$_.VirtualizationPlatform -eq ”HyperV”} | Get-SCVirtualDVDDrive | where {$_.Connection -ne ”None”} | FL Name, Connection

Följande fel (EventID 1000 samt 1026) loggas i VMM när felet inträffar, jag rekommenderar starkt att ni väljer att larma från OpsMgr när detta händer.

3. Låsta objekt i SQL gör att VMM 2012 jobb inte går att starta.

När du startart ett nytt jobb i System Center 2012 Virtual Machine Manager så får du felkoden ”Error 2606”. Nedan två artiklar hjälpte mig enkelt vidare.

Jag stötte på detta när jag skulle patcha en host och satte den i ”Maintenance Mode”, men efter omstarten så kunde jag inte göra ”Stop Maintenance mode” då den påstod att ett jobb i VMM låste hosten. Så var inte fallet, men i SQL fanns en låsning, följde artikeln nedan och sedan fungerade det direkt!

http://www.mssqltips.com/sqlservertip/2732/different-techniques-to-identify-blocking-in-sql-server/
http://support.microsoft.com/kb/2795040

4. Korrupta VM:s går ej att ta bort från Hyper-V/VMM

Om en VM av nån anledning har blivit oåterkalleligen förstörd, och dessutom inte går att ta bort från Hyper-V/VMM då återstår hårdare tag. Länken nedan beskriver hur du går till väga.
http://blogs.technet.com/b/chrad/archive/2010/06/24/hyper-v-can-t-delete-virtual-machine-with-opertion-cannot-be-performed-while-the-object-in-current-state.aspx

Om korruptionen är så omfattande att det inte ens går starta VMM så kan du behöva ta bort VM:en från SQL databasen direkt, se nedan länk.
http://blogs.technet.com/b/scvmm/archive/2009/04/30/fixing-an-incomplete-vm-that-s-stuck-in-the-creating-state.aspx

Och till sist, lyckas inga av ovanstående kan du alltid ta kontakt med mig J

/Harri

VMM 2012 PowerShell Flyttskript

Många gånger i VMM har jag stött på att jag vill flytta alla maskiner till ny lagring, göra maskinerna till ”Highly Available”  eller dylikt. Här kommer ett enkelt skript som enkelt kan modifieras för alla dessa behov.

 

Get-Module -ListAvailable *virtual* | import-module
$VMHost = Get-SCVMHost -VMMServer vmm1 | where {$_.Name -eq ”hv1.domain.com”}
$VM = Get-SCVirtualMachine | where {$_.IsHighlyAvailable -eq $true}
foreach ($obj in $VM)
    {
Move-SCVirtualMachine -VM $obj -VMHost $VMHost -HighlyAvailable $false -Path ”M:\Hyper-V_5TB” -RunAsynchronously -UseLAN
write-host $obj
    }

Bonuskript: OneLiner för att se vart alla VMs VHD(x) Filer är upplagda på en specifik host:

(Get-SCVirtualMachine | where {$_.VMHost -eq ”hv1.domain.com”}) | Get-SCVirtualHardDisk | Sort-Object -Property Location | FT Location

Förenklad Exchange 2013 installation

För en snabb och smidig Ex2013 installation

Samma kommando för Ex 2013 CAS, MBX eller CAS/MBX rollerna.

Import-Module ServerManager ; Install-WindowsFeature AS-HTTP-Activation,Desktop-Experience,NET-Framework-45-Features,RPC-over-HTTP-proxy,RSAT-Clustering,RSAT-Clustering-CmdInterface,RSAT-Clustering-Mgmt,RSAT-Clustering-PowerShell,Web-Mgmt-Console,WAS-Process-Model,Web-Asp-Net45,Web-Basic-Auth,Web-Client-Auth,Web-Digest-Auth,Web-Dir-Browsing,Web-Dyn-Compression,Web-Http-Errors,Web-Http-Logging,Web-Http-Redirect,Web-Http-Tracing,Web-ISAPI-Ext,Web-ISAPI-Filter,Web-Lgcy-Mgmt-Console,Web-Metabase,Web-Mgmt-Console,Web-Mgmt-Service,Web-Net-Ext45,Web-Request-Monitor,Web-Server,Web-Stat-Compression,Web-Static-Content,Web-Windows-Auth,Web-WMI,Windows-Identity-Foundation

Sedan är det klart skall du installera följande för en ren CAS server:

Och följande på en Mailbox alternativt MBX+CAS kombinerad server.

  1. Microsoft Unified Communications Managed API 4.0, Core Runtime 64-bit
  2. Microsoft Office 2010 Filter Pack 64 bit
  3. Microsoft Office 2010 Filter Pack SP1 64 bit

Sedan är det bara att installera Ex2013 från skivan.

VMM 2012 Sp1 är installerad, nu då? Del3 – VM Templates

I del 1 av denna bloggserie så gick vi igenom VM nätverken.

I del 2 byggde vi Referens en VM och konfigurerade biblioteket.

I denna del ska vi skapa Mallar (Templates) för våra VM:s

VM Templates

Först skapar vi.

  • Bläddra ner till bibioteket (Library), och välj ”Explore”
    • Kopiera sedan dina ISO filer (jag brukar skapa en katalog som jag kallar ISO)

  • Lägg sedan till Hyper-V unde Cloud Compability, ändra CPU, Minne, Disk & nätverk efter önskemål.

  • Sedan skapar vi en Guest OS Profile där vi anger Windows (även Linux) servern inställningar.

  • Välj om du vill ansluta till en domän eller workgroup. Använd med fördel ”Run As Accounts”

  • Sedan skapar vi VM Templaten som syr ihop allt vårt arbete hittils.

  • Välj sedan VHD filen du tidigare lagrade i biblioteket.

  • Ge mallen ett namn

  • Välj hårdvaruprofilen du tidigare skapade, eller skapa en ny.

  • Välj OSprofilen du tidigare skapade, eller skapa en ny.

  • Klicka dig sedan vidare och välj create så är din VMtemplate färdig.

  • Nu är vi nästan klara, först skall vi köra ett PS skript för att sätta rätt OU där maskinen skall skapas.
Get-SCVMTemplate -Name ”Windows Server 2008 R2” | Set-SCVMTemplate -DomainJoinOrganizationalUnit ‘OU=Domain Servers,DC=ch,DC=servebeer,DC=com’

  • Om du ändrar någon inställning under skapandet av din VM så kommer dom internationella inställningarna försvinna ur OS templaten då en ny temporär template skapas. För att motverka detta så ställer vi in internationella inställningar även i VM templaten. Nedan PS skriptet som fixar det.
# Prequisites
# Get-Module -ListAvailable *virtual* | import-module
# Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
$template = Get-SCVMtemplate -Name ”Windows Server 2008 R2”
$settings = $template.UnattendSettings;$settings.add(”oobeSystem/Microsoft-Windows-International-Core/UserLocale”,”sv-SE”);
$settings.add(”oobeSystem/Microsoft-Windows-International-Core/SystemLocale”,”sv-SE”);
$settings.add(”oobeSystem/Microsoft-Windows-International-Core/UILanguage”,”en-US”);
$settings.add(”oobeSystem/Microsoft-Windows-International-Core/InputLocale”,”1053:00000153”);
Set-SCVMTemplate -VMTemplate $template -UnattendSettings $settings

Kontrollera att inställningarna kom in rätt med

Get-SCVMtemplate -Name ”Windows Server 2008 R2” | fl unatt*
  • Sådär, nu är din VM Mall (Template) färdig, för att skapa en maskin så kan du högerklicka på mallen och välja att skapa en ny VM.

  • Klicka igenom dom olika valen & profilerna och välj ”create på slutet” för att skapa din maskin

    Sådär, nu kommer maskinen att skapas och installeras som du vill.

    I nästa del kommer jag gå igenom hur du håller dina mallar uppdaterade.

Guide: APC Back-UPS Pro till flera servrar i hemma labbet

Jag som bor i Värmdö kommun med 455 registrerade strömavbrott under 2012 (Vattenfall egen statistik), innebar 2012 tre trasiga hårddiskar och ett bränt nätagg. Och sådär kan vi ju inte ha det. Från ord till handling och en APC Back-UPS Pro 900 beställdes hem, men innan beställningen hade jag gjort lite beräkningar.

Beräkna hur stor UPS du behöver

Jag använde mig av APC:s egna verktyg för att beräkna storleken på min UPS, i mitt fall så beräknade jag på ca 200W belastning, och ville ha ca 30 minuters drifttid. http://www.apc.com/tools/ups_selector/ Av egen erfarenhet så drar en vanlig ”Labbserver” utan skärm ca 70-100w, så har du bara en maskin så kan du köra med en lite mindre modell till exempel: http://www.komplett.se/k/ki.aspx?sku=119785. Men tänkt på att du behöver ta höjd för servern maxbelastning, som vid uppstart, eller när CPU:n körs på maxbelastning. Switcharna märks knappt när man kopplar in dom i UPS:en.

Hur ska den skydda vid avbrott?

Där bestämde jag mig för att den skulle köra max 10 minuter och sedan stänga ner servern. Detta för att jag skulle ha kraft för dom oftast återkommande strömavbrotten som drabbar oss varje gång det snöar kraftigt i länet. Det har inte vart ovanligt med 5-10 strömavbrott en och samma dag för oss.

Så med andra ord skulle lösningen klara av flera kortare strömavbrott, men stänga ner servern säkert när strömavbrotten är längre än 10 minuter.

Så vilken modell ska jag köpa?

Jag beställde UPS:en med tanken att den enbart skulle skydda min Hyper-V host. Samt att jag inte ville betala för den extra kostnad som en ”server UPS” kostar, mångdubbelt mera för att klara av att stänga av flera maskiner. Så APC:s Back-UPS Pro serie föll mig i smaken, den på 900VA skulle klara sig ca 30 minuter med min belastning, samt att den har en LCD Display som bland annat visar belastning & hur lång tid du får ut från batteriet vid nuvarande belastning.

Dessutom ville jag ha en UPS utan fläkt så att den inte låter en massa, den är trots allt i rummet bredvid mitt sovrum.

Dagen D

När min UPS kom så kopplade jag in den till mina datorer, det var enkelt med dom medföljande sladdarna, men för att koppla in övrig nätverksutrusning så behövdes lite moddning. Strömkablarna som medföljer UPS:en är av samma typ som kopplas direkt in i datorns nätagg. Så för ADSL modemet & switcharna så var det inte att tänka på. Lösningen var ganska enkel, nåja jag har ju el-teleteknisk utbildning i botten, så för nästa del så skall du inte genomföra detta utan att veta vad du gör.

Jag tog helt enkelt en av UPS kablarna som följde med (i mitt paket följde det med två kablar) och kapade ena ändan (kapa inte den ändan som skall in i UPS:en nu) och skarvade den med ett skarvruttag som jag köpte.

Färdiga skarven, med ADSL modemet inkopplat.

Problemen

Varför är det aldrig enkelt J Två problem fanns nu att lösa, eller helt enkelt byta UPS:en till en betydligt dyrare modell. Eftersom dom surt förvärvade slantarna var mig mer kära en lite fritid, så blev det till att lösa problemen istället.

Första problemet hade med att göra att den medföljande programvaran från APC fungerade bra på alla sätt och vis, förutom att den inte stänger ner min Windows 2012 Hyper-V host. Nästa problem handlade om att jag ville koppla in min filserver också. Nu visste jag ju om att den billigare modellen inte hade stöd för nedstängning av flera servrar, men det avskräckte inte.

Lösningen

Efter lite forskande så såg jag att APC Powershute Personal Edition loggar i loggboken i Windows vid varje strömavbrott respektive när strömmen kommer tillbaks. Och det kunde jag nu använda till min fördel.

Först skapade jag en ”Custom View” i loggboken för att enkelt hålla koll på mina Strövabrott.

Filtrera loggen på EventID 174 samt 61455

Om du inte ser några events ännu så kan det vara dags att testa UPS:en, koppla ur strömmen en snabbis så kommer du se att båda eventen dyker upp.

Skapa skript

Jag skapade sedan två Powershell skript som stänger ner servern, och skickar lite varningar.

Första kallade jag för UPS_Email_Alert.ps1

$Tid = (Get-Date).AddMinutes(10).ToString(”HH:mm:ss”)
$smtp = New-Object Net.Mail.SmtpClient(”smtprelay1.telia.com”)
$smtp.Send(”Alert@server.com”,”dinepost@mail.com”,”Strömavbrott!”,”Nedstängning påbörjad $Tid)
shutdown /m \\netsrv /s /t 600 /c ”Powerfailure in progress!! Shutdown in 10 min!” /d U:6:12
shutdown /s /t 600 /c ”Powerfailure in progress!! Shutdown in 10 min!” /d U:6:12
  • Första tre raderna är för att skicka ett mail om pågående strömavbrott.
  • Dom två sista raderna stänger ner Hyper-V hosten & min fjärrserver på nätverket.
  • /m = fjärrservernamnet
  • /s = Shutdown
  • /t 600 = 600 sekunder = 10 minuter innan den stänger ner servern.
  • /c är ett meddelande som visas på hosten när strömavbrottet sker.
  • /d U:6:12 står för ”Power Failure: Environment” Som orsak till nedstängningen av servern.

Andra skriptet avbryter nedstängningen ifall strömmen kommer tillbaks inom 10 minuter.

UPS_Email_Alert.ps1

$Tid = Get-Date -Format ”yyyy.MM.dd HH:mm”
$smtp = New-Object Net.Mail.SmtpClient(”smtprelay1.telia.com”)
$smtp.Send(”Alert@server.com”,”dinepost@mail.com”,”Power on!”,”Nedstängning avbrutet $Tid)
shutdown /a /m \\netsrv
shutdown /a /m \\hv1

Länka skripten till våra två event.

Välj custom viewn som vi skapade innan, se till att välja varningen för strömavbrott, välj attach task to this event…

Ge uppgiften ett namn

Klicka ”next” tre gånger till du kommer till följande val:

OBS! För att följande skall fungera så måste din Execution Policy vara satt på att tillåta skripkörning, är du osäker, läs följande http://technet.microsoft.com/en-us/library/ee176949.aspx

Välj sedan skriptet från den platsen där du sparade det. När du sparar kommer den att lägga argumenten rätt. (lägg till ”Powershell -File” för sökvägen)

Klicka i ”open the properties…”

Ändra sedan enligt bilden för att skriptet skall köras rätt.

Klicka sedan på OK.

Gör om samma procedur med andra skriptet, se bara till att välja EventID 61455 denna gång.

Nu är miljön klar för test, om du vill göra testet snabbare med avstängningen så kan du välja att minska på tiden från 600 till 60 så slipper du vänta så länge på att se om datorn stänger ner sig rätt.

Förbereda Hyper-V för UPS avstängningar

För att nedstängningarna inte skall ta en evighet och att VM:miljön inte skall bli medveten om strömavbrotten så har jag valt att spara alla VM:hostar

Ställ in Automatic Start & Stop action via Hyper-V Managern.

Du kan även ändra inställningarna via PowerShell eller via VMM.

get-scvirtualmachine | Set-SCVirtualMachine -StopAction SaveVM

Kommandot hämtar alla dina VM:s och ställer sedan om dom till att automatiskt sparas ifall hosten skall stängas ner.

7 nya strömavbrott på en månad nu, men inga nya skador på datorerna J

Väl mött tills nästa gång.

Windows Server 2012, Hyper-V & Dedupe?

Låt mig börja med att säga att nedan text INTE ÄR SUPPORTERAT på något sätt av Microsoft eller mig själv. Kör inte detta på (avstända) AKTIVA VMs, och om du väljer att köra vidare så gör du det på DIN EGEN RISK!

Varför skulle jag vilja köra det ändå?

Alla lägen är inte osupporterade, till exempel är det fullt supporterat att köra DeDupe på off-line VHD(X) filer. Till exempel templates stores.

Det finns enligt mig minst ett par bra scenarios där Dedupe på Win 2012 Hyper-V fungerar bra, och det är i labbmiljöer där jag själv kör det.
I kundernas skarpa miljöer kör vi NetApps egna inbyggda DeDupe som fungerar alldeles ypperligt och supporterat på live VMs.

  1. Har du maskiner som ofta är avstängda (min labbserver har oftast 50% avstängda maskiner)
  2. Har du maskiner som då och då kan stängas av för att köra Dedupe. (Och som oftast är avstängda ändå)
  3. SSD är svindyrt, och du vill envist köra allt på den 🙂

Varför denna besatthet med att stänga av maskiner då? Jo, Windows 2012:ans Dedupe fungerar nämligen bara på offlinefiler, är dina VMs igång när processen körs, då kommer de inte att dedupliceras. Vilket är alldeles utmärkt i det här fallet då vi inte vill DeDupa alla maskiner.

Av egen erfarenhet så vet jag att prestanda blir lidande av DeDupe, så även på SSD diskar. Så jag kommer dessutom INTE att DeDupa min kritiska maskiner som AD, OpsMgr, VMM, Exchange med mera. Däremot är det perfekt för mina Win 8 testmaskiner, Server App-V Sequencer maskinen m.m. som för det mesta är avstängda ändå.

Så låt oss köra igång.

  1. För att installera och aktivera DeDupe på Windows Server 2012 så gör vi det enklast via PowerShell
Import-Module ServerManager
Add-WindowsFeature -name FS-Data-Deduplication
Import-Module Deduplication
  1. För att aktivera DeDupe på din volym, samt ändra standard värdet från 30 dagar till 0 för vilka filer som skall DeDupas.
Enable-DedupVolume D: Set-DedupVolume D: -MinimumFileAgeDays 0
  1. Sedan kommer vi vilja starta ett DeDupe Jobb som omedelbart förminskar din disk, (VM:s som är igång kommer inte att DeDupas)
    1. –Wait på slutet väntar på resultatet innan den går vidare, detta gör det enklare att se när jobbet är klart.
    2. VIKTIGT innan du kör detta , se till att rätt maskiner är på respektive avstängda beroende på vilka du vill DeDupa.
Start-DedupJob -Type Optimization -Volume D: -Full -Memory 50 -Priority High -Wait
  1. Under tiden som DeDupe jobbet körs syns det tydligt i Resushanteraren ”\DeDupe\ChunkStore”

  1. Resultatet före & efter DeDupe.
Get-DedupVolume D:

I mitt fall gick jag från 9 GB ledig disk till 100GB ledigt, även efter att jag kopierat 75GB nya VM:s till disken som inte fick plats förut. Inte illa!

  1. För att manuellt köra DeDupe jobben framöver vid väl valda tillfällen så skapar jag ett skript som jag kan köra via PowerShell. OBS! Kom ihåg att har rätt maskiner startade, stoppade för att få önskat resultat.
  2. Spara skriptet nedan som en .ps1 för att enkelt kunna köra den via PowerShell framöver.
Import-Module Deduplication
Start-DedupJob -Type Optimization -Volume D: -Full -Memory 50 -Priority High -Wait
Get-DedupVolume D:
  1. Om du ångrat dig då? Ingen fara kör kommandona nedan för att återställa allt till sin forna glans.
Start-DedupJob -Type Unoptimization -Volume D:
Disable-DedupVolume D:
Remove-WindowsFeature -name FS-Data-Deduplication

För att läsa vidare om DeDupe funktioner som garbage Collection, scheman m.m så finns det en bra TechNet artikel för det: http://technet.microsoft.com/en-us/library/hh831434.aspx

PowerShell ISE med System Center 2012 moduler

PowerShell ISE är enligt min mening helt överlägsen gamla Powershell promten. Men för att det ska bli lite enklare i vardagen så har jag skapat ett litet skript som startar upp dom nödvändiga modulerna automatiskt åt mig.

I exemplet nedan så hämtar & laddar jag modulerna för Virtual Machine Manager 2012

Get-Module -ListAvailable *virtual* | import-module

Spara skriptet på lämpligt ställe, (som textfil med ändelsen .ps1) starta PowerShell ISE, Klicka på File och att välj öppna skriptet.

När skriptetet är laddat, tryck F5 eller på gröna playknappen för att köra den, och nu är du klar för att köra kommandon för VMM, exemplet nedan hämtar IP adress & VM namn från IP Adresspoolen i VMM.

För att ta reda på vilka modules du kan använda till dina olika produkter söker du enklast med följande kommandon:

Get-Module -ListAvailable

För att få lite färre träffar kan du söka med Wildcards, som här efter OpsMgr 2012.