Archivi tag: powershell

Powershell: importare record DNS da file CSV

Script per importare record A e Cname nel DNS da un file CSV

Esempio di file CSV:
HostName,RecordType,IPAddress
server01,a,192.168.1.1
Service01,cname,server4.mydomain.com

Script

 

Powershell Export And Import Relying Party Trust Claim Rules

Script per esportare, esportare ed importare o importare soltanto le claim AD FS.

 

 

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

Powershell: ottenere tutti i Domain Controller della foresta

Il seguente comando fornisce:

  • Lista di tutti i Domain Controller configurati nella foresta
  • Foresta e dominio di appartenenza
  • Indirizzo IP
  • Site

Eseguire le Microsoft Management Console (MMC) con Runas

Si ha l’esigenza, molte volte, di dover aprire le MMC (ad esempio i tools per la gestione di Active Directory) con credenziali differenti rispetto al dominio di appartenenza. Occorre quindi utilizzare il comando Runas con lo switch netonly.

Il comando, per esempio, per eseguire la MMC di Active Directory Users and Computers è:

Ho configurato uno script in Powershell con le MMC di Active Directory Management Tools:

Esecuzione dello script

E’ possibile modificare lo script aggiungendo o eliminando le varie console.

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

Configurare una Virtual Machine con Windows Nano Server in Hyper-V

Requisiti: ISO Windows Server 2016

Montare la ISO. Per comodità, l’ho scompattata sul disco locale nel percorso: c:\NanoServer\Files

All’interno della directory locale C:\NanoServer, oltre al contenuto della ISO, ho copiato i moduli Powershell.

NanoServer Folder

NanoServer Folder

 

 

 

Da Powershell:

Dove:

  • MediaPath: percorso di dove sono memorizzati i file di Windows Server 2016
  • BasePath: Percorso dove vengono memorizzati i dati temporanei
  • TargetPath: percorso dove verrà memorizzato il disco creato. VHD per VM di Generazione 1, VHDX per VM di Generazione 2
  • MaxSize: dimensione massima del disco. Nel caso non venga inizializzato questo valore, il valore di default è 4 GB.
  • DeplymentType: Guest per macchine virtuali, Host per macchine fisiche
  • Edition: Standard o Datacenter
  • ComputerName: nome della macchina

Per l’elenco completo dei parametri, fare riferimento alla TechNet: https://technet.microsoft.com/itpro/powershell/windows/nanoserverimagegenerator/new-nanoserverimage

Collegare il disco in una nuova macchina virtuale Hyper-V e avviarla.

NanoServer in Hyper-V

NanoServer in Hyper-V

 

Creare lista delle VM configurate in Azure Resource Manager con Powershell

Il seguente script esporta in un file CSV la lista e le configurazioni delle VM configurate in Azure Resource Manager.

Configurazioni esportate:

  • Nome macchina
  • Resource Group
  • Utenza amministratrice locale
  • Indirizzo IP
  • Informazioni dischi

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

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