Archive

Posts Tagged ‘Powershell’

Hyper-V 3.0: Kleines Script zum Aufräumen

March 17th, 2013 No comments

Je nachdem wie gründlich man seinen Hyper-V Server pflegt, kann es passieren, dass im Cluster Shared Volume (CSV) ein paar Leichen übrig bleiben, da beim Löschen einer Virtuellen Maschine (VM) nicht automatisch die zugehörigen Disks (VHD) gelöscht werden.

Daher habe ich für meine Demo-Umgebung ein kleines Powershell Script geschrieben, dass alle an im Cluster registrierten VMs angehängte Disks auflistet und diese mit den im Dateisystem vorhandenen VHD Dateien abgleicht. Das Ergebnis kann dann genutzt werden, um eventuelle Leichen zu entdecken.

$vms=get-cluster | Get-ClusterResource | where {$_.ResourceType -like 'Virtual Machine'} | get-vm
$arrFiles=@()
$vms | ForEach-Object {
  $vm=$_
  #Add Hard disks to array
  $vm.HardDrives | ForEach-Object {
    $arrFiles+=$_.Path
  }
  #add isos to array
  $vm.DVDDrives | ForEach-Object {
    $arrFiles+=$_.Path
  }
}
#$arrFiles
Get-ChildItem C:\ClusterStorage -Recurse -Include *.vhd,*.vhdx,*.iso | ForEach-Object {
$file=$_.FullName
if ($arrFiles -notcontains $file) {
    write-host $file 
 }
} 
Categories: Hyper-V, Powershell Tags: ,

Hyper-V 3.0: Measure und NetworkACL

September 30th, 2012 No comments

Nachdem im letzten Artikel eine riesige Auswahl von Neuerungen in Windows 2012 vorgestellt wurden, soll dieser Artikel auf zwei Spezialitäten eingehen, die momentan nur mit PowerShell zu aktivieren sind:

  • Network ACLs: pro Virtuellen Maschine (VM) auf Netzwerkebene definieren, auf welche Zielsysteme die VM zugreifen kann. Diese “Firewall”-Funktion wird direkt durch Hyper-V durchgeführt und ist vom in der VM eingesetzten Betriebssystem unabhängig
  • Metering von VMs: Mitprotokollieren von Verbrauchswerten einer VM

Network ACL

Read more…

Hyper-V 3.0

September 30th, 2012 No comments

Im Rahmen einer Vortragsserie haben ein Kollege und ich die Neuerungen in Windows Server 2012 vorgestellt.  In diesem Post möchte ich diese nochmal zusammenfassen und einige Details erklären:

In folgenden Bereichen sehe ich Neuerungen:

Limits

  • 64vCPUs per Guest
  • 4TB per Host
  • 320 logical CPUs pro Host
  • 1TB pro VM
  • 64 Cluster Nodes
  • 4000 VMs pro Cluster

Memory Read more…

SCCM: System Center 2012 Configuration Manager SP1 beta released

September 15th, 2012 No comments

Ich bin mal wieder spät. Aber eventuell gibt es ein paar Leser, für die das öffentliche Beta von SCCM 2012 SP1 neu ist Smile

Die Hauptneuerungen sind:

  • Unterstützung von Windows 8 und Windows Server 2012
  • Verteilpunkte in der Cloud (Azure)
  • Powershell Kommandos
  • Verwalten von Mac OS X, Linux und UNIX Systemen

Gerade den letzten Punkt finde ich bemerkenswert. Microsoft öffnet seine Managementsysteme immer weiter in Richtung anderen Plattformen.

Details zum Servicepack:

http://blogs.technet.com/b/server-cloud/archive/2012/09/10/system-center-2012-configuration-manager-sp1-beta-and-windows-intune-update.aspx

Details zur Linux Integration:

http://blogs.technet.com/b/server-cloud/archive/2012/06/15/system-center-2012-extends-client-management-and-security-to-mac-and-linux.aspx

“To help manage Mac OS X desktops, Configuration Manager 2012 SP1 CTP enables network discovery, along with hardware and software inventory capabilities.  It also allows to you manage policy settings and distribute software and patches.

For Linux (and Unix) Servers, Configuration Manager 2012 SP1 CTP provides hardware inventory, software inventory, and the ability to deploy and update software.  It also provides secure and authenticated communications to the Linux (and Unix) servers, along with consolidated reporting capabilities. “

MDOP: UE-V – Teil 4– Erstellung eigener Templates

June 4th, 2012 No comments

Der “Microsoft User Experience Virtualization Generator” wird über das ToolsSetup.exe installiert und ermöglicht die Erstellung, Bearbeitung und Validierung von Templates. Ein Template ist eine einfache XML Datei, die definiert welche Registrywerte und Dateien zu den Usereinstellungen einer Anwendung gehören.

Dabei ist im Allgemeinen kein genaueres Wissen über die Anwendung notwendig. Bei der Erstellung wird die gewünschte Anwendung ausgesucht und gestartet. Der Generator überwacht im Hintergrund auf welche Dateien und Registrierungsschlüssel das Programm zugreift. Im weiteren Schritt können diese ermittelten Werte angepasst werden.

Am Ende sieht eine solche XML Datei so aus:


<?xml version="1.0"?>
<SettingsLocationTemplate xmlns="http://schemas.microsoft.com/UserExperienceVirtualization/2012/SettingsLocationTemplate">
<Name>Miranda IM</Name>
<ID>Miranda-IM</ID>
<Version>2</Version>
<Author>
<Name>Markus Baeker</Name>
<Email>markus@mbaeker.de</Email>
</Author>
<Processes>
<Process>
<Filename>miranda32.exe</Filename>
<ProductVersion>
<Major Minimum="0" Maximum="0" />
<Minor Minimum="9" Maximum="10" />
</ProductVersion>
<FileVersion>
<Major Minimum="0" Maximum="0" />
<Minor Minimum="9" Maximum="10" />
</FileVersion>
</Process>
</Processes>
<Settings>
<File>
<Root>
<EnvironmentVariable>APPDATA</EnvironmentVariable>
</Root>
<Path Recursive="true">Miranda</Path>
</File>
</Settings>
</SettingsLocationTemplate>

Zur Erklärung:

  • Zeile 4 und 5 definieren den internen Namen und die Versionsnummer des Templates. Beides wird beim Update in Powershell genutzt (s. vorhergehenden Post), um eine neuere Version zu erkennen. Wird das Template manuell angepasst, so sollte hier die Versionsnummer erhöht werden (Integer Wert)
  • Zeile 10-22 definiert, auf welchen Prozess der Agent reagieren soll. Sobald ein Prozess mit passender Produkt- und Dateiversion erkannt wird, werden die Einstellungen aktualisiert und nach dem Beenden wieder gesichert. Der Generator erlaubt hier nur die Angabe von genau einer Version. Die hier verwendeten Min- und Maxwerte müssen manuell (per Notepad oder ähnliches) eingegeben werden.
  • Ab Zeile 23 werden die einzusammelnden Werte definiert. In diesem Fall (der Instant Messaging Client Miranda IM) gibt es keine Registry Werte sondern nur Dateien im Profil des Benutzer (%appdata%\Miranda). Der komplette Unterordner wird mitgenommen.

SCOM 2012: Neue Konfigurationskonsole

June 2nd, 2012 No comments

Eine Neuerung in SCOM 2012, die mir bis jetzt noch nicht aufgefallen ist, ist die neue Konfigurationsoberfläche in der Systemsteuerung. Jetzt muss man nicht mehr das Setup oder die Powershell bemühen, um eine neue Managementgruppe hinzuzufügen:

scomgui

MDOP: UE-V–Teil 3 – Verwendung von UE-V in WHS

May 27th, 2012 No comments

Da ich zu hause einen Windows Home Server (WHS) mit mehreren Clients aber ohne zentrale Profile (da keine Windows Domäne vorhanden ist) einsetze, ist User Environment Virtualization (UE-V) die optimale Ergänzung.

Dazu bin ich folgendermaßen vorgegangen:

