Archives For PowerShell

Ho avuto la necessità di ricercare la data di ricezione della più vecchia mail all’interno di una casella di posta elettronica. Chiaramente questa cosa è fattibile via Outlook, mettendosi in condizione di vedere tutte le email ricevute (basta un banale filtro impostato nella casella di ricerca, nda) e scorrendo poi fino in fondo alla casella di posta, ammesso però che l’opzione di cache locale non sia impostata con un limite troppo basso (per esempio quello classico da 12 mesi) o che la connessione verso Exchange sia perfetta (nel caso in cui la si consulti direttamente online). Come spesso accade c’è un rapido trucco da adottare via PowerShell per aggirare l’ostacolo e arrivare immediatamente al risultato desiderato.

PowerShell: assegnazione in bulk delle licenze Office 365

Si fa riferimento a questo tipo di operazione nel documento Microsoft relativo al Get-MailboxFolderStatistics, maggiori informazioni si trovano all’indirizzo docs.microsoft.com/en-us/powershell/module/exchange/mailboxes/get-mailboxfolderstatistics?view=exchange-ps. Il set di istruzioni è abbastanza semplice, ho raccolto tutto sotto lo stesso tetto e te lo propongo qui di seguito:

Il file PS1 (che ho chiamato OldestMail.ps1) si aspetta che tu da prompt gli aggiunga in coda l’indirizzo di posta elettronica da analizzare ($SourceMailbox) nella modalità .\OldestMail.ps1 mario@contoso.com, essendo il parametro obbligatorio ti verrà comunque richiesto anche nel caso in cui dovessi dimenticare di specificarlo.

Otterrai un risultato molto simile a questo:

PS C:\PS1\PS1> .\tools\OldestMail.ps1 mario.rossi
OldestItemReceivedDate FolderPath
---------------------- ----------
11/12/2017 14:11:49 /Gestite/Assistenza tecnica

Buon lavoro.


fonte: social.technet.microsoft.com/Forums/projectserver/en-US/df23c7cc-faba-43bf-af82-0581925d2b8d/command-to-find-oldest-email-in-mailbox?forum=exchangesvradmin

immagine di copertina: unsplash.com / author: Marius Christensen

× Le pillole del Dr.Mario

Pillole

Le pillole sono articoli di veloce lettura dedicati a notizie, script o qualsiasi altra cosa possa essere "divorata e messa in pratica" con poco. Uno spazio del blog riservato ai post "a bruciapelo"!
Condividi l'articolo con i tuoi contatti:

Se sei solito utilizzare più la PowerShell che l’interfaccia grafica di Exchange Online per amministrare utenti e gruppi del tuo tenant, saprai anche che –in una logica che sta da tutt’altra parte rispetto a dove la ricordi tu– Microsoft permette di inserire un utente in un gruppo di distribuzione tramite comando “secco“, ma questo non prevede la possibilità di inserirne altri contemporaneamente a meno di utilizzare l’importazione da CSV, ecco, non è proprio così.

PowerShell: assegnazione in bulk delle licenze Office 365

Ho sempre pensato fosse una cosa molto stupida, e infatti il work-around esiste ed è più semplice del previsto (quasi non te lo aspetti, ma poi ne capisci una logicità tutta Microsoft):

"mario.rossi","gianluca.bianchi","andrea.neri" | Add-DistributionGroupMember -Identity "Nome del gruppo"

Puoi sostituire i nomi degli utenti con i loro rispettivi indirizzi di posta elettronica se preferisci, così come il "Nome del gruppo" al quale puoi sostituire il suo PrimarySMTPAddress. È un po’ come simulare l’importazione dei dati da un CSV dando poi in pasto all’istruzione di aggiunta membro al gruppo quei valori precedentemente passati, e qui si chiude il cerchio.

Buon lavoro.


crediti: serverfault.com/questions/316558/powershell-2-add-multiple-members-to-distribution-group-with-one-call/573622#573622

× Le pillole del Dr.Mario

Pillole

Le pillole sono articoli di veloce lettura dedicati a notizie, script o qualsiasi altra cosa possa essere "divorata e messa in pratica" con poco. Uno spazio del blog riservato ai post "a bruciapelo"!
Condividi l'articolo con i tuoi contatti:

Un dominio contenente più unità organizzative, può avere necessità di creare gruppi di sicurezza con all’interno tutti gli utenti di una specifica OU. Per farlo, esiste il classico metodo manuale della ricerca * all’interno della OU → Seleziona tutti → Aggiungi a un gruppo, in alternativa torna utile la PowerShell e qualche riga di codice che ho recuperato da una vecchia discussione su ServerFault.

Creare un gruppo di Active Directory partendo da una OU

Si tratta infatti di un codice molto banale da comprendere e modificare per le proprie esigenze, utile anche per eliminare persone (avviandolo altre volte nel corso del tempo, non necessariamente in maniera manuale) che in quella OU non esistono più, ma che essendoci state in passato erano state precedentemente inserite all’interno del gruppo di sicurezza.

Spiego rapidamente cosa c’è da ritoccare:

  • $groupname (riga 2): dovrai dichiarare il nome del gruppo al quale aggiungere gli utenti della OU mantenendo gli apici e inserendo al loro interno il percorso completo del gruppo (CN/OU/DC).
  • $users (riga 3): modifica anche stavolta ciò che c’è tra gli apici posti dopo il -SearchBase, dichiarando il nome della OU dalla quale prelevare tutti gli utenti presenti nel momento in cui lanci lo script di PowerShell (OU/DC).
  • riga 11: copia dalla riga 3 ciò che hai appena modificato e incollalo tra gli apici che trovi subito dopo il -notlike. Questa condizione servirà a confrontare gli utenti presenti nel gruppo con quelli nella OU. Nel caso in cui un utente non faccia più parte della OU, verrà rimosso anche dal gruppo.

Lo script, che dovrà essere eseguito con diritti amministrativi sul Domain Controller di interesse, non fornisce alcun output di conferma a video. Una volta lanciato svolge il suo mestiere e tu potrai verificare l’effettiva buona riuscita andando ad aprire il gruppo che dovrà essere popolato partendo dalla OU.

Escludere gli utenti disabilitati

Se vuoi, puoi modificare il primo filtro di ricerca (quello relativo a $users) affinché vengano lasciati fuori gli utenti disabilitati. Si va quindi ad agire sulla riga 3:

$users = Get-ADUser -Filter * -SearchBase "OU=Contoso,OU=Utenti,DC=contoso,DC=local"

mettendo al posto dell’asterisco la specifica che permette di catturare solo gli utenti abilitati in dominio, ottenendo così:

$users = Get-ADUser -Filter {Enabled -eq $true} -SearchBase "OU=Contoso,OU=Utenti,DC=contoso,DC=local"

Schedulazione della modifica del gruppo

Rimane sempre valida la possibilità di richiamare uno script di PowerShell passando per le Operazioni Schedulate di Windows, così da mantenere il gruppo di sicurezza sempre aggiornato, in base a chi si trova all’interno della OU interessata. Per farlo, ti basterà creare una nuova attività di base e specificare il minimo indispensabile (riporto le voci in inglese qui di seguito, utilizzo la medesima lingua che generalmente si usa per i Windows Server installati in azienda):

  • Action: Start a program
  • Program/script: C:\Windows\system32\windowspowershell\v1.0\powershell.exe
  • Add arguments (optional): -command C:\scripts\Gruppo_dipendenti.ps1

(dove C:\scripts\Gruppo_dipendenti.ps1 dovrà essere modificato con la reale posizione e nome file assegnato allo script di PowerShell).

Il tutto è stato testato con successo su Windows Server 2012 R2. Per dubbi o suggerimenti, l’area commenti è a tua totale disposizione :-)

Buon lavoro!

Condividi l'articolo con i tuoi contatti:

Recita il sito web ufficiale: “Dism++ can be considered as a GUI frontend of DISM, but it is based on low-level Component Based Servicing (CBS) interface instead of DISM API or DISM Core API.” e, in effetti, si tratta di un’interfaccia grafica che va a operare con strumenti che hai già a disposizione nel tuo sistema operativo (DISM / CBS), ma che probabilmente non sai utilizzare al massimo delle loro potenzialità e muovendoti con quel pelo di sicurezza in più che vorresti avere. Dism++ ti permette di operare le tue modifiche e i tuoi interventi in maniera più controllata e meglio spiegata.

Dism++: pulizia e gestione profonda del disco e del tuo Windows 1

Dism++

Scaricabile gratuitamente e compatibile con sistemi Vista (!!), 7, 8.1 e 10 (qui il download diretto per 32 e 64 bit, da quel momento in poi il programma potrà aggiornarsi autonomamente su tua conferma senza necessità di andare a scaricare manualmente i nuovi pacchetti), Dism++ nasce come utility portable, senza necessità quindi di essere installata sul sistema che la ospita (comoda da avere a portata di mano su chiave USB o cartella Dropbox / di rete).

Una volta avviato, Dism++ ti permetterà di muoverti subito tra le voci di menu disponibili nella colonna di sinistra. Tra le più importanti sicuramente c’è quella relativa alla Pulizia disco per la rimozione di file di cui “puoi fare a meno“, l’Avvio Automatico e i Servizi, la gestione delle User Appx / Provisioned Appx, le applicazioni installate da Store o passate in provisioning da Windows 10 alla creazione di un nuovo utente locale (cosa solitamente gestibile via PowerShell, non per tutti), e molto (ma molto) altro ancora, anche strumenti che non ti aspetteresti di trovare in un tool di questo tipo (come l’estrazione / creazione dei file ISO partendo dal contenitore ESD).

Nell’Ottimizzazione Sistema potrai invece trovare diverse opzioni per la modifica del comportamento del SO, anche voci particolarmente delicate diversamente intoccabili per un Sistema pensato come “AAS” (As A Service) da Microsoft. Puoi intervenire sul comportamento di Windows Update, ma anche sul riavvio automatico in caso di problemi (BSOD) o l’avvio rapido. Voci attentamente raccolte e organizzate per categoria, alle quali dovrai prestare particolare attenzione (e ti consiglio di evitare modifiche a meno che tu non sappia molto bene cosa stai andando a fare). Da qui in poi la scalata verso Driver (e possibile rimozione completa), gestione delle applicazioni o delle funzionalità installate (molto simile a quella visibile via Pannello di Controllo) e gestione degli aggiornamenti installati è cosa del tutto prevedibile e naturale (ma pericolosa in ogni caso, sempre occhi ben aperti e mouse non troppo a portata di clic).

Prima di concludere, un doveroso passaggio per le funzionalità di riparazione dirette di DISM (già previste da riga di comando e parzialmente anche da GUI di Windows 10), quelle che potrai trovare facendo clic sulla voce Recupero. È da qui che potrai facilmente lanciare la ricerca di errori operata da DISM ed eventualmente la riparazione completa dell’immagine di sistema, così come potrai effettuare un backup o un restore dello stato attuale della tua macchina, utile –magari– prima di operare modifiche che potrebbero mettere a rischio la tua postazione, il tutto sfruttando comandi sempre disponibili da riga di comando, di cui spesso si ignora l’esistenza, o con i quali non ci si vuole mettere alla prova.

Dism++: pulizia e gestione profonda del disco e del tuo Windows 8

Lo avrai capito: Dism++ è un coltellino svizzero dall’indubbia utilità, che può davvero renderti la vita più facile e salvarti in situazioni critiche, ma che –come ogni lama– porta sempre con sé quel rischio intrinseco di un taglio non previsto, nonostante tutta l’attenzione dedicata alle operazioni lanciate. Tienilo a portata di mano e leggi attentamente le informazioni che ti presenterà davanti agli occhi e, nel caso non dovesse farlo, cerca in rete consigli e documentazioni che possano meglio esplicarti pro e contro di ogni operazione che vuoi portare a termine.

Buon lavoro.


In caso di problemi con il download del pacchetto ufficiale, puoi salvarne una copia prendendola dal mio account Box, che ospita la versione 10.1.1000.70 (CbsHost 10.1.1000.62, NCleaner 10.1.1000.62, WimGAPI 10.0.17134.1, disponibile all’URL app.box.com/s/0661r8e09hmmbtzxkm2iwf0sc63hi6am.

Condividi l'articolo con i tuoi contatti:

Quando si abilita la funzione di Archivio in-place di Microsoft Office 365, l’operazione vera e propria di spostamento delle mail (che rispettano i criteri imposti) richiede generalmente un numero di ore non meglio definito, in base generalmente al carico di lavoro dei server di Microsoft e del tuo tenant. Ci sono casi in cui, però, serve che quell’operazione venga svolta abbastanza rapidamente, per cercare magari di snellire il database principale di posta elettronica, e per fortuna c’è la scappatoia sfruttabile via PowerShell.

PowerShell: assegnazione in bulk delle licenze Office 365

Si fa riferimento a questo tipo di operazione nel documento Microsoft relativo allo Start-ManagedFolderAssistant, il processo che si occupa della migrazione delle mail, puoi trovarlo all’indirizzo docs.microsoft.com/en-us/powershell/module/exchange/policy-and-compliance-retention/Start-ManagedFolderAssistant?view=exchange-ps. L’operazione da lanciare è quindi abbastanza semplice. Se hai attivato l’archivio di una casella di posta elettronica (non ha importanza se personale o condivisa), puoi collegarti al tuo Exchange via PowerShell e lanciare:

Start-ManagedFolderAssistant -Identity <Mailbox>

Dovrai solo modificare <Mailbox> con l’indirizzo di posta elettronica sul quale operare (esempio Start-ManagedFolderAssistant -Identity mario@contoso.com).

A questo punto non ti resta che attendere (puoi verificare in qualsiasi momento che il processo venga eseguito tenendo d’occhio la WebMail della casella interessata, noterai che le mail si sposteranno una dopo l’altra in base al criterio impostato sulla singola cartella o sull’intera mailbox).


fonti:
docs.microsoft.com/en-us/powershell/module/exchange/policy-and-compliance-retention/Start-ManagedFolderAssistant?view=exchange-ps
mysysadmintips.com/windows/servers/374-force-archiving-on-hosted-exchange-office-365

× Le pillole del Dr.Mario

Pillole

Le pillole sono articoli di veloce lettura dedicati a notizie, script o qualsiasi altra cosa possa essere "divorata e messa in pratica" con poco. Uno spazio del blog riservato ai post "a bruciapelo"!
Condividi l'articolo con i tuoi contatti: