Archivi tag: powershell

Creare una VM in Azure tramite Powershell e ARM

AzureIl seguente sript crea una Vitual Machine in Azure tramite Powershell e Azure Resource Manager (ARM).

Elementi creati dallo script
  • Resource Group
  • Availability Set
  • Virtual Network e subnet
  • Network interface e Public IP
Caratteristiche VM

Sistema Operativo: Windows Server 2012 R2 DataCenter
Size: Standard A1

Prerequisiti

Powershell v. 5
Modulo Azure 3.0.0 (Installazione e configurazione di Azure Powershell)

Disclaimer: Nessuna garanzia è fornita con questo script. Lo scrivente non è responsabile di qualunque danno possa eventualmente derivarne – lo utilizzate a vostro rischio.

StorSimple 8k: Operazioni di Troublesooting e Recovery Mode

Oltre alle operazioni di Troubleshooting su StorSimple serie 8000 riportate al seguente Link, possono tornare utili i seguenti comandi eseguibili sullo StorSimple collegandosi in PowerShell o da cavo seriale.

  • Abilitare il ping sulle schede di rete
    Enable-HcsPing
  • Verificare lo stato delle schede di rete
    Get-NetAdapter
  • Verificare lo stato del sistema
    Get-HcsSystem
  • Network
    Test-Connection
    Trace-HcsRoute
  • Verificare le impostazioni di rete, la connettività e la registrazione dell’apparato su Azure
    Test-HcsmConnection
  • Verificare lo stato del sistema (System Information, Update disponibili, servizi, versione firmware, etc)
    Invoke-HcsDiagnostics

Nel caso che una delle controller di trovi in “Recovery Mode” (sul portale Azure vedrete la controller in stato “Off”), purtroppo c’è poco da fare se non aprire una chiamata al supporto Microsoft… Per quanto basti un semplice comando per riabilitare la controller (Exit-HcsRecoveryMode).

Può accadere che una controller levata dallo stato di “Recovery Mode” abbia il componente “Cluster” in stato critico (visibile sempre dal portale Azure).
Anche questo per ripristinarlo occorre l’intervento del supporto Microsoft.
Tramite il comando
Get-ClusterNode
viene mostrato lo stato dei nodi del cluster StorSimple.

Resume-ClusterNode

eseguito dalla controller in stato “Paused”, avvia il servizio cluster

Aggiornato il 21 febbraio 2017 con StorSimple aggiornato all’Update 4

[Script Powershell] Connettersi sugli StorSimple serie 8000

Avendo avuto necessità di connettermi tramite Powershell sugli apparati StorSimple serie 8000 tramite HTTP, ho cercato uno script che mi permettesse di automatizzare la connessione.
Mi sono imbattutto nello script di Sam Boutros ma al momento di settare nei Trusted Host l’indirizzo dello StorSimple mi veniva restituito il seguente errore:
Set-Item : Cannot convert ‘System.Object[]’ to the type ‘System.String’ required by the parameter. Specified method is not supported.

Ho quindi modificato lo script come segue:
$StorSimpleIP = get-content -path .\IPStorSimple.txt

foreach ($address in $StorSimpleIP) {set-item wsman:\localhost\Client\TrustedHosts -Value $address.ToString() -Force}

# Get pwd for SSAdmin, store in encrypted local file for future automation
if (!(Test-Path -Path “.\SSCred.txt”)) {
Read-Host ‘Enter the pwd for your StorSimple administration’ -AsSecureString | ConvertFrom-SecureString | Out-File .\SSCred.txt
}
$Pwd = Get-Content .\SSCred.txt | ConvertTo-SecureString
$SSCred = New-Object -TypeName System.Management.Automation.PSCredential -ArgumentList “$StorSimpleIP\ssadmin”, $Pwd

$StorSimpleSession = Get-PSSession | where { $_.ComputerName -eq $StorSimpleIP }
if (! $StorSimpleSession) { $StorSimpleSession = New-PSSession -ComputerName $StorSimpleIP -Credential $SSCred -ConfigurationName SSAdminConsole }
$StorSimpleSession

Enter-pssession -credential $SSCred -ConfigurationName SSAdminConsole -ComputerName $StorSimpleIP

ScriptConnectStorSimple

Copy-VMFile: copiare un file dall’Host Hyper-V in una macchina virtuale

HyperV_logoCon Windows Server 2012 R2, in Hyper-V è stato introdotto il cmdlet Copy-VMFile. Questo serve per copiare un file dall’Host Hyper-V in una macchina virtuale.

Sintassi
Copy-VMFile "nome.della.macchina" -SourcePath c:\file\da\copiare.xyz -DestinationPath C:\path\destinazione\copiare.xyz -FileSource Host

Prerequisiti

  • Integration Services” nelle VM aggiornati
    Per verificarlo:
    Get-VM | Select Name, IntegrationServicesVersion, @{Name="IsUpdateNeeded";Expression={$_.IntegrationServicesVersion -lt [version]'6.3.9600.16384'}}
  • Guest Services Interface” abilitati
    Per verificarlo
    Get-VM | Get-VMIntegrationService -Name "Guest Service Interface" | Select VMName, Enabled
    Per abilitarli
    Get-VM "nome.VM" | Get-VMIntegrationService -Name "Guest Service Interface" | Enable-VMIntegrationService -Passthru
  • Servizio “Hyper-V Guest Service Interface” all’interno della VM sia abilitato
    Per verificarlo

Get-Service -Name vm*

Technet con descrizione del funzionamento del cmdlet Copy-VMFile: https://technet.microsoft.com/en-us/library/dn464282(v=wps.630).aspx

Script Powershell – Report farm Hyper-V

HyperV_logoMi occorreva uno script che restituisse lo stato dei volumi configurati in un cluster Hyper-V.

Mi sono imbattuto in questo simpatico script che oltre a fare quello che cercavo, invia tramite e-mail un report dettagliato in HTML sulla farm Hyper-V.
Tra le varie voci del report:

VM Name
Up-Time
Integration Component Version
Clustered or Not
No of vProcessors
StartUp Memory
Minimum Memory
Maximum Memory
Average Memory (If Resource Metering is enabled)
vDisk1-Storage (CSV Volume or Local Drive Letter)
VHDX – Disk 1 – Allocated Size
VHDX – Disk 1 – Actual Usage
Disk Fragmentation
vDisk2-Storage (CSV Volume or Local Drive Letter)
VHDX – Disk 2 – Allocated Size
VHDX – Disk 2 – Actual Usage
Disk Fragmentation
Type of Disk – VHD or VHDX
vNIC – Legacy or Synthetic
Date – First Snapshot created

Screenshot: Storage Report

Reference: http://insidevirtualization.com/hyperv3/hyper-v-dashboard-v-3-3-released/

Schedulare uno script Powershell EMS 2010 usando lo schedulatore di Windows

Step per schedulare uno script che utilizza la Exchange Management Shell (EMS) 2010.

  1. Dallo schedulatore, “Create Basic Task…
  2. Schedulare lo script nella sezione “Trigger
  3. Nella sezione “Action“, selezionare “Start a program
    • In Program/script: C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe
    • In Add arguments (optional): -WindowsStyle Hidden -command “. ‘C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1’; Connect-ExchangeServer -auto; c:\script\myscript.ps1”
       WindowsStyle Hidden: per non far apparire finestre a monitor
       c:\script\myscript.ps1: script da far girare

Create Basic Task Wizard

Script ruoli FSMO e GlobalCatalogs

Script Powershell per individuare i ruoli FSMO ed i server GC

DISCLAIMER: Nessuna garanzia per lo script. Lo usate a vostro rischio. Lo scrivente non è responsabile di qualunque danno possa eventualmente derivarne 😉