Über das Dashboard habe ich ein neue Freigabe namens Settings angelegt. Um mir die Berechtigungsvergabe zu vereinfachen habe ich für alle relevanten Benutzer Read/Write Berechtigungen vergeben.

In einem Unterordner namens Agent liegt darin der Agent mit einem Installationsscript. Parallel zu diesem Ordner existiert ein Ordner Templates, in dem ich die selbsterstellten Vorlagen abgelegt habe.

Im Agent Ordner liegt der komplette Inhalt des heruntergeladenen Installationspakets (der Ordner mit AgentSetup.exe). Zusätzlich existiert die Datei install.cmd zur Einfachen Installation:

"%~dp0agentsetup.exe" /quiet /norestart /l*v "%systemroot%\UE-VAgentInstaller.log" SettingsStoragePath="\\whsserver\settings\%%username%%" SettingsTemplateCatalogPath="\\whsserver\settings\Templates"
call "%~dp0settings.cmd"

Diese Datei führt nach der Installation die zusätzliche Datei settings.cmd aus. Diese Batchdatei ist für den Import der Templates zuständig:

rem reg add HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\UEV\Agent\Configuration /v DisableOfflineSupport /t REG_DWORD /d 1 /f
powershell -Command "set-executionpolicy remoteSigned"
copy "%~dp0importall.ps1" "%temp%\importall.ps1"
powershell "%temp%\importall.ps1"
pause

Der Import erfolgt über Powershell. Da Powershell standardmäßig keine Scripts ausführt, wird zuerst die Execution Policy angepasst. Danach wird das Powershell Script lokal kopiert und ausgeführt. Das Powershell Script ist sehr übersichtlich:

Import-module Microsoft.UEV.commands
get-childitem -Recurse \\whsserver\settings\templates\*.xml  | ForEach-Object { $_.fullname | Register-UevTemplate }
get-childitem -Recurse \\whsserver\settings\templates\*.xml  | ForEach-Object { $_.fullname | Update-UevTemplate }

Zuerst registriert es alle Templates die in dem Templates Ordner vorhanden sind. Sollte das Template schon registriert sein, so wird es automatisch ignoriert. Danach werden alle Templates aktualisiert, d.h. ist ein Templates schon registriert worden aber es liegt eine neuere Version vor, so wird es in diesem Schritt auf die neue Version gebracht. Somit ist das settigns.cmd Script auch für spätere Templateaktualisierungen verwendbar.

MDOP: UE-V– Teil 2–Der Agent

May 17th, 2012 No comments

Den Agent gibt es wie üblich in einer 32bit und 64bit Variante und liegt als MSI File vor. Er installiert einen Dienst “User Experience Virtualization service” mit dem internen Namen UevAgentService. Dieser Dienst agiert als Dateisystem Filtertreiber.

Eventlognachrichten landen Windows 7 typisch in ein eigenes Eventlog unter “Applications and Services Logs/Microsoft/User Experience Virtualization/Logging” in Admin und Operational.

Ein eigene Oberfläche hat der UE-V Agent (noch?) nicht. Die Steuerung erfolgt über WMI. Für die WMI Schnittstelle wird zusätzlich ein Powershell Modul installiert, dass über “Import-module Microsoft.UEV.commands” in eine Powershellsitzung importiert werden kann.

Den Agent installiert man am Besten über das Agentsetup, da dieser automatisch die richtige Variante installiert. Ein Bespiel für den Aufruf sieht so aus:

"%~dp0agentsetup.exe" /quiet /norestart /l*v "%systemroot%\UE-VAgentInstaller.log" SettingsStoragePath="\\server\settings\%%username%%" SettingsTemplateCatalogPath="\\server\settings\Templates"

Relevant sind die beiden Parameter “SettingsStoragePath” und “SettingsTemplateCatalogPath”.

Der erste Parameter SettingsStoragePath gibt an, wo die extrahierten Anwendungseinstellungen abgelegt werden sollen. In diesem Fall gibt es eine Freigabe settings auf dem Server server. Unterhalb dieses Ordners wird dann ein Unterordner mit dem Namen des aktuellen Benutzers angelegt. Im Gegensatz zu der Dokumentation habe ich die Tilde (~) weggelassen, da diese in meinem Tests nicht funktioniert hat (die Tilde würde umschließende “ entfernen).

Der zweite Parameter SettingsTemplateCatalogPath definiert einen Ordner aus denen beim Start bzw. einmal am Tag die aktuellen Templates geladen werden. Vorlagen sind einfache XML Dateien (hier auch mit der Endung xml). Alle Dateien mit dieser Endung werden automatisch aus diesem Ordner geladen, überprüft und bei entsprechender Korrektheit importiert. Sollte das Template schon registriert sein und die darin enthaltene Versionsnummer sich nicht unterscheiden, so wird nichts gemacht. Microsoft liefert schon ein paar Templates mit, die automatisch eingebunden werden und im Agent Pfad unter “C:\Program Files\Microsoft User Experience Virtualization\Templates” zu finden sind:

localTemplates

Im nächsten Teil zeige ich, wie man mit Powershell den Import manuell anstoßen kann.

Categories: Deutsch, Tools, Windows Tags: , , ,

SCOM: Produktkey eingeben

April 10th, 2012 No comments

Wenn man den neuen SCOM 2012 installiert, wird er zuerst immer im Evaluationsmodus installiert. In anderen System Center Produkten konnte man dann über Hilfe den Produktkey eingeben. Diese Option gibt es im System Center Operation Manger (SCOM) nicht :-)

Bei Microsoft sammeln sich wohl momentan die Anfragen dazu, daher haben sie jetzt einen Knowledge Base Artikel erstellt, wie man über die Powershell den Key eintragen kann:

http://support.microsoft.com/kb/2699998/en-us

SCVMM 2012: Neuerungen

March 26th, 2012 No comments

Im letzten Teil dieser Serie schauen wir uns den System Center 2012 Virtual Machine Manager (SCVMM) an. Hier gibt es wieder einige ganze Reihe von Verbesserungen. Die Verbesserungen teilen sich in zwei Hauptgebiete auf: Dienste und Cloud-Unterstützung und auf der anderen Seite Fabric Management.

Dienste und Cloud-Unterstützung:

  • Service Livecycle Management:
    • Dienste in SCVMM werden als Template definiert und darüber auch aktualisiert.
    • mit SCVMM 2012 können Serveranwendungen jetzt auch über Server App-V abstrahiert werden
    • Das komplette Deployment inkl. Load-Balancing, erstellen von VMs, Einbinden von SQL-Datenbanken, Rollout von Webanwendungen wird jetzt unterstützt
  • Cloud Verwaltung:
    • Clouds können erstellt werden und an Benutzer/Gruppen delegiert werden
    • Innerhalb der Cloud kann ein Benutzer die ihm erlaubten Rechte ausüben: z.B. VMs erstellen, löschen, Snapshots, …
    • Die Anzahl und Ausstattung der VMs kann wiederum über Quotas begrenzt werden

Fabric Management:

  • Infrastruktur:
    • Erweitertes Powershell
    • VMM Server kann geclustered werden
    • automatisierte Updateinstallation von Hyper-V Servern (Live Migration, Updates installieren, Neustart, Kontrolle, Live Migration, …)
  • Ressourcenoptimierung:
    • verbesserte dynamische Optimierung des Hyper-V Clusters
    • Power Optimization: Herunterfahren von Hyper-V Knoten bei geringer Last
    • für das Monitoring ist jetzt kein SCOM mehr notwendig. Auslastung der Knoten wird jetzt direkt vom VMM Agent gemessen
  • Fabric Management
    • Unterstützung von XenServer 6.0+
    • Bare Metal Provisionierung von Hyper-V Clustern (Anschalten neuer HW per BMC, PXE Boot in WinPE, Download VHD mit Hyper-V Image, bootfähig machen, Integration von weiteren Treibern, Aufnahme in das AD, Aufnahme in einen Cluster, …)
    • Verbessertes Netzwerkmanagement mit VLAN Unterstützung
    • Verbessertes Storagemanagement durch Unterstützung der SMI-S Schnittstelle