Category Archives: Powershell

Gli IT Pro possono connettersi a Microsoft Graph Security utilizzando il PowerShell Module

Oggi vi annunciamo che è disponibile un nuovo modulo PowerShell per il Microsoft Graph Security API che semplifica la possibilità degli IT Pro di connettersi alle API dalla console PowerShell.
Questo modulo è disponibile nella gallery PowerShell, grazie al contributo della community del team di Microsoft Cloud Security’s Customer Experience Engineering.

Il Microsoft Graph Security API connette diverse soluzioni di sicurezza per abilitare una più semplice correlazione di alert, fornisce accesso ad informazioni contestuali ricche, semplifica le automazioni e l’investigazione.
Questo potenzia le aziende e le rende in grado di ottenere velocemente risultati e prendere provvedimenti su tutti i prodotti di sicurezza mentre riduce il costo e la complessità di creare e mantenere molteplici integrazioni.

Per ulteriori dettagli sull’integrazione con Microsoft Graph Security API:
Microsoft Graph Security API overview;
Use the Microsoft Graph Security API.

Per iniziare
Utilizzate questo modulo per avere accesso ai security alerts ed alle informazioni di Secure Score nel vostro tenant Azure Active Directory (Azure AD) per diversi prodotti di sicurezza.
Per ulteriori dettagli: documentazione.

1. Assicuratevi di avere PowerShell v5 o successivi (standard su Windows 10).
2. Registrate la vostra applicazione per questo modulo PowerShell in Azure AD in modalità user-delegated. Come parte di questo secondo punto:

  • selezionate la voce ‘Add Platform’ (alla sezione Platforms);
  • scegliete ‘Native Application’;
  • Conservate il redirect URI come ‘urn:ietf:wg:oauth:2.0:oob’: questo è necessario perchè funzioni il redirect delle applicazioni desktop.

3. Configurate i permessi ed assicuratevi di aggiungere il permesso SecurityEvents.ReadWrite.All alla vostra applicazione. Recuperate il vostro Azure AD tenant administrator per garantire il consenso del tenant administrator alla vostra applicazione. Questa è un attività che dovrete fare una sola volta a meno che non cambino i permessi per l’applicazione.
4. Aprite il vostro terminal PowerShell come amministratore ed installate il modulo eseguendo il comando Install-Module MicrosoftGraphSecurity come mostrato nel diagramma qui sotto.

Gli IT Pro possono connettersi a Microsoft Graph Security utilizzando il PowerShell Module
Attenzione: se è la prima volta che installate un modulo, vi verrà chiesto di installare il Nuget Package Provider.

Autenticazione
Dovrete autenticarvi prima di poter iniziare a recuperare ed aggiornare i dati provenienti dal Microsoft Graph Security API.
L’autenticazione sarà richiesta a seguito dell’iniziale accesso ai dati o quando l’authentication scade.
1. Inserite Get-GraphSecurityAlert;
2. Digitate il vostro username e l’ID dell’applicazione quando richiesto(dal processo di registrazione dell’app nella sezione getting started), come illustrato qui sotto.

Gli IT Pro possono connettersi a Microsoft Graph Security utilizzando il PowerShell Module

3. Inserite la vostra password quando vi viene richiesto. A seguito di un’autenticazione di successo, verrà stabilita la connessione con Microsoft Graph Security API e vedrete subito la lista degli alert.

Scenari utenti
In questo paragrafo, andiamo a vedere un set di scenari rappresentativi.
Fate riferimento alla documentazione (link) per la lista completa delle istruzioni della riga di comando PowerShell supportate ed associate con ogni comando per adattarlo al vostro scenario.

Ottieni gli ultimi alert per la Security Management
Potete ottenere visibilità sui top alert utilizzando questo modulo dal comando Get-GraphSecurityAlert -top 1.
Eseguendolo, vi verranno restituiti gli alert più recenti ricevuti da ognuno dei prodotti di sicurezza eseguiti nel tenant di Azure AD supportato dal Microsoft Graph Security API.
Questo vi permette di correlare recenti comportamenti sospetti provenienti dai diversi prodotti.

Gli IT Pro possono connettersi a Microsoft Graph Security utilizzando il PowerShell Module

Analizzare gli alerts associati ad un utente
Potete aggiungere diverse istruzioni della riga di comando per recuperare gli alert provenienti da diversi security products filtrati per nome principale dell’utente.
Ad esempio:
Get-GraphSecurityAlert -userPrincipalName -severity medium -Verbose | select title, status, description, assignedTo, severity, userStates
come illistrato nell’immagine seguente.
Questo abilita un’analisi iniziale in cui le attività sospette dell’utente, segnalate da diversi prodotti di sicurezza, possono essere tracciate per capire dove pianificare il prossimo livello di analisi.

Gli IT Pro possono connettersi a Microsoft Graph Security utilizzando il PowerShell Module

Personalizzate il recupero degli alert sulla base del vostro scenario
Eseguite il comando Get-GraphSecurityAlert – per recuperare una lista di tutte le proprietà che potete poi filtrare per recuperare gli alert, come illustrato nel diagramma seguente. Fatevi un giro all’interno per scoprire le tipologie supportate per ognuno degli switch che utilizzano i vostri tasti direzionali.
Per esempio, nel diagramma seguente, possiamo vedere che il cambio di versione richiede un valore di tipo string type.
Potete costruire il vostro comando, utilizzando diversi valori di proprietà disponibili per ottenere gli alert basati sul vostro scenario per una gestione di sicurezza ed un’analisi customizzata.

Gli IT Pro possono connettersi a Microsoft Graph Security utilizzando il PowerShell Module

Aggiornare gli alert per una gestione della sicurezza migliore
Potete aggiornare gli alert dal comando Set-GraphSecurityAlert -id .
Potete aggiornare lo stato dell’alert in resolved come mostrato nell’esempio seguente o assegnare un alert per un’analisi o dei tag alert per filtrare quelli necessari ad una gestione della sicurezza migliore.

Eseguite il comando Set-GraphSecurityAlert – per ottenere una lista di tutte le proprietà che potete usare per creare il vostro comando di aggiornamento dell’alert.

Gli IT Pro possono connettersi a Microsoft Graph Security utilizzando il PowerShell Module

Ottenere il Secure Score per avere visibilità sul livello di sicurezza
Potete ottenere l’informazione relativa al vostro punteggio di sicurezza eseguendo il comando Get-GraphSecuritySecureScore come illustrato nell’immagine seguente per avere informazioni sul livello della sicurezza della vostra azienda e determinare quali sono le azioni da intraprendere per migliorare il punteggio nel corso del tempo.

Eseguite il comando Get-GraphSecuritySecureScore – per ottenere una lista di tutti gli switch che potete usare per creare il vostro comando secure score.

Gli IT Pro possono connettersi a Microsoft Graph Security utilizzando il PowerShell Module

Per concludere
Provate il nuovo modulo PowerShell per Microsoft Graph Security API e fornite il vostro feedback, compilando il PowerShell module repo.


Le informazioni presenti in questo post, sono prese dall’articolo: IT Pros can now easily connect to Microsoft Graph Security with the PowerShell Module!.

SharePoint Online Automation: caricare i file locali su SharePoint usando PowerShell

SharePoint Online Automation: caricare file da remoto nelle Document Library di SharePoint Online usando PowerShell

In questo post, andiamo ad esplorare Office 365 SharePoint Online.
In particolare, vedremo come caricare i vostri file da infrastrutture locali alle document library di SharePoint utilizzando PowerShell in SharePoint Online Office 365.
Si tratta di query molto comuni ed esigenze spesso avanzate dagli Amministratori che hanno bisogno di caricare i file archiviati in sistemi locali, sui siti SharePoint.

Come fare?
Aprite Windows PowerShell con diritti da Admin e copiateci lo script seguente.

SharePoint Online Automation: caricare file da remoto nelle Document Library di SharePoint Online usando PowerShell
Questo comando vi permette di caricare un file all’interno della SharePoint document library

A questo punto, dobbiamo aggiornare i seguenti dettagli:

$User= nome utente del vostro account di Office 365
$Password= password del vostro account
$Site URL= URL di SharePoint Online in cui volete copiare o spostare un documento
$Folder= location di destinazione.

$DocLibName= Il nome della Document Library in cui volete copiare i file provenienti dal sistema locale

#Specificate l’amministratore del tenant e l’URL del sito

$User=”vostro id”

$Password=”vostra password”

$SiteURL=”URL del sito/”

$Folder=”C:\Script\test”#percorso in cui volete copiare il file

$DocLibName=”Documenti”#Docs library

#Aggiungete i riferimenti ai gruppi di client SharePoint ed autenticatevi sul sito di Office 365 – necessario per CSON

Add-Type-Path”C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.dll”

Add-Type-Path”C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\16\ISAPI\Microsoft.SharePoint.Client.Runtime.dll”

#Collegatevi alla site collection

$Context=New-ObjectMicrosoft.SharePoint.Client.ClientContext($SiteURL)

$Creds=New-ObjectMicrosoft.SharePoint.Client.SharePointOnlineCredentials($User,(ConvertTo-SecureString$Password-AsPlainText-Force))

$Context.Credentials=$Creds

#Recuperate la lista

$List=$Context.Web.Lists.GetByTitle($DocLibName)

$Context.Load($List)

$Context.ExecuteQuery()

#Caricate i file

Foreach ($Filein (dir$Folder-File))

{

$FileStream=New-ObjectIO.FileStream($File.FullName,[System.IO.FileMode]::Open)

$FileCreationInfo=New-ObjectMicrosoft.SharePoint.Client.FileCreationInformation

$FileCreationInfo.Overwrite=$true

$FileCreationInfo.ContentStream=$FileStream

$FileCreationInfo.URL =$File

$Upload=$List.RootFolder.Files.Add($FileCreationInfo)

$Context.Load($Upload)

$Context.ExecuteQuery()

}

Salvate lo script qui sopra una volta effettuati tutti i cambiamenti.
In questo script, come potete vedere, è stata aggiunta la voce Add-Type -path che si riferisce ai file di riferimento di SharePoint Online Management Shell.

Inoltre, per evitare errori, vi consigliamo di seguire i seguenti passaggi.

– Assicuratevi che il componente SDK di SharePoint client sia installato sulla macchina utente. Se così non fosse, scaricate il file eseguibile (SharePoint Server 2013 Client Components SDK) ed installatelo nel vostro sistema locale;
– I percorsi SharePoint.Client.dll e Microsoft.SharePoint.Client.Runtime.dll menzionati nello script sono i medesimi della macchina utente;
– Impostate le “execution policies” per PowerShell nella macchina utente, eseguendo il Remote signed.

Eseguite ExecutionPolicyRemotesigned.

Una volta verificati tutti i pre-requisiti, siete pronti per eseguire lo script che caricherà il vostro file dal sistema locale al sito SharePoint all’interno di una document library.
A questo punto, cliccate F5 ed aspettate qualche istante per far sì che tutti i file copiati dal sistema locale vengano caricati su SharePoint Online Document Library.

Qui sotto vi mettiamo i link ad alcuni tutorial su SharePoint e PowerShell:

Getting Started with PnP PowerShell – SharePoint 2013/2016/SharePoint Online
Bulk SharePoint Online Site Collection Creation using PowerShell
PowerShell Script to deploy WSP Solution in SharePoint 2013
Working with PowerShell in SharePoint Online/2016/2013
Working with PowerShell Variables
SharePoint 2016 PowerShell Script to list all Users in Site Collection
Create a web application in SharePoint 2016 from Central Administration and using PowerShell
SharePoint 2013 backup and restore using PowerShell
Retrieve List Items Created in Last N days using PowerShell SharePoint Online
Delete list items created before N days using PowerShell in SharePoint Online

Fondamenti di PowerShell: come effettuare il Troubleshoot delle problematiche di replica dell’Active Directory

Vi sono alcuni comandi windows che possono essere utilizzati per effettuare il troubleshooting di problematiche di replica.
Fra queste, Repadmin.exe è l’utenza di Microsoft maggiormente utilizzata ed è disponibile in server che hanno installato ruoli AD DS o AD LDS.
È anche una componente del Remote Server Administration Tools (RSAT). Raccomandiamo di eseguire questa utility come Domain Administrator o Enterprise Administrator. È inoltre possibile delegare i permessi solo alla revisione e gestione dalla replica.

Vediamo che azioni innescano i singoli comandi.

repadmin /replsummary /bydest
Riassume lo stato di replica per tutti i domain controller basati sulla destinazione di replica.
Il parametro non mostra il domain controller sorgente.

repadmin /replsummary /bysrc
Riassume lo stato di replica per tutti i domain controller basati sulla sorgente di replica.
Il parametro non mostra il domain controller della destinazione.

repadmin /showrepl REBEL-SRV01.therebeladmin.com
Mostra i partner di replica per REBEL-SRV01.therebeladmin.com e lo stato dell’ultimo tentativo di sincronizzazione.

repadmin /showrepl /errorsonly
Elenca i partner di replica che hanno errori di replica (con l’ultimo tentativo di sincronizzazione fallito).

Possiamo inoltre vedere i risultati in formato CSV –> repadmin /showrepl /csv

Fondamenti di PowerShell: come effettuare il Troubleshoot delle problematiche di replica dell'Active Directory

repadmin /syncall REBEL-SRV01 dc=therebeladmin,dc=com
Il comando qui sopra innesca la sincronizzazione della partizione del domain directory con tutti i partner di replica di REBEL-SRV01.
Vi indica inoltre se vi sono delle problematiche.

Fondamenti di PowerShell: come effettuare il Troubleshoot delle problematiche di replica dell'Active Directory

repadmin /showchanges REBELNET-PDC01 d3f89917-5fff-40a8-scc2-b148b60d9309 dc=therebeladmin,dc=com
Questo comando elenca i cambiamenti che non sono replicati tra il server REBELNET-PDC01 e REBEL-SRV01.
In questo caso, REBEL-SRV01 è il server sorgente ed è elencato con l’oggetto GUID.

Fondamenti di PowerShell: come effettuare il Troubleshoot delle problematiche di replica dell'Active Directory

repadmin /replicate REBEL-SRV01 REBELNET-PDC01 dc=therebeladmin,dc=com
Il comando qui sopra, intraprenderà immediatamente la replica della ripartizione della directory da REBELNET-PDC01 a REBEL-SRV01.

Oltre al repadmin, vi sono alcuni comandi PowerShell che possiamo utilizzare per effettuare il troubleshoot delle problematiche di replica.
Il comando Get-ADReplicationFailure è uno di quelli che vi permette di raccogliere i dati relativi alle repliche fallite.

Get-ADReplicationFailure -Target REBEL-SRV01
Raccoglie le informazioni sulle repliche fallite associate a REBEL-SRV01.

Questa raccolta di informazioni può essere fatta su molteplici server:
Get-ADReplicationFailure -Target REBEL-SRV01,REBELNET-PDC01

Inoltre, possiamo rivolgerci a tutti i domain controller presenti nel dominio:
Get-ADReplicationFailure -Target “therebeladmin.com” -Scope Domain

O all’intera foresta: Get-ADReplicationFailure -Target ” therebeladmin.com” -Scope Forest

Il comando Get-ADReplicationConnection può elencare i dettagli della lista di replication partner per un determinato domain controller.

Get-ADReplicationConnection -Filter *
Elencherà le connessioni di replica per il domain controller nel quale siete loggati.

Fondamenti di PowerShell: come effettuare il Troubleshoot delle problematiche di replica dell'Active Directory

Possiamo inoltre filtrare le connessioni di replica a seconda degli attributi.

Get-ADReplicationConnection -Filter {ReplicateToDirectoryServer -eq “REBEL-SRV01”}
Il comando qui sopra, elencherà le connessioni di replica che hanno come server di destinazione: REBEL-SRV01.

Inoltre, possiamo forzare la sincronizzazione dell’oggetto tra i domain controller.
Sync-ADObject -object “adam” -source REBEL-SRV01 -destination REBELNET-PDC01
Quest’ultimo comando, sincronizzerà l’oggetto utente “adam” dal REBEL-SRV01 al REBELNET-PDC01.

Microsoft Azure: connettiti alle macchine virtuali dovunque e da qualsiasi device con PowerShell Web Access

connettersi alle macchine virtuali su Azure dovunque, in qualsiasi momento e con qualsiasi dispositivo con PowerShell Web Access

Vuoi gestire le tue Virtual Machine su Azure dal tuo Samsung Galaxy o iPhone?
Introdotta con Windows Server 2012, PowerShell Web Access è una nuova funzionalità di Windows Server che ti permette di amministrare il tuo Windows Server da un’interfaccia web-based. Una volta installata, potrai accedere a PowerShell da qualsiasi dispositivo, anche dal tuo cellulare.

Preoccupato per la sicurezza? Basta seguire le giuste indicazioni ed impostare il tutto nel modo corretto.
In questo articolo vediamo come installare PowerShell Web Access su una macchina virtuale in esecuzione su Azure.
Il motto è: “Connettersi dovunque, in qualsiasi momento e da qualsiasi dispositivo”.

Installare PowerShell Web Access su una VM in Azure
Prima di tutto, iniziamo installando PowerShell Web Access.
Entra nel portale di Azure e clicca su Virtual Machines. Scegli la tua VM, e con il tasto destro, seleziona la voce Connect.
ATTENZIONE: se il pulsante è inattivo, dovrai abilitare il Remote Desktop all’interno del Network Security Group (Inbound Rules).

Nella sessione Azure Remote Desktop, apri Windows PowerShell.
Posizionati tre linee più in basso per installare PowerShell Web Access.

1 Install-Windowsfeature WindowsPowerShellWebaccess-IncludeManagementTools
installare PowerShell Web Access

In questo scenario, il sistema dovrebbe creare un certificato, con scadenza a 90 giorni.

1 Install-PswaWebApplication -UseTestCertificate
installare PowerShell Web Access

Per concludere, dobbiamo creare una regola di autorizzazione.

1 Add-PswaAuthorizationRule -UserName * -ComputerName * -ConfigurationName *

installare PowerShell Web Access

Il simbolo * sta ad indicare che l’accesso può avvenire per ogni utente e da ogni computer.
Qui il processo è stato semplificato: in un vero ambiente ti raccomandiamo di restringere l’accesso permettendo solo ad utenti e computer affidabili di accedere a PowerShell Web Access.

Il prossimo step è creare una Inbound Rule che permetta l’accesso a PowerShell Web Access, il che significa che dobbiamo permettere https (443).

Creare una regola Azure Inbound Rule per HTTPS
L’accesso a PSWA viene stabilito attraverso HTTPS. Perciò, se non l’hai già configurato, dovrai abilitare l’accesso HTTPS.

Torna ora al portale Azure. Nella dashboard, clicca su Network Security Group.

installare PowerShell Web Access

Clicca su Inbound Security Rules e su Add.

installare PowerShell Web Access

Abilita la porta 443. Presta attenzione ad origine (Source) e destinazione (Destination).
Come detto in precedenza, qui il processo è stato semplificato. In un ambiente di produzione, dovresti ragionare a fondo sugli utenti a cui concedere l’accesso: puoi, ad esempio, limitarlo a specifici indirizzi IP.

installare PowerShell Web Access e limitare l'accesso a specifici indirizzi IP

A questo punto, clicca su OK.

Connettiti alla tua Sessione PowerShell Web Access
Aprite il browser che preferite e scrivete.

https://servername/pswa
o
https://IPAddress/pswa

Connettersi alla Sessione PowerShell Web Access

Inserisci il tuo username, password ed il nome del server che vuoi collegare.

Connettersi alla Sessione PowerShell Web Access

Se tutto è stato impostato nella maniera corretta, sarai dentro.

Connettersi alla Sessione PowerShell Web Access

Ovviamente, non è importante il browser o il dispositivo che stai utilizzando.
Da adesso in poi potrai connetteri al server dal tuo dispositivo mobile, sia esso uno smartphone o un iPad.

Connettersi alla Sessione PowerShell Web Access da iPad

Script PowerShell per scaricare le foto e le slide di Microsoft Ignite

Download Microsoft Ignite

Tra il 26 ed il 30 Settembre 2016 si è svolto ad Atlanta Microsoft Ignite. Tutte le sessioni sono state registrate e si possono visualizzare su Channel9 o Youtube.
Ma se volessimo scaricare tutto il materiale per vederlo in modalità offline?

Ecco allora uno script PowerShell scritto da Vlad Catrinescu che ci permette di scaricare facilmente i video e le slides di Microsoft Ignite.

Punti di forza dello script:
• Scarica tutti i video e le slides di Microsoft Ignite 2016 Sessioni e riporta le descrizioni su file di testo
• Raggruppa le sessioni in cartelle
• Verifica che non ci siano errori causati da nomi di file illegali.
• In caso di interruzzione dello script, alla successiva esecuzione riparte da dove si è interrotto
• Possibilità di filtrare le sessioni per parole chiave inserite nel titolo
• Possibilità di scegliere tra video HD, o di qualità inferiore.

Download Microsoft Ignite 2016 Video Sessions

Per scaricare questo fantastico script visitate questo post