18 feb 2024

How to retrieve failed Veeam Backup & Replication job backups using the Zabbix agent

If you don't have a version of Veeam Backup & Replication that supports the RESTful API, there is another simple way to retrieve failed jobs from Zabbix.

Add the item to host

We can add and configure a new item and its related trigger in the Zabbix template.

The item works by capturing the Veeam event in the windows logs (Event Viewer) for failed jobs



The Key value is:
eventlog[Veeam Backup,,Error,Veeam MP,190,,skip]


Add the trigger

The trigger has been set in this way



The trigger value is:
logeventid(/TEMPLATE/eventlog[Veeam Backup,,Error,Veeam MP,190,,skip],,"190")=1

Pay attention in the macro values in Name and Event name:
Veeam {ITEM.VALUE1}


This is the result in the Zabbix Server





17 feb 2024

Microsoft porta sudo su Windows

Questa funzione è oggi disponibile all’interno delle versioni Insider, ovvero le preview disponibili a tutti coloro che si vogliono cimentare con le prossime novità di Windows e Windows Server. La prima operazione da fare per poter testare il comando sudo è abilitare Enable sudo da Settings / System / For Developer.


Figura 1 – abilitate il comando sudo

Microsoft sta prendendo misure non solo per rendere Windows Server 2025 e Windows 11 24H2 (e Windows 12) più sicuri, ma anche più facili da amministrare, introducendo il comando sudo nei suoi sistemi operativi, comando che tutti sappiamo essere storicamente associato a Linux.

Cos’è il comando sudo?

Chiunque abbia mai utilizzato Linux conosce sudo. Per coloro che non lo conoscono, sudo sta per “superuser do” e consente agli utenti standard di eseguire comandi che altrimenti richiederebbero privilegi di amministratore.

Prima di sudo, per eseguire comandi o applicazioni che richiedono privilegi di amministratore, gli utenti dovevano o accedere come utente root o utilizzare il comando “su” per accedere all’account utente root
Superuser do, noto come sudo, è un programma della console Linux che permette agli utenti con bassi privilegi di eseguire comandi con privilegi elevati, tipicamente come root.

Il comando sudo rafforza la sicurezza in Linux permettendo ai server di operare normalmente con account a basso privilegio, mentre gli utenti mantengono la possibilità di accrescere i propri privilegi quando necessario per l’esecuzione di comandi specifici. Rimasto a lungo senza eguali rispetto a Windows, consente agli amministratori di determinare quali utenti possono accedere ai privilegi di amministratore e persino di controllare quali applicazioni sono soggette a tali privilegi.

Sudo in Windows Insider Build

Una volta attivato tramite il selettore corrispondente, ci viene offerta la possibilità di scegliere il comportamento del comando sudo tramite tre opzioni: in una nuova finestra, con input disabilitato o inline.

L’opzione di configurazione forceNewWindow è quella predefinita di sudo per Windows, che consente di eseguire il comando in una nuova finestra. Questo è simile al comportamento del comando runas /user:admin.

Attraverso l’opzione di configurazione disableInput si eseguirà il processo elevato nella finestra corrente, ma con la gestione dell’input chiusa. Ciò significa che il processo elevato non sarà in grado di ricevere input dalla finestra della console corrente. Questo è utile per scenari in cui si desidera eseguire un comando come amministratore, ma non si desidera consentire al comando di ricevere input dalla finestra della console corrente. Questa opzione di configurazione fornisce parte della comodità dell’opzione di configurazione inline ma consente di mitigare alcuni dei rischi di sicurezza intrinseci.

L’opzione di configurazione normal è più simile a come sudo si comporta sui sistemi Unix-like. Questa configurazione eseguirà il processo elevato nella finestra corrente e il processo sarà in grado di ricevere input dalla sessione della console corrente. Questo è utile per scenari in cui si desidera eseguire un comando come amministratore e si desidera consentire al comando di ricevere input dalla finestra della console corrente. Questa opzione di configurazione fornisce la massima comodità, ma si dovrebbe scegliere solo se si è consapevoli dei rischi di sicurezza associati.

Nelle configurazioni di cui sopra, sudo.exe avvierà un nuovo processo con privilegi elevati, un processo sudo.exe elevato, e il sudo.exe originale non elevato stabilirà una connessione RPC con il nuovo processo elevato. In altre parole, le informazioni vengono trasmesse dall’istanza di sudo non elevata a quella elevata. In particolare, le gestioni della console dal processo non elevato vengono passate al processo elevato, il che consente al processo elevato di leggere l’input dal processo non elevato e scrivere l’output nel processo non elevato. Tuttavia, quando sudo è configurato nella configurazione “Input cloded”, il processo elevato sostanzialmente non riceverà la gestione dell’input della console, quindi non sarà in grado di leggere l’input dall’utente.

È importante essere consapevoli delle implicazioni sulla sicurezza quando si esegue sudo nelle configurazioni “Inline” o “Input closed” dato che esiste la possibilità che un processo con integrità media possa controllare il processo elevato. Questo rischio viene mitigato nella configurazione “Input closed” perché il processo elevato non sarà in grado di leggere l’input dall’utente

Essendo già confidente con il comando in ambiente Linux, attiverò per prima l’opzione Inline. Da ora in poi possiamo eseguire il comando in una sessione PowerShell, che al momento della scrittura viene rilasciato nella versione 0.1.5.

Come usare sudo in Windows

Per utilizzare Sudo per Windows, basta semplicemente anteporre sudo al comando che si desidera eseguire come amministratore. Ad esempio, per eseguire netstat -ab come amministratore, si eseguirebbe sudo netstat -ab nella finestra della console.

Poiché sudo eleva il processo target per eseguirlo con i permessi di amministratore, verrà aperto un prompt (UAC) che chiederà di verificare se si desidera continuare.

Da cosa si differenzia sudo da runas esistente?

Il comando sudo offre un modo per elevare rapidamente un comando come amministratore dall’attuale contesto della riga di comando (non elevata) ed è familiare per gli utenti provenienti dalla piattaforma Linux. Il comando runas offre un modo per eseguire programmi come qualsiasi utente, inclusi gli amministratori se lo desideri. Attualmente, il comando sudo su Windows non supporta l’esecuzione di programmi come altri utenti. Di seguito vengono evidenziate altre differenze chiave tra sudo e runas:

  • runas consente di eseguire programmi come altri utenti, inclusi ma non limitati agli amministratori. Questa funzionalità è prevista per il comando sudo, ma non è ancora stata implementata

  • sudo consente di elevare rapidamente un processo (come amministratore):
    • E’ possibile scegliere di farlo in una nuova finestra, che assomiglia al flusso di amministratore di runas.
    • E’ possibile scegliere di collegare il processo elevato alla finestra della console corrente con le opzioni di configurazione disableInput e normal. Questo non è supportato con runas,

  • runas può richiedere agli utenti una password nella riga di comando

  • sudo può essere elevato solo tramite la funzione di sicurezza User Account Control (UAC) progettata per proteggere il sistema operativo da modifiche non autorizzate, utilizzando una richiesta di verifica

Sudo for Windows Open Source Repository

Grazie all’apertura verso il mondo Linux introdotta da Satya Nadella, e poi consolidata nel corso degli anni, il progetto Sudo per Windows è open source, quindi aperto ad eventuali contributi e feedback. Si può trovare il codice sorgente di Sudo per Windows su GitHub.

Conclusioni

Sudo per Windows rappresenta un’innovazione nel mondo Windows, tuttavia non può essere ancora paragonato alla sua controparte Linux a causa di alcune limitazioni. Nonostante ciò, le prospettive per il futuro sono promettenti, specialmente considerando che si tratta di una versione non ancora pienamente sviluppata e che quindi offre ampio spazio per miglioramenti.

Potete trovare questo ad altri articoli sulla community Windowserver.it

27 lug 2023

Microsoft 365 Backup preview

Microsoft ha recentemente annunciato la sua entrata nel mercato dei software per il backup e archiviazione dell’omonima piattaforma Microsoft 365.

Uno degli annunci degni di nota emersi dalla recente conferenza Microsoft Inspire ha segnato il debutto di Microsoft nel mercato dei backup per Microsoft 365. In una prima fase verrà rilasciato, nell’ultimo trimestre del 2023, l’anteprima pubblica di una versione dedicato a SharePoint Online, OneDrive for Business ed Exchange Online. Allo stesso tempo, Microsoft prevede di offrire un’anteprima pubblica di Microsoft 365 Archive per spostare i dati SharePoint Online “inattivi o obsoleti” dall’archiviazione “hot” (online) ad una archiviazione “cold”.

Entrambe le iniziative sembrano essere state accolte favorevolmente anche se a mio parere avrebbero dovuto già esistere da almeno un lustro; dunque, sembra giunto il momento che Microsoft si assuma la responsabilità di proteggere i dati dei propri clienti.

Dato che ogni medaglia ha il proprio rovescio, partiremo dagli attuali svantaggi tenendo presente che si tratta di una preview pubblica:

Locazione dei dati di Backup

La prima cosa da considerare è che tutti i dati rimarrebbero nei datacenter Microsoft. Mantenere tutte le uova in un paniere (datacenter) non è considerato una “best practice” perché esiste sempre la remota possibilità che il datacenter possa subire un guasto catastrofico con la conseguente perdita dei dati. Anche se non ci sono annunci ufficiali su questo tema, probabilmente nella versione definitiva si avrà la possibilità di utilizzare una regione cloud differente come destinazione per i backup.

