Archivio

Archive for the ‘IT/TLC’ Category

WPC2017 – CLI over platforms

Ok! Anche quest’anno WPC è terminata… Anche per quest’anno ho potuto vivere una stupenda esperienza sul palco di WPC!

Tante emozioni, difficili da descrivere, condensate in 3 giorni, che ti restano dentro. Questa conferenza è un momento di crescita importante ed ogni anno si guadagna qualcosa, soprattutto dalle persone presenti.

Un ringraziamento allo staff di Overnet (@OverNetE), a Michele Sensalari (@ilsensa7), Francesco Diaz (@francedit), Roberto Freato (che prima o poi aprirà un account twitter!!!), Fabio Franzini (@franzinifabio) ed Alessandro Appiani (@AlexAppiani) per l’opportunità di salire di nuovo sul palco! Grazie ai partecipanti con cui siamo riusciti anche a divertirci nei momenti di pausa e (lo ammetto) mentre scattavo fotografia e tutti!!!

Annunci

WPC 2017: sessione confermata!

Anche quest anno sarò a #WPC2017it !!! #PowerShell #bash http://wpc2017.it/cms/it-IT/SpeakerPage?parameters%5B0%5D=65 🙂

Windows Management Framework 5.1: RILASCIATO

Da ieri è disponibile per il download il pacchetto WMF51, liberamente scaricabile dal link: http://www.microsoft.com/en-us/download/details.aspx?id=54616

Alla pagina MSDN  troverete maggiori informazioni direttamente dal team di PowerShell 🙂

Buono scripting a tutti!!!!

Categorie:.NET, IT/TLC, PowerShell

Icona “Alimentazione” oppure “Opzioni risparmio energia”?

Ad alcune persone non piacciono le novità della veste grafica di Windows 10, specie per quanto inerente le icone di sistema ed il centro notifiche. Personalmente mi piace il nuovo look, per chi invece amasse lo stile vintage, specie per la gestione delle opzioni di risparmio energia, aggiungendo un semplice valore al registro di sistema renderà nuovamente l’icona “batteria” identica al buon Windows 7.

Per impostare il valore è sufficiente eseguire PowerShell con privilegi amministrativi e digitare il seguente cmdlet:

 

New-ItemProperty
-Path
HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\ImmersiveShell `


-Name
UseWin32BatteryFlyout
-PropertyType
DWORD
-Value
1
-Force

 

Se al posto di impostare “1” mettessimo uno “0” allora forzeremmo la nuova visualizzazione..

Vi ricordo che la variazione dei valori del registro di Sistema è un azione a Vostro rischio e pericolo, né lo scrivente né Microsoft risponderanno di eventuali problem e/o malfunzionamenti e/o danni ai vostri Sistemi operative.

Buono scripting a tutti!!! Che PowerShelll sia con Voi!!!

Categorie:IT/TLC, PowerShell, Windows

Aggiornamento forzato di GPO da remoto con PowerShell

Uno degli aspetti più delicati nella gestione delle infrastrutture di dominio sono le Group Policy. Tutti gli amministratori di rete hanno implementato almeno 8 impostazioni mediante le GPO (Group Policy Objects), per intenderci, quelli legati alla scadenza delle password ed il blocco degli account. Pochi, invece, implementano GPO complesse ed ancor meno sfruttano l’applicazione di regole alle OU (Organizational Units) per impostazioni granulari di regole; tutti però hanno l’esigenza di propagare le GPO ai destinatari. Come noto le GPO possono essere per utente o per computer, vengono applicate all’avvio del pc ed all’accesso dell’utente, vengono rinfrescate periodicamente (tipicamente ogni 120 minuti), alcune possono essere recepite dopo un paio di riavvii…e noi stiamo ad aspettare! Noioso, direi! Possiamo far in modo che le GPO su una specifica macchina vengano aggiornate anzi tempo? CERTO! Tra i vari comandi presenti sui nostri pc è disponibile GUPUDATE, un eseguibile che ci permette di aggiornare le GPO per la nostra macchina, ma risulta poco adatto per l’esecuzione su altre macchine; con PowerShell, invece, abbiamo la possibilità di effettuare l’aggiornamento delle GPO di macchine remote con uno sforzo minimo utilizzando il cmdlet Invoke-GPUpdate.

L’utilizzo di questo cmdlet è molto semplice, specificando il parametro -Computer seguito dal nome del computer (o dall’elenco dei nomi di computers separati da virgola) verrà eseguito remotamente l’aggiornamento delle GPO. Ovviamente è disponibile il parametro -Force per imporre l’esecuzione forzata dell’aggiornamento ed è possibile specificare, col parametro -Target, su quale gruppo d’impostazioni agire (Computer oppure Users).

Siccome PowerShell è uno strumento di gestione ed automazione risulta più interessante leggere le macchine a cui applicare l’aggiornamento delle GPO direttamente da Active Directory Domain Services. Utilizzando il cmdlet Get-ADComputer potremo ottenere l’elenco delle macchine e quindi passando in pipe il risultato far eseguire l’operazione mediante il ciclo foreach. Purtroppo Invoke-GPUpdate non ammette il passaggio di parametri in pipe, quindi siamo obbligati ad utilizzare foreach per scandire ogni oggetto estratto da Get-ADComputer.

Così facendo chiederemo al sistema di leggere tutte le macchine da AD DS e riapplicare le GPO. Ovviamente in una piccola realtà questo è sicuramente fattibile in tempi ragionevoli ma in realtà molto estese potrebbe essere abbastanza impegnativo eseguire questa sequenza di cmdlets! Per questo motivo, specie su realtà geograficamente distribuite o molto articolate (in particolare con la struttura delle GPO) sarebbe idoneo applicare un filtro per la lettura dei sistemi da AD DS, per applicare questa limitazione alla ricerca va specificato il parametro -SearchBase al cmdlet Get-ADComputer. Il valore del parametro deve essere imputato in formato LDAP, come nel sottostante esempio (occhio all’accento grave!!!!).

Per far sì che le GPO vengano rilette mediante Invoke-GPUpdate è necessario ricordarsi di abilitare sulle macchine Windows Remote Management (WinRM), mediante l’esecuzione del cmdlet Enable-PSRemoting, e che le porte del firewall siano aperte per garantire l’accesso al servizio WinRM.

Per comodità potrete accedere al file DistribuzioneGPO.ps1 per copiare i cmdlets proposti in questo post. Attenzione alla versione di PowerShell che state utilizzando! È necessario utilizzare almeno la versione 3 (quindi da Windows Server 2012/Windows 8 in poi).

Buono scripting a tutti!!! J

Archivi compressi con PowerShell

Lavorando con un’edizione core di Windows Server 2012 R2 si presume di non poter sfruttare alcune delle caratteristiche messe a disposizione dell’edizione con interfaccia grafica, come per esempio la possibilità di comprimere dei files/cartelle in un archivio compresso oppure di effettuare il processo inverso, quindi l’espansione di in file compresso. PowerShell mette a disposizione due cmdlets per effettuare queste operazioni:

  • Compress-Archive: comprime files o cartelle all’interno di un archivio;
  • Expand-Archive: espande il contenuto di un archivio nel percorso assegnato.

Perché comprimere dei files con un cmdlets PowerShell? Possono esserci numerosi motivi, per esempio, potrebbe essere comodo conservare in un file compresso i risultati dell’elaborazione di un processo, mantenere traccia dei logo di un programma (che vengono regolarmente sovrascritti), allegare ad una mail informazioni relative allo stato del sistema ed altro ancora. Come riportato in figura l’uso del cmdlet di compressione è molto semplice, basta indicare ciò che vogliamo comprimere e l’archivio di destinazione, non serve altro poiché il livello di compressine predefinito è Optimal. Ho riportato, nella medesima figura i risultati ottenibili con i vari livelli di compressione di Compress-Archive ed il confronto con l’output di “cartelle compresse” di Windows Explorer; PowerShell lavora meglio del sistema!!! J

Se al posto di specificare, per il parametro -Path, un file (o più files separati da virgola) specificassimo una cartella otterremmo come risultato un file compresso con l’intero contenuto del percorso specificato. E se specificassimo più cartelle, separate da virgola???? Esattamente come per i files!!! L’archivio compresso conterrebbe esattamente i contenuti specificati!!!

Il parametro -Update di Compress-Archive ci permette di aggiornare i contenuti di un archivio compresso già esistente. Se però dimenticate di specificare questo parametro, ed eseguirete la compressione di contenuti usando l’archivio compresso esistente, perderete i contenuti precedentemente archiviati.

La decompressione dell’archivio è molto semplice, specificando l’archivio compresso come valore del parametro -Path ed indicando la cartella di destinazione come valore del parametro -DestinationPath, verrà creata (qualora non presente) la cartella di destinazione ed i nostri contenuti saranno disponibili per le nostre elaborazioni. Il parametro -Force impone la sovrascrittura della destinazione, qualora vi siano già i contenuti presenti nel nostro archivio compresso.

Un esempio pratico potrebbe essere interessante. Ammettiamo che sulla macchina sia caricata un’istanza di SQL Server 2014, voglio salvare un database di quell’istanza e poi lo voglio archiviare in un luogo diverso (e voi direte, parametrizza il cmdlet di salvataggio!!!) ma devo ridurre al massimo la dimensione del backup. Posso, molto semplicemente, preparare uno script per effettuare in pochi passaggi quanto desiderato.

$DBName = ‘YourDBName’

$SQLInstanceName = ‘YourSQLInstanceName’

$BackupDateTime = Get-Date -Format yyyyMMddHHmmss

$BackupFile = “C:\YourPath\$($DBName)_db_$($BackupDateTime).bak”

$CompressedBackupFile = “C:\YourPath\$($DBName)_db_$($BackupDateTime).zip”

Backup-SqlDatabase -ServerInstance $SQLInstanceName -Database $DBName -BackupFile $BackupFile

Compress-Archive -Path $BackupFile -DestinationPath $CompressedBackupFile

Remove-Item -Path $BackupFile

Mi vogliano scusarmi i DBA di SQL Server se non sono stato molto accurato nella preparare questo script, so che comprenderanno!!! J

In ogni caso, lo script proposto lo potrete prelevare a questo link: BackupSQL-with-compression.ps1

Il risultato che otterremo dall’esecuzione dello script è abbastanza evidente (ho evitato la rimozione del file di salvataggio solo per mostrare che l’operazione viene eseguita)

Buona compressione a tutti!!! E buono scripting!!!

Security Bulletin – Accorgimenti utili contro gli attacchi informatici

CryptoLocker è una specie di “virus” che cripta i documenti ed i dati dei pc e dei dischi di rete. I pc vengono infettati con un messaggio di posta in cui è presente, in allegato, un file compresso (.ZIP) che contiene un programma. Questo allegato NON viene riconosciuto come un virus, perché di fatto non lo è, ma crea più danni di un virus poiché una volta completata la cifratura dei files non è più possibile invertire il procedimento se non mediante una chiave di sblocco. Questa chiave si “compra” con della valuta elettronica (bitcoins), che non è propriamente semplice da reperire e non è certo che, dopo il pagamento, si ottenga quanto necessario per ripristinare i files.

Questo è uno dei tanti “attacchi informatici” che stanno circolando in rete, come le mail fasulle dei gestori di servizi di energia e gas.

Siccome i files, che siano aziendali o personali, sono un bene prezioso e quindi da tutelare, per cui sarebbe utile seguire alcune semplici regole, che sono più che altro di buon senso e sono tendenzialmente valide per l’utilizzo di strumenti informatici a prescindere dal tipo di attacco/virus, per evitare di incappare in questi problemi:

  1. Salvare, su nastro (consigliato per le aziende) o su disco/dischi esterni (sia per privati, sia per aziende) i propri documenti e dati;
  2. Leggere con attenzione le mail prima di aprire gli allegati. Spesso le mail che contengono questo genere di “virus”, o simili, sono scritte in italiano scadente (verbi coniugati male, vocaboli sbagliati, spazi mancanti, plurali/singolari errati) e spesso ci vengono inviate da mittenti sconosciuti o con un indirizzo “strano”;
  3. Dotarsi di prodotti antivirus/antimalware validi (quelli gratuiti non vanno bene!!!!! Un buon antivirus domestico costa eccessivamente e seppur non sia la garanzia che non accada nulla di spiacevole è comunque una tutela molto importante (che potrebbe risparmiare molti soldi). Sarebbe consigliabile un prodotto che controlli anche le mail ed il traffico internet (opinioni ed indicazioni in merito a prodotti validi le fornirò in privato, a chi interessasse);
  4. I gestori dei servizi (come Enel, A2A, le banche) non inviano file compressi, al massimo troverete un allegato PDF od un collegamento ad una pagina del loro sito per scaricare il documento in formato PDF;
  5. Utilizzare un firewall per bloccare il traffico indesiderato (da #Windows7 il firewall di sistema è molto efficiente e con #Windows10 è stato anche migliorato) ed impedire che programmi non autorizzati possano accedere alla rete pubblica;
  6. [PER LE AZIENDE] Evitare l’utilizzo dei dischi di rete mappati!!! Questo tipo di attacco cerca questo tipo di dichi e li processa subito, essendo risorse (tipicamente) ospitate sui servers si comprometterebbe l’operatività di molte persone;
  7. [PER LE AZIENDE] Limitare i permessi di lettura/scrittura ai soli utenti che ne abbiano reale necessità;
  8. [PER LE AZIENDE] Limitare il numero degli amministratori di rete e, soprattutto, abbassare i privilegi degli utenti amministrativi al minimo necessario per lo svolgimento della propria mansione (non servono privilegi amministrativi per scrivere documenti Word/Excel od utilizzare i gestionali aziendali!!!!!);
  9. [PER I PRIVATI] Attivare il “controllo genitori” e seguire i minori durante l’uso del computer;
  10. Mantenere aggiornato il sistema operativo con gli aggiornamenti automatici;
  11. AGGIORNARE IL SISTEMA OPERATIVO almeno a Windows 7 (#Windows10 sarebbe meglio J ), Windows XP ormai è vulnerabile e non è più in manutenzione!!!!
  12. Windows, ma in genere tutti i sistemi operativi, sono l’interfaccia per l’essere umano verso il sistema elettronico, quindi, se l’utente sceglie che qualcosa (di potenzialmente dannoso, magari) debba essere eseguito, il sistema lo esegue…quindi prestare attenzione a cosa si conferma di eseguire è importante!!! Quindi, nel dubbio, è meglio non eseguire programmi “sconosciuti”.

Sono disponibile ad approfondire queste tematiche con chi lo gradisse ed eventualmente anche per le valutazioni sulle implementazioni. Purtroppo so che non è sempre possibile prestare attenzione a questi argomenti, ma sta diventando sempre più importante conoscere gli strumenti con cui lavoriamo e quotidianamente ci rapportiamo per evitare spiacevoli inconvenienti e mantenere al sicuro le nostre informazioni.

Potete anche dare un’occhiata al sito Microsoft per altri bollettini della sicurezza.

Buon lavoro!

%d blogger hanno fatto clic su Mi Piace per questo: