Archivi categoria: powershell

PowerShell Core disponibile come pacchetto Snap

Facebooktwittergoogle_plusredditlinkedin

La love story tra Microsoft e Linux continua e nei giorni scorsi Microsoft ha annunciato la disponibilità di PowerShell Core su Ubuntu Snap Store, come applicazione Snap.

PowerShell Core è la versione cross-platform di Windows PowerShell, linguaggio di scripting e command-line shell, già disponibile per macOS e Linux pensata per le persone che devono gestire ambienti ibridi.

Il punto forte di Snap è il fatto di essere un package system universale che rende possibile installare un software compatibile per le distribuzioni Linux più diffuse senza richiedere alcuna modifica, a differenza dei pacchetti .deb o .rpm.

Un pacchetto Snap infatti offre una serie di “agevolazioni”:

  • Librerie necessarie al proprio funzionamento; l’utente non deve preoccuparsi della versione delle shared libraries installate sul proprio sistema;
  • Possibilita di installare un pacchetto Snap senza fornire accesso root;
  • Safe to run, i pacchetti non interagiscono con altre applicazioni o sistemi senza permesso;
  • Aggiornamenti automatici che includono i delta delle modifiche tra un aggiornamento e l’altro.

Sempre più facile, dunque, avere un pezzettino di Microsoft sulla propria macchina Linux. Strategia vincente per invogliare ad adottare le soluzioni da loro offerte? Vedremo.

Creare rapidamente laboratori di test per Windows 10, Windows Server 2016 e Windows Server 2019 utilizzando PowerShell

Facebooktwittergoogle_plusredditlinkedin

Da qualche mese è presente su GitHub un progetto Microsoft gratuito che permette con una serie di script PowerShell di configurare rapidamente dei laboratori di test basati su Hyper-V (io ho utilizzato la mia macchina con Windows 10 e con Client Hyper-V per i lab), partendo soltanto dalla ISO di Windows Server 2016 e di Windows 10. È anche possibile testare la versione Insider dei due sistemi operativi ed il prossimo Windows Server 2019.

Si possono creare decine di scenari diversi, alcuni anche complessi, frutto dell’esperienza dei Premier Field Engineer di Microsoft, che li usano proprio per realizzare delle demo per i clienti.

Ho trovato particolarmente facile la creazione dei laboratori con gli script messi a disposizione, visto che in fin dei conti dovevo solo fornire la ISO del sistema operativo da utilizzare e attendere la creazione del lab!

Gli script sono stati realizzati solo per creare alcuni scenari, molti di questi dedicati alle funzioni di Storage di Windows Server, ma offrono la possibilità di essere modificati e quindi possono anche essere adattati alle nostre esigenze.

Collegandosi alla pagina https://github.com/Microsoft/WSLab/tree/master/Scenarios troverete un elenco di scenari che attualmente sono stati sviluppati, ma ne vengono creati sempre di nuovi.

Se invece volete testare le nuove funzionalità della prossima versione di Windows 10 e di Windows Server 2019 potete collegarvi alla pagina https://github.com/Microsoft/WSLab/tree/master/Insider , dove c’è il file di configurazione per creare le macchine del lab utilizzando la ISO del programma Insider.

Nella pagina dei progetti sono anche presenti dei video esplicativi che vi possono aiutare nelle prime fasi, raggiungibili direttamente al link https://github.com/Microsoft/WSLab/#videos

Download dei prerequisiti

Per cominciare abbiamo bisogno di scaricare alcuni prerequisiti fondamentali:

Estraete gli script in una cartella del vostro computer oppure di una macchina virtuale su Azure che supporti la Nested Virtualization, cioè della famiglia Dv3 ed Ev3. Ho già avuto modo in passato di scrivere l’articolo Abilitare la nested virtualization con le nuove Azure VM Dv3 ed Ev3 che citava proprio questa nuova ed utilissima funzionalità.

Figura 1: Estrazione degli script utili per la creazione del laboratorio

Eseguite quindi il file 1_Prereq.ps1 con privilegi amministrativi e scaricate i prerequisiti richiesti, come mostrato in figura, che verranno poi salvati nella cartella Tools:

Figura 2: Download dei prerequisiti richiesti

Al termine del download dei prerequisiti, eseguite con privilegi amministrativi il file 2_CreateParentDisks.ps1. Vi verrà richiesta la ISO di Windows Server 2016 e vi verranno chiesti i file MSU che volete utilizzare per l’aggiornamento dell’immagine. Verranno creati diversi VHDX, con l’installazione di Windows Server 2016 Datacenter Full, Core e Nano. L’operazione dura diversi minuti e i dischi saranno salvati nella sottocartella ParentDisks, che verrà creata dallo script.

Figura 3: Richiesta dei file MSU per aggiornare l’installazione di Windows Server

Figura 4: Creazione dei dischi che verranno utilizzati dalle VM completata

Dopo la creazione dei VHDX, lo script procede in automatico e crea una macchina virtuale dentro la quale verranno installati i ruoli di Domain Controller e di DHCP utilizzando PowerShell Desired State Configuration (DSC). L’operazione dura diversi minuti, quindi siate pazienti 😊
La macchina virtuale creata verrà poi eliminata dalla console di Hyper-V e sarà riutilizzata nel momento in cui creerete il laboratorio secondo lo scenario che avete scelto.

Per ingannare l’attesa potete leggere l’articolo Introduzione a PowerShell Desired State Configuration o gli altri articoli che trattano dello stesso argomento https://www.ictpower.it/?s=PowerShell+Desired+State+Configuration

Figura 5: Installazione del Domain Controller tramite PowerShell Desired State Configuration

Figura 6: esecuzione dello script 2_ CreateParentDisks.ps1 terminata

Figura 7: Il Domain Controller che verrà utilizzato nei laboratori

Terminata l’esecuzione dello script 2_CreateParentDisks.ps1 vi verrà chiesto se volete eliminare i primi 2 script. Rispondente come preferite perché la vostra scelta non inficerà sulla creazione del laboratorio e sui successivi passaggi.

Se volete creare un’immagine di Windows 10 vi basterà lanciare lo script che troverete nella cartella Tools e scegliere la ISO di Windows 10 oppure di Windows 10 Insider, con gli eventuali Update che volete installare (file .MSU). Vi verrà chiesto quale versione di Windows volete installare, come mostrato in figura:

Figura 8: Creazione di un VHDX con Windows 10

Figura 9: Installazione del sistema operativo nel VHDX

Al termine della creazione sarà necessario spostare il VHDX dalla cartella Tools alla cartella ParentDisks.

Figura 10: Spostamento del VHDX di Windows 10 nella cartella ParentDisks

Creazione di un laboratorio utilizzando uno Scenario

Come già anticipato, diversi sono gli scenari che possono essere utilizzati per la creazione dei laboratori e sono tutti visibili al link https://github.com/Microsoft/WSLab/tree/master/Scenarios

In questo articolo utilizzerò lo Scenario S2D and Windows Admin Center, che creerà 6 macchine virtuali. Copiate la configurazione presente nella pagina nella sezione LabConfig and Prerequisites e incollatela nel file LabConfig.ps1, come mostrato in figura. Salvate il file LabConfig.ps1

Figura 11: Modifica della configurazione del file LabConfig.ps1 per adattarlo allo scenario scelto

A questo punto, per creare le macchine virtuali, lanciate lo script Deploy.ps1 (o 3_Deploy.ps1 se non lo avete rinominato). Verrà prima creata la macchina virtuale che ospita il Domain Controller e lo script aspetterà che il servizio di Active Directory sia online prima di procedere alla creazione delle altre VM, che verranno tutte automaticamente joinate al dominio (corp.contoso.com). Nell’attesa che il DC sia online potrete ricevere nello script dei messaggi di errore, ma non preoccupatevene perché questi errori sono “by design”.

Figura 12: Creazione delle VM del laboratorio utilizzando lo script Deploy.ps1

Figura 13: Creazione delle VM completata

Figura 14: Macchine virtuali create in Hyper-V

Le macchine virtuali sono state create. Accendetele e procedete con la configurazione dello scenario scelto. La creazione dell’infrastruttura sarà completata in meno di 5 minuti!

Da questo momento in poi le altre operazioni saranno fatte dall’interno delle VM e potete procedere con la configurazione delle funzionalità di Windows Server. A me interessa, con questo articolo, solo farvi vedere come creare facilmente l’infrastruttura di test e quanto sia facile passare da uno scenario all’altro, seguendo le indicazioni presenti su GitHub https://github.com/Microsoft/WSLab/tree/master/Scenarios

Rimozioni del laboratorio

Se volete rimuovere il laboratorio e tutte le macchine virtuali create, compreso i virtual switch, vi basterà lanciare lo script Cleanup.ps1. Le VM vengono individuate tramite il prefisso che avete deciso nel file LabConfig.ps1 e quindi non c’è possibilità che vengano rimosse altre macchine virtuali presenti nella vostra infrastruttura.

Figura 15: La rimozione del laboratorio viene completata in pochissimi secondi

Conclusioni

Davvero interessante creare dei laboratori di test ed eseguire delle configurazioni particolarmente complesse soltanto lanciando pochissimi script PowerShell e partendo dalla ISO di Windows. Utilissimo per le demo da fare ai nostri clienti, utilissimo per lo studio delle nuove funzionalità, utilissimo per risparmiare tantissimo tempo per i nostri test. Grazie Microsoft!

Il malware Rozena si evolve e diventa fileless

Facebooktwittergoogle_plusredditlinkedin

La nuova versione del trojan usa tecniche che gli consentono di compromettere il computer della vittima senza copiare file sul disco. Quando si parla di attacchi “fileless” ci si può riferire a diversi tipi di minacce. In molti casi, infatti, si tratta di attacchi che non utilizzano veri malware ma solo sequenze di comandi che […]

L’articolo Il malware Rozena si evolve e diventa fileless proviene da Securityinfo.it.

Storage Spaces Tiering in Windows Server 2016

Facebooktwittergoogle_plusredditlinkedin

Gli Storage Spaces sono una tecnologia introdotta in Windows Server 2012 ed in Windows 8 che permette di poter proteggere i nostri dati nel caso ci sia un’avaria di uno o più dischi fisici. Si tratta dell’implementazione software del concetto di RAID, il cui scopo è aumentare le performance, rendere il sistema resiliente alla perdita di uno o più dischi e poterli rimpiazzare senza interrompere il servizio.

Con gli Storage Spaces Microsoft introduce un tecnologia che permette di implementare quello che si chiama Software Defined Storage (SDS), che permette di poter collegare alla macchina una serie di dischi (JBOD) e di poter ottenere le stesse funzionalità di una SAN (Storage Area Network).

Si parte dalla creazione di uno Storage Pool (cioè un insieme di dischi fisici) e si crea lo Storage Space, sotto forma di disco virtuale. Il disco virtuale creato viene poi formattato e visualizzato come volume nel sistema operativo.

Figura 1: Principio di funzionamento degli Storage Spaces

In Windows Server 2012 R2 è stata introdotta una nuova tecnologia chiamata Storage Spaces Tiering, che permette di utilizzare dischi diversi (SSD e HDD) all’interno dello stesso Storage Pool. Il vantaggio principale offerto dagli Storage Spaces Tiers è quello di poter conservare i dati che vengono acceduti più frequentemente sui dischi SSD e di spostare i dati più “freddi” sui dischi meccanici HDD, più capienti e decisamente meno costosi.
In questo modo si aumentano di molto le performance offerte dallo storage e l’ottimizzazione avviene in maniera automatica e schedulata.

Creazione dello Storage Pool

Nel mio laboratorio ho utilizzato 4 dischi SSD da 512 GiB ed 8 dischi HDD da 2 TiB. Utilizzando il Server Manager mi sono spostato nel nodo File and Storage Services e ho selezionato Storage Pools. Come si vede dall’immagine sotto, i dischi sono virtuali (sto usando una VM) e vengono visti come dischi SAS. Per creare un nuovo Storage Pool basta cliccare sul pool Primordial e col tasto destro scegliere New Storage Pool

Figura 2: Wizard per la creazione di un nuovo Storage Pool

Date un nome al pool di dischi (nel mio caso si chiamerà Pool1) e cliccate su Next

Figura 3: Nome del Pool di dischi

Nel passaggio successivo verranno mostrati i dischi fisici collegati alla vostra macchina. Potete decidere di utilizzarli tutti o in parte (potete creare diversi Pool) e se saranno inseriti automaticamente nel Pool e quindi contribuiranno fin da subito. È anche possibile utilizzare alcuni dischi come Hot Spare, cioè verranno utilizzati per rimpiazzare dei dischi che eventualmente dovessero subire un guasto.

Figura 4: Allocazione dei dischi (Automatica, Manuale o Hot Spare)

Selezionate quindi i dischi da aggiungere al Pool. Io li ho aggiunti tutti e ho allocato un disco SSD ed un disco HDD di Hot Spare, come mostrato in figura:

Figura 5: Scelta dei dischi da aggiungere al Pool

Figura 6: Conferma delle configurazioni scelte per la creazione dello Storage Pool

Cliccando su Create verrà creato lo Storage Pool. Il processo di creazione dura una manciata di secondi.

Figura 7: Creazione dello Storage Pool

Creazione del Virtual Disk

Terminata la creazione dello Storage Pool, il passaggio successivo consiste nella creazione del Virtual Disk, che poi verrà trasformato in Volume. Dal Server Manager avviate il wizard per la creazione del virtual disk come mostrato in figura:

Figura 8: Wizard per la creazione del Virtual Disk

Poiché nel mio laboratorio sto utilizzando dei vhdx, questi non riescono a far capire a Windows Server il loro Media Type (viene visualizzato come Unknown) e nel momento in cui decido di creare il nuovo Virtual Disk mi accorgo che non è possibile abilitare gli Storage Tiers. È infatti necessario che nello Storage Pool sia disponibile almeno un disco SSD ed almeno un disco HDD.

Figura 9: Creazione degli Storage Tiers non disponibile

Per ovviare a questo problema sarà sufficiente utilizzare un paio di comandi Powershell per sistemare il Media Type dei dischi. Aprite un prompt di PowerShell con privilegi elevati per verificare il Media Type

Get-StoragePool Pool1 Get-PhysicalDisk FT FriendlyName, MediaType, Size

Lanciate il seguente comando per modificare il Media Type di tutti i dischi più piccoli di 1 TiB e configurarli come SSD (io ho 4 dischi da 512 GiB che simuleranno gli SSD)

Get-StoragePool Pool1 Get-PhysicalDisk Size -lt 1TB Set-PhysicalDisk –MediaType SSD

Lanciate il seguente comando per modificare il Media Type di tutti i dischi più grandi di 1 TiB e configurarli come HDD (io ho 8 dischi da 2 TiB che simuleranno gli HDD)

Get-StoragePool Pool1 Get-PhysicalDisk Size -gt 1TB Set-PhysicalDisk –MediaType HDD

Nella figura sotto sono mostrati i risultati dell’operazione:

Figura 10: Modifica degli Media Type dei dischi

A questo punto vi basterà effettuare il refresh nella console del Server Manager per verificare che il Media Type sia stato configurato correttamente

Figura 11: Media Type dei dischi configurato correttamente

Se rilanciate il wizard vedrete che adesso sarà possibile abilitare gli Storage Tiers.

Figura 12: Abilitazione degli Storage Tiers

Una novità introdotta in Windows Server 2016 è l’Enclosure Resiliency. Il sistema operativo si rende conto che i dischi fisici si trovano su Enclosures diversi e quindi quando verrà creato il virtual disk verranno utilizzati dischi fisici in modo che i dati sia presenti su enclosures diversi e che siano disponibili anche se dovesse subire un guasto l’intero enclosure.

Figura 13: Enclosure Awareness ed Enclosure Resiliency

Il volume che voglio creare è un volume di tipo Mirror (simile ai RAID1), che mi permette di avere molta affidabilità anche se a scapito di maggior spazio utilizzato.

Figura 14: Creazione di un virtual disk con funzionalità Mirror

Scelgo anche di creare il virtual disk in modalità There-way Mirror, in modo tale da avere 3 copie del dato ed potervi accedere anche nel caso in cui ci fosse il guato contemporaneo di due dischi fisici.

Figura 15: Configurazione Three-Way Mirror contro la perdita contemporanea di due dischi fisici

Figura 16: Quando di usano gli Storage Tiers è possibile usare solo il fixed provisioning

Scegliete, in base allo spazio a disposizione, la dimensione che avrà il virtual disk. Nel mio esempio voglio creare un disco da 1 TiB utilizzando 265 GiB per il Faster Tier (SSD) e 768 GiB per lo Standard Tier (HDD).

Figura 17: Dimensioni del Virtual Disk e relative specifiche per i Tiers

Confermate le configurazioni scelte e fate clic su Create.

Figura 18: Conifera delle configurazioni del Virtual Disk

La creazione del Virtual Disk dura pochissimi secondi.

Figura 19: Creazione del disco completata

Dalla console Disk Management potrete notare che adesso c’è un nuovo disco, da formattare, della dimensione di 1 TiB.

Figura 20: il Virtual Disk creato è visibile dalla console di Disk Management

Il volume potrà essere creato dalla stessa console di Disk Management oppure dal Server Manager. Se avete lasciato attivato il segno di spunta su Create a volume when this wizard closes nel wizard di creazione del Virtual Disk, vi si aprirà un nuovo wizard per la creazione del Volume.

Figura 21: Selezione del virtual disk su cui creare il Volume

Figura 22: Il Volume deve avere la stessa dimensione del Virtual Disk perché stiamo utilizzando gli Storage Tiers

Assegnate una lettera al Volume.

Figura 23: Assegnazione della lettera al nuovo Volume

Decidete l’etichetta per il nuovo Volume. Potrete formattare il nuovo Volume solo con il File System NTFS perché gli Storage Tiers non permettono di formattare utilizzando il File System REFS.

Figura 24: Etichetta del Volume e File System

Figura 25: Conferma delle configurazioni per la creazione del nuovo Volume

La creazione del nuovo Volume dura pochi secondi

Figura 26: Creazione del Volume completata

Figura 27: Il nuovo Volume è visibile in Esplora Risorse

Processo di ottimizzazione degli Storage Tiers

Windows Server si occupa di ottimizzare in maniera trasparente ed automatica le performance dello storage, spostando i dati che vengono acceduti più frequentemente nel Faster Tier, più veloce ma più costoso e spostando quelli meno utilizzati nello Standard Tier, più lento ma più economico. Durante la giornata gli Storage Spaces creano una heat map dei dati in base a quanto spesso ogni pezzo di dato viene acceduto. Il dato è mappato e spostato tra i diversi livelli, rendendo la fruizione dello stesso molto più perfomante.

Figura 28: Processo di ottimizzazione degli Storage Tiers

Dopo che il wizard è completato verrà automaticamente abilitata anche un’operazione pianificata che si occuperà di gestire ed ottimizzare gli Storage Tiers. L’operazione verrà ripetuta ogni 4 ore ed eseguirà il comando %windir%\system32\defrag.exe -c -h -g -# -m -i 13500

Figura 29: Operazione pianificata per l’ottimizzazione degli Storage Tiers

Conclusioni

Gli Storage Spaces in generale e gli Storage Spaces Tiers in particolare aggiungono a Windows Server le stesse funzionalità che sono tipiche di una SAN (Storage Area Network), riducendone però costi e vincoli all’utilizzo di particolari dischi. Uno degli investimenti maggiori che Microsoft ha fatto negli ultimi anni nello sviluppo di Windows Server è proprio sul Software Defined Datacenter, una serie di tecnologie che permette all’hardware ad al software di espandersi oltre il tradizionale rapporto uno a uno.

MAC – Installare PowerCLI

Facebooktwittergoogle_plusredditlinkedin
Nel precedente post abbiamo installato la “PowerShell” su mac, siamo quindi pronti per poter procedere con l’installazione della PowerCLI VMware.

Apriamo il terminale ed accediamo alla PowerShell digitando:

LIF:~ Lorenzo$ pwsh

Possiamo procedere con l’installazione della PowerCli VMware semplicemente digitando:


PS /Users/lorenzo> Install-Module -Name VMware.PowerCLI -Scope CurrentUser  

e confermare con “Y” per procedere con il download e l’installazione dei vari moduli….. per verificare che siano stati correttamente installati lanciare il comando …


PS /Users/lorenzo> Get-Module -Name VMware.* -ListAvailable

Tutto sembra essere stato installato correttamente. Siamo pronti per poter utilizzare la PowerCLI su nostro macOS.


Alcuni link utili: 
https://ithinkvirtual.com/2018/03/04/install-powershell-and-vmware-powercli-on-centos/
https://blogs.vmware.com/PowerCLI/2018/03/installing-powercli-10-0-0-macos.html
https://notesfrommwhite.net/2018/02/28/installing-powershell-powercli-on-a-mac/

MAC – Installare PowerShell Core

Facebooktwittergoogle_plusredditlinkedin
Abbiamo precedentemente installato il tool (homebrew) necessario per procedere con l’installazione della PowerShell Core come indicato da documentazione Microsoft.

La successiva componente che dobbiamo installare per poter installare PowerShell e successivamente la PowerCLI, è Homebrew-Cask. Procediamo come indicato di seguito:

LIF:~ Lorenzo$ brew tap caskroom/cask

e continuiamo con l’installare la PowerShell

LIF:~ Lorenzo$ brew cask install powershell

Se tutto è andato correttamente ….

Verifichiamo che tutto funzioni correttamente lanciando il comando …

LIF:~ Lorenzo$ pwsh

Come possiamo vedere la PowerShell installata in questo caso è la v6.0.2, tuttavia per avere maggiori dettagli sulla PowerShell installata possiamo digitare direttamente dal prompt della pwsh:

PS /Users/lorenzo> $PSVersionTable 



Verifichiamo i moduli installati di default 

PS /Users/lorenzo> Get-Module * -ListAvailable




Nel prossimo post procederemo con l’installazione della PowerCli VMware.

Disconnect all CD Drives on all VMs of the Cluster

Facebooktwittergoogle_plusredditlinkedin
Problema
Spesso capita che gli utenti a seguito di installazioni e/o aggiornamenti lascino i CD agganciati alle VM, e questo può causare dei problemi. In caso di DRS attivo in modalità “Fully Automated” VMs con CD-ROM  attivi non migrano da un host all’altro; stessa condizione quando si ha la necessità di mettere in “Maintenance” un nodo.


Soluzione
Per risolvere il problema, si è deciso di creare due script in powershell. Il primo script “ListVMsWithDrive.ps1” per ottenere la lista delle VMs che ha i CD-ROM connessi producendo come output un file di testo che può essere editato ed utilizzato come input del successivo script “DisconnectDrive.ps1” per la rimozione dei CD-ROM dalle VM contenute nel file.

Di seguito lo script “ListVMsWithCDDrive.ps1” per avere una lista delle VMs con i CD-ROM connessi.


########################################################################################

#  File  : ListVMsWithCDDrive.ps1

#  Author: Lorenzo Moglie

#  Date  : 17.04.2018

#  Description : The output of the script is a txt file, containing the list of VMs with 

#                the CD-Rom configured for that cluster

#######################################################################################



$vCenter = "<VIRTUALCENTER>"

$CLS = "<CLUSTER-NAME>"

$User = "<USERNAME>"

$Password = "<PASSWORD>"

$VMlist = ".\VMlist.txt"



Connect-VIServer -Server $vCenter -User $User -password $Password | Out-Null



#List of VMs with CD-ROM connected for the whole vCenter

#Get-VM | Get-CDDrive | Where {$_.ISOPath -ne $null} | Sort-Object -Unique ParentID | FT -AutoSize Parent, IsoPath 



#List of VMs with CD-ROM connected only for the specified Cluster - Output on TXT file

#The file can be used as input od the script DisconnectDrive.ps1

Get-VM -Location $CLS  | Get-CDDrive | Where {$_.ISOPath -ne $null} | Sort-Object -Unique ParentID | FT -AutoSize Parent | Out-File $VMlist



#List of VMs with CD-ROM connected - Output on TXT file 

#The file can be used as input od the script DisconnectDrive.ps1

#Get-VM | Get-CDDrive | Where {$_.ISOPath -ne $null} | Sort-Object -Unique ParentID | FT -AutoSize Parent | Out-File $VMlist

Disconnect-VIServer * -Confirm:$false 




Di seguito lo script “DisconnectDrive.ps1” per disconnettere i CD-ROM


########################################################################################

#  File  : DisconnectDrive.ps1

#  Author: Lorenzo Moglie

#  Date  : 17.04.2018

#  Description : This script disconnect the CD-ROM from the VMs present in the input 

#                file

#######################################################################################



$vCenter = "<VIRTUALCENTER>"

$CLS = "<CLUSTER-NAME>"

$User = "<USERNAME>"

$Password = "<PASSWORD>"

$VMlist = ".\VMlist.txt"



Connect-VIServer -Server $vCenter -User $User -password $Password | Out-Null





foreach($VM in Get-Content $VMlist) {


    if ($VM -ne $null) {


        if (($VM.TrimEnd() -contains "Parent") -or ($VM.TrimEnd() -contains "------")){       


        } else {


            Get-VM -Name $VM.TrimEnd() |Get-CDDrive | Where {$_.ISOPath -ne $null} | Set-CDDrive -NoMedia -Confirm:$false 


        }


    }


}




Disconnect-VIServer * -Confirm:$false 




Si è deciso di creare due script proprio per avere la possibilità di decidere su quale VM andare o meno a rimuovere il CD-ROM.

Se non si ha questo tipo di necessità e si vuole disconnettere il CD-ROM sull’intero DataCenter è possibile lanciare il comando di seguito:


 Get-VM | Get-CDDrive | Where {$_.ISOPath -ne $null} | Set-CDDrive -NoMedia -Confirm:$false 




.

ESXi may take long time to boot – Perennialy Reserved

Facebooktwittergoogle_plusredditlinkedin
Il riavvio dei nodi ESXi risultano essere estremamente lento; un nodo impiega a salire circa 45 minuti rimanendo in uno stato apparentemente frizzato come nell’immagine seguente “vmw_satp_alua”…


terminato l’avvio verifico che all’host sono mappate ben 69 LUN di tipo VMFS e 24 LUN RDM (Allocate a dei cluster Microsoft 🙂 ).

Come indicato dalla KB VMware (1016106) “ESXi/ESX hosts with visibility to RDM LUNs being used by MSCS nodes with RDMs may take a long time to start or during LUN rescan” si è deciso di realizzare lo script (in powershell) seguente per identificare le LUN Raw e marcarle su ogni host che fa parte del cluster come perennialy-reserved.

#------------------------------------------------------
# Il seguente script viene fornito "AS IS"
# Author: Lorenzo Moglie
#------------------------------------------------------

$vCenter = "<VIRTUALCENTER>" #<== Inserire FQDN del vCenter
$CLS = "<CLUSTER NAME>" #<== Il nome del cluster
$User = "<USERNAME>"
$Password = "<PASSWORD>"
$PerenniallyReserved = $true #<== $true=per mapparle ; $false=per smappare le LUN

#Connessione al vCenter
Connect-VIServer -Server $vCenter -User $User -password $Password | Out-Null
#Identifichiamo tutte le LUN RDMs che sono configurate su questo cluster
$RAWDisks = Get-VM -Location $CLS | Get-HardDisk -DiskType "RawPhysical","RawVirtual" | Select ScsiCanonicalName

#Identifichiamo gli Hosts ESXi che fanno parte del cluster
$Hosts = Get-VMHost -Location $CLS

foreach($ESXi in $Hosts) {
$ESXi
$myesxcli = Get-EsxCli -VMHost $ESXi
foreach($RDM in $RAWDisks){
#Comando esxcli come da KB(1016106)
#esxcli storage core device setconfig -d naa.id --perennially-reversed=true
$myesxcli.storage.core.device.setconfig($false, ($RDM.ScsiCanonicalName), $PerenniallyReserved)
}
echo "------------------------------------------------------"
}

Disconnect-VIServer * -Confirm:$false


Lanciato lo script, i server si riavviano in 10 minuti.