-
Ci sono poche cose che mi fanno arrabbiare quanto la documentazione (?) di Powershell in Data Protection Manager (DPM) 2007 ... inesistente è dire davvero poco
.
Tra l'altro il modello e l'implementazione delel CmdLets scelto dal team di DPM è quantomeno originale ... e poco omogeneo con Powershell stesso e le sue filosofie.
Siccome ci ho sbattuto sopra la testa non poco (e sono molto BUONO
), condivido su questo blog un pò di codice per produrre un restore automatizzato di una Virtual Machine Hyper-V, protetta da DPM.
# Un pò di dichiarazioni
$dpmname = $env:computername
$pgName = "PG03-HyperV"
$dsname = 'Backup Using Child Partition Snapshot\Earth'
$targetserver = "cerere.domain.local"
$targetlocation = "D:\"
Ora dobbiamo recuperare Il Protection Group che contiene il DataSource di cui intendiamo fare restore e poi selezioniamo l'ultimo Recovery Point, tra quelli disponibili:
$pg = get-protectionGroup -DPMServerName $dpmName | where {$_.friendlyname -eq $PgName}
$ds = get-datasource -protectiongroup $pg | where {$_.name -eq $DsName}
$ro = Get-RecoveryPoint -Datasource $ds | sort | select -last 1
A questo punto la parte più "complessa" (la New-RecoveryOption è tra le CmdLets più astruse e peggio documentate ...)
$Rop = New-RecoveryOption -GenericDatasource -TargetServer $targetserver -RecoveryLocation CopyToFolder -RecoveryType Restore -TargetLocation $targetlocation
E ora l'ultimo passaggio 
Recover-RecoverableItem -RecoverableItem $Ro -RecoveryOption $rop
Ora non ci resta che attendere e in un subfolder (generato automaticamente da DPM) troveremo i files (VHD ed XML) che costituiscono la VM, comprensivo di VM State.
Nella sessione Virtual machines backup strategies with Data Protection Manager (DPM) | VC18 che presenterò alla Microsoft Virtualization Conference '09 vedremo qualche altro esempio di scripting per Hyper-V con Powershell e DPM, magari producendo una versione più completa di questo frammento di codice.
Ciao, Claudio
-
La prima edizione di Microsoft Virtualization Conference '09 si terrà il 22 e 23 Settembre 2009 presso il “Microsoft Realizing Potential Congress Center” di San Felice a Segrate (MI).
Pulsar IT sarà presente all’evento con due speaker, Alessandro Appiani ed io.
Queste le mie sessioni:
Automating large scale virtual infrastructures with System Center Virtual Machine Manager (SCVMM) and Powershell | VC03
“La gestione di ambienti virtuali è un aspetto davvero critico per l’efficacia delle soluzioni, forse più che in un ambiente fisico.
Con l’arrivo di Hyper-V 2.0 in Windows Server 2008 R2, accoppiato con Powershell 2 e il nuovo System Center Virtual Machine Manager 2008 R2 si pongono nuove basi per affrontare questo compesso tema.
Nella sessione, dopo una veloce carrellata sulle novità delle singole piattaforme, discuteremo delle possibili tecniche e modalità di gestione, partendo dal provisioning di ambienti virtuali fino alle operazioni di manutenzione ordinaria e straordinaria.
Il tutto condito da esempi pratici e script Powershell, per dimostrare la sinergia delle tecnologie.”
Virtual machines backup strategies with Data Protection Manager (DPM) | VC18
“Garantire un efficace backup e restore di dati e configurazioni è elemento fondamentale di una soluzione di backup, che nelle soluzioni virtuali rischia di complicarsi ulteriormente.
Infatti il mix di criticità (fisico-virtuale), la ragguardevole dimensione degli oggetti virtualizzati, la necessità di rispettare le integrità applicative (es: Exchange/SQL logs) unite alle tradizionali problematiche di volumi e tempistiche, fanno del backup uno dei temi più complessi della virtuazlizzazione.
In questa sessione vedremo come affrontare il problema e scegliere le migliori strategie da usare, nel proteggere i diversi workload virtuali e gli host fisici Hyper-V con System Center Data Protection Manager 2007.
Vedremo insieme alcuni aspetti per il corretto dimensionamento e utili indicazioni per il disegno ed il troubleshooting della soluzione di backup.”
All’evento sarà anche presente Jeff Woolsey - Lead Program Manager, Windows Virtualization di Microsoft Corp., protagonista in queste settimane di un “gustoso” scambio di post con VMWare, finito in una ingloriosa figura per il colosso della virtualizzazione (per colosso intendo VWare … non Microsoft, che però lo diventerà presto
).
A Settembre allora :-)
Claudio
-
Data Protection Manager 2007 (DPM), pur essendo dotato di cmdlets specifiche per Powershell, è piuttosto incompleto.
Ad esempio non ci sono cmdlets per gestire i jobs, alerts, ecc. (e sul grado di documentazione di quello che c’è … lasciamo perdere …).
La domanda su come poter risolvere (inattivare) gli alert in modo batch è stata posta diverse volte sui DPM Forum, ma anche i membri del Team DPM hanno affermato che non esiste un modo per farlo via Powershell.
Qualcuno in giro per il web, pur di evitare di inattivare "uno-a-uno" (sì, la DPM management console NON supporta la selezione multipla !), si è pure lanciato in temerarie operazioni direttamente sul DB SQL ($brividi = $TRUE).
In realtà un metodo esiste e una volta “scoperto” è pure banale … ma probabilmente NON è supportato (anche se lo uso da diverso tempo in ambienti di produzione e non ha mai causato problemi).
DISCLAIMER: usatelo a vostro rischio – USE AT YOUR OWN RISK
# Ci connettiamo al server DPM
$Dpm = connect-dpmserver $Env:Computername
#Otteniamo un oggetto AlertController
$Ac = $Dpm.Get_AlertController()
# Estraiamo solo i Pending Alerts
$AC.RefreshAlerts( $False)
# TA-DAAA … inattiviamoli tutti
$AC.ActiveAlerts | % { $_.ResolveAlert()}
La potenza di .Net applicata a Powershell (o viceversa
)
Ciao, Claudio
-
Ho aggiornato il WSUS PowerToolkit alla versione 1.2, includendo due nuove script.
Wsus-DeclineAllObsolete.ps1
Consente di declinare TUTTI gli update (usate a vostro rischio) che sono indicati come obsoleti (Superseded) nel database di WSUS.
Questo può essere utile nei casi di pulizia massiva di una installazione WSUS, dopo essersi accertati di aver approvato però gli aggiornamenti successivi.
Wsus-DeclineSupersededBy.ps1
Questa script ricerca gli update resi obsoleti da uno specifico aggiornamento (descrizione - passato come parametro stringa, case insensitive), che non siano già declinati e li declina.
Questo è utile per fare il decline dei soli update sotituiti da uno successivo. Si può passare una stringa “generica”, come ad esempio 'Windows Malicious Software Removal Tool', o 'update rollup for activex killbits', per inculdere una intera famiglia di aggiornamenti.
Ho anche aggiornato e fixato alcune delle scritp precedentemente rilasciate.
Have fun,
Claudio
-
Ho aggiornato il WSUS PowerToolkit alla versione 1.1, includendo due nuove script.
Wsus-Sync.ps1
Consente di eseguire una sync di WSUS, con notifica via mail dell’esito.
Questo può essere utile in quei casi in cui lo scheduling rigido di WSUS, non risolva le vostre esigenze. Quindi si può schedulare la script con il task scheduler di Windows, disattivando la sincronizzazione automatica nelle opzioni di WSUS.
Wsus-PendingReboot.ps1
Questa script ricerca eventuali computer nel database di WSUS che siano in stato di Pending Reboot, notificando la lista via mail.
Questo è utile per evitare che un computer (server) resti per lungo tempo in stato di pending dopo aver applicato le patch manualmente, o dove si previene il reboot da GPO quando un utente ha fatto logon.
Entrambe le script usano Wsus-SendMail.ps1, per recuperare destinatario e server SMTP dalle opzioni di WSUS.
Have fun,
Claudio
Nota:
Nuova versione disponibile su http://www.pulsarit.net/cs/blogs/claudiog/archive/2009/06/10/wsus-powertoolkit-1-2.aspx
-
Strumenti, tools & c.
Nuova versione di PSHyperV, la libreria per gestire piattaforme Hyper-V tramite Powershell.
http://www.codeplex.com/PSHyperv
Nuova versione del gadget Hyper-V Monitor per la Sidebar di Windows Vista.
http://mindre.net/post/Hyper-V-Monitor-Gadget-for-Windows-Sidebar.aspx
Convertire immagini WIM in file VHD.
http://code.msdn.microsoft.com/wim2vhd
http://blogs.technet.com/pgmalusardi/archive/2009/02/09/da-file-wim-a-file-vhd-con-un-semplice-script.aspx
Articoli, blogs, documentazione &c.
Ottimo tutorial su come implementare Hyper-V R2 su BladeCenter S di Massimo Re Ferrè.
http://it20.info/blogs/main/archive/2009/02/09/177.aspx
Interessante raccolta di documenti, blog e preziose informazioni di dimensionamento e tuning per Hyper-V
http://blogs.technet.com/tonyso/archive/2009/01/30/hyper-v-how-to-plan-hyper-v-deployment.aspx
Guida passo-passo per usare iSCSI Target su WSS / WUDSS con Hyper-V
http://blogs.technet.com/josebda/archive/2009/01/31/step-by-step-using-the-microsoft-iscsi-software-target-with-hyper-v-standalone-full-vhd.aspx
Recovery manuale di AVHD
http://blog.networkfoo.org/?p=384
Formazione
eLearning gratuito su Hyper-V
https://www.microsoftelearning.com/eLearning/offerDetail.aspx?offerPriceId=228501
Licensing
Licensing di prodotti Server su Hyper-V.
Hyper-V Hosting Guidance: Using and Licensing Microsoft® Server Products in Hyper-V Virtual Hosting Scenarios
-
Ho deciso di raccogliere in un "toolkit" dal roboante nome di "WSUS PowerToolkit"
tutta una serie di scripts Powershell, che ho scritto nei mesi precedenti per gestire Windows Server Update Services (WSUS).
La gestione di WSUS non è propriamente comoda, anche se in molte realtà si può pensare ad un uso "automatico" ( ovvero approva tutto su tutti); ma in situazioni più normali un minimo di gestione, automatismo, pulizia, reportistica e segnalazione sarebbe desiderato.
Ho quindi realizzato una serie di script, alcune nuove e altre riviste rispetto a quelle già postate a suo tempo su 127.0.0.1 questo stesso blog.
In realtà sono parte di una serie molto più vasta ... ma il tempo, e quindi la possibilità di produrre codice finito e presentabile, è scarso !
Scripts
Wsus-SendMail.ps1
Si tratta di un "building block" per mandare mail direttamente ai riferimenti indicati nella configurazione di WSUS (recipient) usando il server SMTP specificato sempre nella configurazione stessa.
Da solo non serve a nulla, nel senso che invia una mail di test; viene usato dalle altre script
WSus-StatusMail.ps1
Invia una mail di status su numero nodi, aggiornamenti installati/da installare, in errore, ecc.
WSus-RemoveOldComputers.ps1
Rimuove dal DB di WSUS i computer che non si sono connessi da XX giorni.
Decline-ObsoleteDefinition.ps1
Decline-Itanium.ps1Decline di definizioni (Es: Exchange AntiSpam, ForeFront Client Security signature,
ecc.) e dei binary di Itanium (che servono nello 0.1 % delle installazioni di WSUS ...).
Wsus-CleanUp.ps1
Esegue il cleanup del DB/files obsoleti di WSUS, inviando mail di notifica sui risultati. Non rimuove computer dal DB.
Questa procedura è importante per recuperare spazio su disco e DB, specie in seguito alla esecuzione delle precedenti.
Download
Il WSUS PowerToolkit 1.0 è disponibile qui.
Si accettano feedback e suggerimenti.
Ciao,
Claudio
-
Divertentissimo post di Per Østergaard 
Una giornata vissuta al TechEd, descritta con pseudo-codice Powershell !
-
Ho riletto oggi il post di Giorgio Malusardi, relativo a come creare una nuova voce del boot menu di Windows Server 2008 con BCDEDIT, che disabiliti l'Hypervisor.
Dato che può tornare utile, mi sono scritto una script Powershell, così mi fa anche l'export dello store di Boot Configuration Data (BCD) prima di modificarlo (procedura che può comunque tornare utile come "Best Practice"), salvandolo come file ad esempio in C:\SERVER1-20080930.bcd
bcdedit.exe /export "$env:SystemDrive\$($env:computername)_$([datetime]::utcnow.ToString( 'yyyyMMdd')).bcd"
$res = bcdedit.exe /copy '{current}' /d 'Windows Server 2008 - NO Hypervisor'
$id = $res.Split('{}')[1]
bcdedit.exe /set "{$id}" hypervisorlaunchtype off
La script completa con un *minimo* di controllo d'errore è disponibile come Boot_No_Hyper-V.ps1
Claudio
-
Anche quest'anno si tiene a Milano la Microsoft SharePoint Conference, questa volta organizzata presso il Convention Center di Fiera Milano City e non presso Microsoft, come per le precedenti edizioni.
Pulsar IT sarà presente con due speaker, Alessandro Appiani ed il sottoscritto, in due differenti sessioni della nutrita agenda, preparata da Igor Macori e Paolo Pialorsi.
Ci vediamo in conferenza, se siete tra i fortunati che ce l'hanno fatta a iscriversi (ha fatto "sold-out") !
Claudio
-
Patch
Per produrre un ambiente stabile basato su Windows Server 2008 e Hyper-V, non bastano un buon hardware e le Best Practice ... ci vogliono anche delle hotfix 
Ecco un elenco delle fix che consiglio caldamente di applicare, per ottenere un ambiente Hyper-V solido ed efficace:
Hotfix di stabilità
ma se usate NLB in Windows Server 2008 (anche non con Hyper-V, quindi) probabilmente avrete bisogno di questa:
Poi veniamo alle fix specifiche, che estendono le funzionalità e la stabilità di alcuni componenti "chiave" di hyper-V e dell'offerta di virtualizzazione Microsoft:
Questa è la madre di tutte le fix per Hyper-V 
Troppo lunga da commentare, ma un must in ambienti di Failover Clustering di Hyper-V (uno dei fiori all'occhiello della Server Virtualization Microsoft, specie se ragionata in rapporto ai costi-benefici).
Che richiede implicitamente anche l'applicazione di http://support.microsoft.com/kb/950182/en-us/ per far digerire al kernel delle VM Guest Windows 2008 x86 i processori a 6-Core (in realtà se gli fate vedere un numero di processori "non potenza di 2")
Fix specifiche per System Center Virtual Machine Manager (SCVMM) e Hyper-V
Tools
Finalmente rilasciato il tool (free) per convertire macchine virtuali Virtual Server/VPC in Hyper-V.
Si tratta di "VMC to Hyper-V Import Tool" (VMC2HV) rilasciato da Matthijs ten Seldam, già autore del famoso VMRCplus, dopo un periodo di testing interno che durava da prima di Luglio.
In sostanza si tratta di un tool (sia x64 che x86) che legge il file .VMC, tipico di VS 2005 e VPC 2007, e lo "converte" in un file di configurazione XML per Hyper-V, preservando quindi le configurazioni della VM (RAM, file .VHD, ecc.). Ovviamente il processo si poteva già fare, manualmente, riutilizzando il file VHD ma la procedura era tediosa e a rischio di errori.
Chiaramente il tool non rimuove le VM Additions di VS/VPC e non installa gli Hyper-V Guest Components (gli ex-Integration Services ... che nome del cavolo !) di Hyper-V, operazione da fare poi manualmente dopo aver fatto partire la VM in Hyper-V e che richiederà qualche reboot per essere completo; ma si tratta sempre di un bell'aiuto.
Segnalo anche la nuova versione di PowerShell Management Library for Hyper-V, rivista e migliorata.
Tips & tuning
La prima area di miglioramento di prestazioni (a costo ZERO) che vale la pena di indagare, è quella del cambio di formato dei VHD (passando da dynamic a static), che oltre ad essere un requisito per ottenere supporto su alcuni workload virtualizzati, migliora di parecchio le performance.
Alcune interessanti valutazioni le trovate qui, emblematico il caso dell'I/O a blocchi da 4KB:
http://blogs.technet.com/winserverperformance/archive/2008/09/19/hyper-v-and-vhd-performance-dynamic-vs-fixed.aspx
Claudio
-
Sul blog del Ask the Directory Services Team di Microsoft, trovate una bella serie di articoli su Kerberos.
La prima serie è fatta di 4 articoli molto approfonditi sul Troubleshooting:
Interessanti poi due altri articoli più introduttivi per la comprensione di Kerberos in quanto tale (terminologia, processi e tools) e del concetto di "Double Hop":
Di gran lunga il problema più frequente che riscontriamo presso le aziende, è l'errata configurazione dei SPN in Active Directory (associazione con il Security Principal sbagliato, SPN duplicati o del tutto mancanti), specie per ambienti SQL Server in Cluster e le web application (dove ci sia quindi di mezzo IIS e magari la constrained delegation).
-
Riprendo come al solito i post di Piergiorgio Malusardi, questa volta per segnalare il suo completo riassunto su Hyper-V che è Released To Web (RTW).
Con largo anticipo sulla data stimata di Agosto (e questa è già una novità
), Microsoft ha rilasciato la versione finale della sua piattaforma di Server Virtualization. Per ora il download è manuale, ma sarà disponibile su WU (e WSUS ?) l'8 di Luglio.
Devo dire che, seppure qualche caratteristica è mancante rispetto ad altre piattaforme ( ... di chi starò parlando ... mah ?!), la sua stabilità è davvero notevole e le prestazioni sono ottime; ma ciò che più attrae è la piattaforma di Management, che se da un lato è orientata alla famiglia System Center, dall'altro offre già di base un interfaccia di scripting (WMI based) micidiale.
Siamo in produzione sia internamente in Pulsar IT, che presso un cliente del "Upper Mid Market", dove abbiamo quasi completato un progetto di migrazione a Windows Server 2008 ed Exchange 2007, già da alcuni mesi (RC0) e non abbiamo avuto davvero alcun problema.
I ruoli virtualizzati vanno dai Domain Controller, DHCP+DNS+RADIUS, Exchange 2007 HT+CAS, WSUS, Web Server, ...
Stiamo anche ospitando da un paio di settimane sul ns. server Hyper-V anche il sito di Ugiss, lo User Group Italiano di SQL Server.
Certo non si tratta di aver virtualizzato TechNet e MSDN ma ... si fa quel che si può!
Aggiungo alcune altre risorse a quelle segnalate da Piergiorgio:
10 domande frequenti su Hyper-V
What to consider before you upgrade
PowerShell Management Library per Hyper-V
Le interviste con il Team di Hyper-V
-
Su CodePlex è disponibile un nuovo Provider per Powershell, scritto da Oisin Grehan (Microsoft MVP), già autore di PSEventing (PowerShell Eventing) e developer nel gruppo di PowerShell Community Extensions.
Si tratta del PowerShell Windows Mobile Provider, che consente di accedere sia in modo interattivo che programmatico a dispositivi Windows Mobile da PowerShell.
Molte le attività che si possono scriptare: dalla gestione del file system, alla conversione di file, l'esecuzione di processi, alla estrazione di informazioni sul dispositivo, ecc.
Si tratta ancora di una Beta, ma di certo un bel tool. Bravo Oisin !
Un altro interessante spunto ci viene da PowerShell Tunnel, disponibile sulla MSDN Code Gallery.
Applicazione decisamente interessante per accedere da una CLI PowerShell agli oggetti esposti in una applicazione .Net, hostata appostamente in un "runspace" di PowerShell e raggiunta tramite l'infrastruttura WCF.
Lo scopo ? Debugging, inspection ... ma anche esecuzione di metodi e modifica di proprietà ... tutto unito alla potenza di PowerShell. Una bella idea di Matthew Hobbs.
Vi segnalo anche un feed RSS, per essere sempre aggiornati sulla pubblicazione di nuovi contenuti (scripts) sul TechNet Script Center.
-
Finalmente Microsoft ha raggruppato in un unico portale, tutte le informazioni sulle tecnologie di Failover Clustering, il nuovo nome introdotto in Windows Server 2008 per MSCS o Server Clustering.
Un ottimo punto di partenza per accedere a informazioni di ogni genere e profondità, sulle tecnologie di server clustering di Windows Server 2008.