Nessun backup e ripristino di Teams

Microsoft ha voluto vincere facile in questa prima fase considerando solo i carichi di lavoro più semplici: e-mail e documenti sono oggetti relativamente facili da salvare e ripristinare. Inoltre, ha accesso illimitato ai dati e può modificare le API per semplificare le operazioni di backup e ripristino in modo che la loro implementazione sia più rapida e intelligente.

Tuttavia, l’archiviazione di Microsoft 365 non affronta la più grande sfida, ovvero fornire funzionalità di backup e ripristino senza soluzione di continuità per Teams. Teams è stato progettato on-top a più servizi Microsoft 365 e Azure, integra dati tratti da più fonti e applicazioni.

Quanto sopra è la mancanza di API per eseguire backup e ripristino completi per Teams, cosa che rende questa implementazione complessa. Microsoft Teams ha oltre 300 milioni di utenti attivi mensili, speriamo e presumiamo che il backup e ripristino completo arriverà in una fase successiva.

Accesso ai Dati

Il vantaggio di Microsoft, rispetto ai partner ISV che sviluppano soluzioni di backup, è duplice:

  • ha accesso istantaneo ai dati dei clienti archiviati nei loro datacenter
  • controlla le API che consentono l’accesso ai dati

Le alternative ISV in genere copiano i dati da Exchange Online, SharePoint Online e OneDrive for Business, dai loro repository nativi ai loro datacenter, per cui dobbiamo tener presente quanto segue:

  • L’invio di grandi quantità di dati attraverso Internet dalla rete del datacenter di Microsoft al datacenter di destinazione dell’ISV richiede tempo e risorse, in particolare per le operazioni di ripristino.
  • Mancanza API adeguate allo streaming di grandi quantità di dati
  • Exchange Web Services (EWS) è la base per molte soluzioni di backup ISV per Exchange Online. EWS non è mai stato progettato per questo scopo, ma funziona. Alcuni ISV usano EWS per copiare i record di conformità (compliance records) di Teams e li chiamano backup di Teams. Microsoft vuole forzare gli ISV ad utilizzare Teams Export API, ma ciò non sarebbe esente da complicazioni.

Funzionamento

Il backup di Microsoft 365 non usa un repository esterno all’infrastruttura, quindi i ripristini (quando necessario) avvengono in modo estremamente rapido, anche su larga scala. L’idea è che, se un tenant di Microsoft 365 viene compromesso da ransomware, può tornare rapidamente allo stato precedente all’attacco.

Un altro indubbio vantaggio è l’integrazione nell’interfaccia di amministrazione di Microsoft 365, senza passare per altri portali o link esterni.


Microsoft non ha rilasciato dichiarazioni su eventuali licenze o costi da sostenere per il backup di Microsoft 365, possiamo dedurre che sarà totalizzato in base al consumo.

Come la mettiamo con gli ISV?

Possiamo affermare che Microsoft è stata cauta ed ha lanciato il prodotto tenendo presente il supporto per gli ISV; naturalmente non ha senso entrare in guerra con loro che servono da anni i clienti di Microsoft 365. Gli ISV potranno integrare le funzionalità di Microsoft Backup nelle loro app di protezione e gestione dei dati. In altre parole, gli ISV possono utilizzare le API (e pagare Microsoft per farlo) per sfruttare backup e ripristino più rapidi.

Conclusione

La soluzione, sulla carta, promette uno sviluppo adeguato alle esigenze attuali del mercato. Vedremo come si evolverà nei prossimi mesi in termini di costi, funzionalità e come gli ISV adotteranno le API per integrare le loro soluzioni.

6 feb 2023

Teams: Opzione open in "Desktop App" scomparsa

Se usate licenze diverse dalle E3 in su avete notato che l'opzione "Desktop App" è scomparsa dal menu Files, Files open preference. Questo perché agli allegri fornitori del servizio piace l'upselling e hanno deciso di togliere questa possibilità ai clienti che già ne usufruivano. 
A mio parere davvero una pratica odiosa e scorretta.

L'impostazione è gestita lato client quindi se volete far "ricomparire" open in "Desktop App" aggiornate la seguente reg key con in valore "O365ProPlusRetail"

"HKLM:\Software\Microsoft\Office\ClickToRun\Configuration\ProductReleaseIds" to "O365ProPlusRetail"

Penserei magari a migliorare il prodotto, c'è davvero ampio spazio.


23 gen 2023

2023: L’anno di svolta nell’Intelligenza Artificiale

 

In queste ore tutto il mondo sta parlando dell’ultima versione di GPT (ChatGPT Jan 9 Version, 2023).
In questo articolo cercheremo di capirne di più sull’intelligenza artificiale e quali strumenti sono già disponibili.

 

Cosa si intente per Intelligenza Artificiale?


L'intelligenza artificiale (IA) è una branca dell'informatica che si concentra sullo sviluppo di algoritmi e sistemi in grado di svolgere compiti che richiedono intelligenza umana, come il riconoscimento del linguaggio naturale, la comprensione del contenuto visivo e la risoluzione di problemi complessi.
L'IA può essere suddivisa in diverse categorie, tra cui l'IA debole (o IA di base) e l'IA forte (o IA generale).

 

IA di base

L'IA debole (o IA di base) si riferisce a una forma di intelligenza artificiale che è specializzata in una singola attività o compito specifico. Gli algoritmi e i sistemi di IA debole sono progettati per svolgere un compito specifico, come il riconoscimento delle immagini, il riconoscimento delle voci o la traduzione automatica. Non hanno la capacità di generalizzare o di adattarsi a nuove situazioni, come invece avviene nell'IA forte. In generale, l'IA debole o di base è più facile da implementare e meno costosa rispetto all'IA forte.

IA generale

L'IA forte (o IA generale) si riferisce ad una forma di intelligenza artificiale che ha la capacità di generalizzare e di adattarsi a nuove situazioni e compiti. Gli algoritmi e i sistemi di IA forte sono progettati per svolgere una vasta gamma di compiti, simili a quelli che richiedono l'intelligenza umana, come la comprensione del linguaggio naturale, la risoluzione di problemi e il ragionamento. L'IA forte è più difficile da implementare rispetto all'IA debole e richiede una quantità maggiore di risorse computazionali e dati.

L'IA forte ha la capacità di apprendere e migliorare continuamente, senza essere programmata specificamente per ogni singola attività. L'IA forte può essere utilizzata in una vasta gamma di applicazioni, come il riconoscimento vocale, la traduzione automatica, la guida autonoma e l'elaborazione del linguaggio naturale.

 

Reti neurali

Una rete neurale è un modello computazionale ispirato alla struttura e al funzionamento del sistema nervoso umano. È composta da una serie di nodi (noti anche come neuroni) che sono connessi tra loro da collegamenti, ognuno dei quali ha un peso associato.

Il funzionamento di una rete neurale è simile a quello del sistema nervoso umano, poiché i nodi ricevono informazioni dai nodi di input, elaborano queste informazioni e le trasmettono ai nodi di output. I pesi sui collegamenti tra i nodi sono utilizzati per controllare l'importanza relativa delle informazioni in entrata per la risposta di output.


Ci sono diverse librerie di intelligenza artificiale e di apprendimento automatico che possono essere utilizzate per creare una rete neurale, tra cui TensorFlow, Keras, PyTorch, Microsoft Cognitive Toolkit (CNTK), TensorFlow.NET e Accord.NET

Di seguito un esempio di codice per creare una semplice rete neurale feedforward utilizzando la libreria Accord.NET in C#:

using Accord.Neuro;
using Accord.Neuro.Learning;
using Accord.Math;

// Creazione del modello
var network = new ActivationNetwork(
    new SigmoidFunction(2),
    8, // 8 input nodes
    12, // 12 hidden nodes
    1); // 1 output node

// Creazione dell'oggetto di apprendimento
var teacher = new BackPropagationLearning(network);

// Addestramento del modello sui dati di input
double[][] inputs = ...;
double[][] outputs = ...;
for (int i = 0; i < 1000; i++)
{
    double error = teacher.RunEpoch(inputs, outputs);
    Console.WriteLine("Error: " + error);
}

// Utilizzo del modello per effettuare previsioni
double[] prediction = network.Compute(inputs[0]);
Console.WriteLine("Prediction: " + prediction[0]);

Naturalmente il codice di cui sopra è solo un esempio semplice e generico. Il codice potrebbe variare a seconda delle esigenze specifiche del progetto e della libreria utilizzata. Inoltre, sarebbe necessario utilizzare un dataset di addestramento e di test per addestrare e valutare la rete neurale.


Le reti neurali feedforward (FNN)

 Le reti neurali feedforward (FNN) sono un tipo di architettura di rete neurale che consiste in una serie di strati di nodi (noti anche come neuroni) connessi tra loro. Il flusso di informazioni attraversa la rete in una sola direzione, da input verso output, senza alcun ciclo o ritorno.

In una rete neurale feedforward, gli strati di input ricevono i dati, mentre gli strati nascosti elaborano i dati e gli strati di output forniscono la risposta o la previsione. Ogni nodo nella rete elabora i dati ricevuti dai nodi di input e li passa ai nodi successivi. I pesi sui collegamenti tra i nodi sono utilizzati per controllare l'importanza relativa dei dati in entrata per la risposta di output.

Le FNN sono utilizzate per una vasta gamma di applicazioni, come il riconoscimento delle immagini, il riconoscimento della voce, la traduzione automatica e l'elaborazione del linguaggio naturale. Sono semplici da implementare e da capire, ma hanno limitazioni nell'elaborazione di dati sequenziali o dati con relazioni temporali o di ordine.

 

Le reti neurali convolutional (CNN)

Le reti neurali convolutionali (CNN) sono una specifica architettura di reti neurali feedforward utilizzate principalmente per l'elaborazione delle immagini e del segnale. Sono chiamate "convolutionali" perché utilizzano un'operazione matematica chiamata "convoluzione" per elaborare i dati di input.

In una CNN, gli strati di input ricevono i dati (immagini o segnali), mentre gli strati nascosti elaborano i dati utilizzando una serie di filtri convolutionali. I filtri convolutionali sono matrici di pesi che vengono utilizzati per estrarre caratteristiche specifiche dai dati di input. Gli strati di pooling vengono utilizzati per ridurre la dimensione dei dati, mentre gli strati di output forniscono la risposta o la previsione.

Le CNN sono particolarmente utili per l'elaborazione delle immagini, poiché hanno la capacità di identificare caratteristiche specifiche, come linee, forme e texture, indipendentemente dalla loro posizione nell'immagine. Inoltre, le CNN sono utilizzate in una vasta gamma di applicazioni, tra cui il riconoscimento delle immagini, il riconoscimento della voce, la traduzione automatica e l'elaborazione del linguaggio naturale.

L’apprendimento automatico

In termini informatici, l'IA si basa principalmente su algoritmi di apprendimento automatico e sull'elaborazione dei dati. Gli algoritmi di apprendimento automatico sono un insieme di metodi statistici e di ottimizzazione che consentono ai sistemi di IA di apprendere dai dati e di migliorare continuamente le loro prestazioni.

Ci sono diverse tecniche di apprendimento automatico, tra cui l'apprendimento supervisionato, l'apprendimento non supervisionato e l'apprendimento rinforzato. L'apprendimento supervisionato utilizza dati etichettati per addestrare un modello a riconoscere determinate caratteristiche o pattern in dati non etichettati. L'apprendimento non supervisionato utilizza dati non etichettati per scoprire pattern e relazioni nascosti nei dati. L'apprendimento rinforzato utilizza un sistema di premi e punizioni per guidare l'apprendimento.

Una volta addestrato, il modello può essere utilizzato per effettuare previsioni o decisioni su nuovi dati. Inoltre, l'IA può essere implementata utilizzando diverse architetture di rete neurale, tra cui le reti neurali feedforward, le reti neurali ricorrenti e le reti neurali convolutional.

Il modello può essere addestrato utilizzando una grande quantità di dati, che vengono utilizzati per "allenare" il modello, rendendolo in grado di fare previsioni o decisioni accurate su nuovi dati.

 

ChatGTP!

ChatGPT è un modello di linguaggio basato sull'intelligenza artificiale sviluppato da OpenAI. È una forma di IA debole, nota anche come IA di base, che è stata addestrata su un gran numero di testi scritti in lingua inglese. In particolare, ChatGPT è un modello di generazione di testo basato su una rete neurale Transformer.

ChatGPT è un modello di linguaggio molto avanzato e molto preciso, è in grado di generare testo in modo autonomo e di completare frasi o testi a partire da un input iniziale.

ChatGPT si distingue dagli altri sistemi di IA in quanto è stato addestrato su un vasto set di dati di testo e quindi in grado di generare testo in modo molto realistico, inoltre è in grado di generare risposte a domande complesse e di generare testo in modo autonomo.

 

La rete neurale transformer

La rete neurale Transformer è un tipo di architettura di rete neurale utilizzata per l'elaborazione del linguaggio naturale. È stata introdotta nel 2017 in un articolo dal titolo "Attention Is All You Need" (L'attenzione è tutto ciò di cui hai bisogno).

La caratteristica principale delle reti neurali Transformer è l'utilizzo di un meccanismo di attenzione che consente al modello di concentrarsi su parti specifiche del testo di input mentre elabora le informazioni. Ciò consente al modello di capire il contesto e di generare testo più preciso e naturale.

Inoltre, le reti neurali Transformer utilizzano una struttura di auto-attenzione che consente al modello di considerare l'intero testo di input allo stesso tempo, anziché solo una porzione di esso alla volta. Ciò consente al modello di comprendere meglio il contesto e di generare testo più preciso e coerente.

Le reti neurali Transformer sono utilizzate in una vasta gamma di applicazioni, tra cui la generazione di testo, la traduzione automatica, la comprensione del linguaggio naturale e il riconoscimento vocale. GPT-2 e GPT-3 sono esempi di modelli Transformer utilizzati per la generazione di testo.


Evoluzione

GPT-4 sarà 100 volte più potente di GPT-3, con oltre 100 trilioni di parametri rispetto ai 175 miliardi di parametri di GPT-3 e con nuove funzionalità come il servizio clienti e l'istruzione.




Applicazioni pratiche

E’ già possibile utilizzare una vasta gamma di servizi basati su IA forniti dai principali playes del mondo cloud. Ad esempio, in Microsoft Azure questi servizi consentono agli sviluppatori di creare, implementare e distribuire facilmente soluzioni di IA.

Alcuni dei servizi di IA offerti da Azure sono:

·       Azure Cognitive Services: un insieme di API pre-addestrate che consentono di aggiungere funzionalità di IA come il riconoscimento delle immagini, il riconoscimento della voce e la comprensione del linguaggio naturale alle applicazioni.

·       Azure Machine Learning: un servizio di apprendimento automatico che consente di creare, implementare e distribuire modelli di IA in modo semplice e veloce.

·       Azure Databricks: un ambiente di elaborazione dei dati basato su Apache Spark che consente di creare, implementare e distribuire facilmente soluzioni di IA.

·       Azure IoT Edge: una piattaforma per l'elaborazione dei dati in dispositivi IoT che consente di eseguire modelli di IA su dispositivi IoT.

 

Espandendo un po’ il campo troviamo altre piattaforme altrettanto interessanti, non sono ovviamente le uniche disponibili ma solo le più popolari:

·       Google Cloud AI: un insieme di servizi di IA offerti da Google Cloud, tra cui Google Cloud Translation, Google Cloud Natural Language e Google Cloud Video Intelligence.

·       Amazon Web Services (AWS): un insieme di servizi di IA offerti da Amazon, tra cui Amazon Transcribe, Amazon Translate e Amazon Rekognition.

·       IBM Watson: un insieme di servizi di IA offerti da IBM, tra cui Watson Language Translator, Watson Speech to Text e Watson Visual Recognition.

·       SAP Leonardo: una piattaforma di intelligenza artificiale di SAP che offre servizi di machine learning, intelligenza artificiale, Internet of Things (IoT) e blockchain.

·       Facebook AI: un insieme di servizi di IA offerti da Facebook, tra cui Face Recognition, Object Detection and Automatic Alternative Text.

·       OpenAI: una organizzazione di ricerca sull'IA che offre una serie di servizi di IA, tra cui GPT-3, un modello di generazione di testo basato sull'IA.

Inoltre, esistono tantissimi siti web basati su AI che hanno compiti relativamente semplici e specifici come ad esempio:

·       Teachable Machine permette di sviluppare il proprio modello di machine learning senza bisogno di programmare. Si può addestrare l'intelligenza artificiale con immagini, suoni e altro.

·       Thing Translator usa la fotocamera del cellulare o la webcam del computer per inquadrare un oggetto o qualsiasi altra cosa e dirci che cos'è in tutte le lingue del mondo.

·       Autodraw, il sito Google che disegna da solo, un esperimento di intelligenza artificiale che indovina cosa stiamo disegnando per poterlo completare prima di finirlo.

·       Il sito thispersondoesnotexist.com usa l'algoritmo sviluppato dal progetto NVidia StyleGAN2 in modo da mostrare la fotografia falsa di una persona che non esiste, con un viso che sembra incredibilmente reale, ogni volta che viene aperto.

·       Infinite Drum Machine si occupa di organizzare automaticamente i suoni per creare una base ritmica. E’ possibile spostare i cerchi sullo schermo e scegliere il tipo di effetto sonoro da utilizzare per la base.

·       Talk To Books  Questo è uno strumento di intelligenza artificiale sperimentale di Google. Si digita una frase nella casella di ricerca, l’AI ti aiuterà a scoprire prospettive e libri entusiasmanti che potresti voler leggere.

·       AI. Image Enlarger Questo sito web ti aiuterà a migliorare tutte le foto di bassa qualità, anche in caso di immagini “pixellate”, sfocate e non dettagliate. Si potrebbe dire come nelle serie e films.

 

Conclusioni

L’IA negli ultimi anni si è sicuramente sviluppata ad un punto tale da essere tanto potente quanto incredibile (e preoccupante?). OpenAI in particolare è stata fondata, indovinate un po’? Dal buon Elon Mask e attualmente foraggiata da Microsoft. Quest’ultima versione di GTP cambia tutte le dinamiche di mercato creando una svolta nell’integrazione del linguaggio naturale. Nei prossimi mesi assisteremo ad una evoluzione ancora più incredibile dato che gli altri player della Silicon Valley non potranno certo stare a guardare.


9 gen 2023

Exchange Online: eseguire operazioni avanzate con Microsoft Graph

 In alcuni casi, come ad esempio per un’importazione errata con network upload, si rende necessario effettuare alcune attività massive (bulk) in Microsoft 365.

Eliminare una determinata cartella da tutte le mailbox presenti in un tenant è uno scenario più comune di quanto sembri e lo utilizzeremo come modello per capire come connetterci con Microsoft Graph tramite PowerShell ed il relativo SDK al fine produrre script di automazione che possano oltrepassare il limite del contesto utente.

Graph PowerShell SDK è solo un wrapper per l’API Graph, che a sua volta non è altro che un’API REST. Un’API REST, nota anche come API RESTful, è un’interfaccia di programmazione delle applicazioni (API o API web) conforme ai vincoli dello stile architetturale REST, che consente l’interazione con servizi web RESTful.

Il repository GitHub di riferimento e supporto per Graph PowerShell SDK è il seguente: microsoftgraph/msgraph-sdk-powershell · GitHub

Connettersi alle API di Microsoft Graph tramite PowerShell

Come primissima cosa è mandatorio installare l’SDK di Graph. L’SDK farà in modo che sia possibile attestarci alle Graph API semplicemente tramite Microsoft PowerShell.

Installiamo quindi il modulo Microsoft.Graph meglio conosciuto come Microsoft Graph Powershell SDK. Da notare che tutti i cmdlet di questo modulo iniziano con “Mg

Install-Module Microsoft.Graph -Scope AllUsers -Force

NB: lo scope AllUsers richiede diritti amministrativi, contrariamente non sono necessari per lo scope CurrentUser.

Un argomento molto importante, con cui è preferibile prendere confidenza quando ci si cimenta nell’utilizzo delle API di Microsoft Graph ,sono gli ambiti anche noti come scope. Se ad esempio un account dispone delle autorizzazioni per un determinato ruolo, non significa che gli venga automaticamente concesso tale ambito.

Verificare l’ambito di un cmdlet

Per questioni di sicurezza, e per evitare di disporre di privilegi eccessivi, è consigliabile utilizzare solo gli ambiti applicabili alla sessione corrente. Ma come si può sapere esattamente quali ambiti sono necessari per i cmdlet che intendiamo usare?

La risposta scontata è naturalmente la documentazione, ma esiste un altro modo probabilmente più efficace anche se dipende molto da come si è abituati: Graph Explorer! Da qui possiamo verificare tutte le autorizzazioni necessarie per ogni query.

continua su WindowServer.it

5 dic 2022

Exchange Online: Come nascondere gli utenti dalla GAL quando si usa la sincronizzazione di Active Directory (AAD Connect)

 

Exchange Online: Come nascondere gli utenti dalla GAL quando si usa la sincronizzazione di Active Directory (AAD Connect)

 

Nascondere gli utenti dall'elenco indirizzi globale in Exchange Online non è così intuitivo quando l'utente viene sincronizzato dall’ambiente Active Directory locale. Si dovrà modificare un attributo dell'oggetto utente, nonché impostare msExchHideFromAddressLists su True ed eseguire una sincronizzazione.

Il problema però è cosa succede se non si dispone dell'attributo msExchHideFromAddressLists in Active Directory?

 

È possibile estendere lo schema di Active Directory per Exchange, ma non è qualcosa che si può facilmente ripristinare se qualcosa va storto, senza contare che si aggiungeranno un sacco di attributi che probabilmente non verranno mai utilizzati.

Una soluzione più pulita ed elegante potrebbe essere creare semplicemente una regola di sincronizzazione personalizzata all'interno di Azure AD Connect che “converte” il valore da un attributo differente.

 

Questo articolo illustra come sincronizzare un attributo personalizzato dall'Active Directory locale ad Azure AD per nascondere un utente dall'elenco indirizzi globale (GAL), senza la necessità di estendere lo schema di Active Directory. In questo caso, useremo un attributo chiamato msDS-cloudExtensionAttribute1. L'attributo msDS-cloudExtensionAttribute è stato introdotto in Windows Server 2012 e dispone di 20 numeri diversi per consentire flessibilità per questi tipi di scenari.


1. msDS-cloudExtensionAttribute per Azure AD Connect

Aprire Azure AD Connect Synchronization Service, passare alla scheda Connectors, poi selezionare ActiveDirectory (la vostra AD locale) e selezionare Properties. In alto a destra spuntare Show All, scorrere giù fino a msDS-CloudExtensionAttribute1 e poi selezionare OK

Figura 1 – Proprietà AD Locale


2. Creare una regola di sincronizzazione personalizzata

Aprire Azure AD Connect Synchronization Rules Editor, cliccare su Add new rule (assicurarsi che in alto sinistra venga indicato Inbound)

Inserire le informazioni seguenti:

Name: Nascondere un utente dalla GAL

Description: Se msDS-CloudExtensionAttribute1 è uguale a NascondiDaGAL, nascondi dalla GAL di Exchange Online

Connected System: la vostra AD locale

Connected System Object Type: user

Metaverse Object Type: person

Link Type: Join

Precedence: 50 (Può essere un qualsiasi numero inferiore a 100. Assicurarsi solo di non duplicare i numeri se esistono altre regole personalizzate o si riceverà un errore di dead-lock da SQL Server)




Figura 2 – Regola personalizzata


Fare clic su Next, Scoping filter e Join rules possono rimanere vuote

Immettere la trasformazione seguente, fare clic sul pulsante Add transformation, compilare il modulo con i valori seguenti e quindi fare clic su Add

FlowType: Expression

Target Attribute: msExchHideFromAddressLists

Source: IIF(IsPresent([msDS-cloudExtensionAttribute1]),IIF([msDS-cloudExtensionAttribute1]="NascondiDaGAL",True,False),NULL)



Figura 3 – regola inbound 


3. Effettuare una sync totale

Da PowerShell eseguire il seguente comando:
Start-ADSyncSyncCycle -PolicyType Initial


4. Modificare l’attributo in AD per l’utente che si vuole nascondere dalla GAL

Aprire Active Directory Users and Computers (ADUC), selezionare l’utente desiderato e con il tasto destro selezionare Properties. Selezionare il tab Attribute Editor, cercare l’attributo msDS-cloudExtensionAttribute1 ed inserire il valore NascondiDaGAL




Figura 4 – Proprietà utente AD


Effettuare un’altra Sync full (initial), appena terminata la nuova sincronizzazione nelle proprietà dell’export verso il service domain di Office 365 vedremo l’attributo settato su true



Figura 5 – Attributo su true

 

Ora possiamo verificare che l’attributo sia stato davvero settato sulla mailbox dell’utente in Exchange Online



Figura 6 – Attributo assegnato all’utente in cloud


Abbiamo visto che sfruttando le regole di sincronizzazione custom di AAD Connect, con pochi passaggi è possibile settare un attributo “di servizio” e convertirlo ad un valore accettabile da Azure AD. 













3 ott 2022

Exchange 2019 Recipient Management PowerShell

Microsoft ha rilasciato l'aggiornamento Exchange Server 12 CU12, che consente finalmente di rimuovere l'ultimo Exchange Server in modo da poter eseguire Active Directory con Azure AD Connect e gestire gli attributi correlati a Exchange in modo supportato.

Microsoft richiede che gli attributi relativi a Exchange siano impostati e gestiti correttamente in modo che possa supportare l'utente in caso di eventuali problemi. Fino a poco tempo fa, ciò significava che era necessario eseguire un server Exchange on-premise per gestire le mailbox di Exchange Online, i gruppi di distribuzione, i contatti e altri elementi associati (come i criteri degli indirizzi di posta elettronica). Le modifiche apportate tramite Exchange Server on-premise vengono archiviate nell'AD locale, quindi Azure AD Connect le sincronizzerà nel cloud. La gestione diretta degli attributi tramite strumenti AD come ADSIEDIT rischia di introdurre potenziali problemi, in quanto tale, rimane non supportata.

Da Exchange Server 2019 CU12 viene consentita l'installazione dei soli strumenti di gestione e consentono inoltre di rimuovere definitivamente (non disinstallare) l'ultimo Exchange Server 2019. 

NB: Non è possibile installare gli strumenti di gestione su un server in cui è già installata un'altra versione di Exchange

Rif: Manage recipients in Exchange Server 2019 Hybrid environments | Microsoft Learn

29 mag 2022

Configurare Microsoft Defender for Office 365 & Best Practice

Durante la scorsa #APERITEAMS CONFERENCE #ACDSD21 purtroppo non sono riuscito a concludere la sessione "Configurare Microsoft Defender for Office 365 & Best Practice" a causa mia :-) ma per la complessità dell'argomento. Come al solito sono piuttosto allergico alle sessioni livello 100/200, mi piace dettagliare, per questo non sono riuscito a concludere per tempo.

In pratica son dovuto scappare dal palco per evitare che sciagure e tragedie si abbattessero su di me :-)
Dunque ecco pubblicate le slide per i presenti che sono rimasti a bocca asciutta e per tutti coloro fossero interessati

D4_DFO_Configurare Microsoft Defender for Office 365 & Best Practice_… (slideshare.net)