Archives For PowerShell

Prima dell’aggiornamento a Windows 10, avevo uno o due processi programmati che mi mostravano a video un semplice messaggio di testo, un promemoria in alcune giornate ben precise, a orario precedentemente stabilito. Con l’ultima versione del sistema operativo di casa Microsoft questo non è più possibile, non con la stessa immediatezza almeno, poiché tale funzione è stata deprecata.

Chiaramente esiste il modo di aggirare l’ostacolo, si può passare da PowerShell e da fondamenti di Visual Basic. Un risultato esteticamente molto meno accattivante,ma che ti permette di portare a casa ciò che prima avevi.

Windows 10 e i messaggi "Deprecati" del Task Scheduler, come risolvere

Per poter aprire una finestra contenente il messaggio “promemoria“, il codice PowerShell è il seguente:

I due parametri che il file PS1 si aspetta serviranno a specificare il titolo della finestra e il contenuto del messaggio che comparirà a video. Il tutto è chiaramente fattibile anche con un file VBScript, se lo preferisci. Se vuoi scaricare il file PS1 riportato sopra fai clic con il tasto destro sulla voce view raw (in basso a destra nel box) e scegli di salvare la destinazione con nome. Io ho adottato questa soluzione che in realtà nasce da un thread nel forum di WindowsSecrets.

Cerca l’attività nelle operazioni pianificate di Windows, modificala e vai a togliere l’azione (quella che mostrava il messaggio), anche perché provando a riattivarla o modificarla otterrai un errore a video:

A questo punto dovrai avviare un programma, dargli in pasto l’eseguibile di PowerShell (C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe) e specificare un argomento unico che vada a pescare il file PS1 precedentemente salvato, passando a quest’ultimo il titolo e il messaggio da mostrare a video, per esempio:

Windows 10 e i messaggi "Deprecati" del Task Scheduler, come risolvere 3

Nel mio caso, la riga dell’argomento contiene:

C:\Documenti\Script\ShowReminder.ps1 -MsgTitle 'Reminder' -MsgText 'Ciao, ricordati di fare il report'

dove il parametro MsgTitle corrisponde (ovviamente) al titolo del popup che ti comparirà a video, e MsgText il contenuto del corpo, il messaggio vero e proprio. Salva quanto modificato. Se serve, modifica ora e giorno di esecuzione, quindi salva tutto quanto per evitare di perdere quanto fatto fino a ora.

Lancia manualmente l’operazione schedulata per verificare che tutto funzioni regolarmente, salvo errori sei a posto e hai trovato il giusto escamotage per risolvere il tuo problema.

Cheers.

 

Condividi l'articolo con i tuoi contatti:

La funzione di Message Trace di Office 365, quindi Exchange in cloud, funziona abbastanza bene. Si dichiara l’intervallo da analizzare e il mittente o il destinatario sul quale devi effettuare delle verifiche. A quel punto ti basterà mettere la visualizzazione in ordine di oggetto mail e cercare ciò che ti interessa realmente. E se invece si potesse saltare questo step, avere da subito maggiore profondità (in giorni) e cercare per oggetto della mail senza specificare un mittente o un destinatario? Si può fare, basta aggirare l’ostacolo passando –come spesso accade– da PowerShell.

PowerShell: un Message Trace basato sull'oggetto della mail

Ho cercato sul web qualcuno con la mia stessa esigenza. L’ho trovato e ho potuto osservarne il lavoro. Tutto parte dallo script proposto su blogs.perficient.com/microsoft/2016/03/office-365-script-to-perform-message-trace-by-subject. È la giusta base di partenza alla quale vanno modificate solo un paio di cose, soprattutto per quello che riguarda il modo di trattare il parametro di data e ora, secondo quanto spiegato qui.

La modifica è banale e riguarda esclusivamente il modo in cui viene formato l’output del Get-Date, parametro senza il quale lo script va in errore e non è capace di svolgere correttamente il suo lavoro:

[DateTime]$DateEnd = Get-Date -format "MM/dd/yyyy HH:mm"

Così facendo, non è necessario intervenire ulteriormente sullo script originale (a meno che tu non voglia modificare il formato di output nelle 3 volte in cui viene richiamato nel corso dello script, nda). Ho caricato la versione modificata dello script su GitHub, ed è entrata a far parte della “suite” dedicata all’amministrazione di Office 365 via PowerShell: github.com/gioxx/o365/blob/master/Get-MessageTraceBySubject.ps1

Il risultato funziona, impiega il suo tempo, presenta infine le mail che è riuscito a individuare e che contengono quell’oggetto ricercato (attento, usa le wildcard quanto non sei sicuro del titolo completo dato a una mail). Il file di log viene prodotto nella stessa cartella in cui risiede lo script, a meno di andare a lanciare lo stesso con il parametro -LogFile $percorso, per esempio .\Get-MessageTraceBySubject.ps1 -LogFile C:\MessageTrace.txt

Buon lavoro :-)

Condividi l'articolo con i tuoi contatti:

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"!

Rapida pillola del giorno dedicata a Windows 10, e in particolare a Groove Musica, una delle applicazioni che sono già installate nel sistema e che apparentemente non sono eliminabili con il semplice clic destro → Disinstalla. Si tratta di ciò che resiste di Zune (te lo ricordi?) e più che altro del servizio di accesso alla musica (previo abbonamento) di Microsoft. Non sempre però l’applicazione pre-installata torna utile, quindi perché non toglierla di mezzo?

Disinstallare Groove Musica da Windows 10

immagine: ArsTechnica

ATTENZIONE: Prima di partire, il solito consiglio: occhio sempre a quello che tocchi e che rimuovi, effettua dei backup del tuo sistema per sicurezza, così potrai agilmente tornare indietro in caso di problemi.

Ancora una volta puoi centrare l’obiettivo passando da PowerShell, e nello specifico utilizzerai il comando Get-AppxPackage, cercando di filtrare ciò che riporta “Zune” nel nome (in caso contrario, otterrai una nutrita lista di pacchetti installati, di difficile consultazione immediata):

Get-AppxPackage –AllUsers | where {$_.Name -like "*zune*"}

Il risultato dovrebbe portarti a qualcosa di simile alla schermata seguente:

Rimuovere Groove Musica da Windows 10

Copia il valore in corrispondenza di PackageFullName (ti basta evidenziarlo con il mouse e poi fare un solo clic con il tasto destro, nda), quindi lancia il comando di rimozione:

remove-AppxPackage Microsoft.ZuneMusic_3.6.12711.0_x64__8wekyb3d8bbwe

Ovviamente Microsoft.ZuneMusic_3.6.12711.0_x64__8wekyb3d8bbwe dovrà essere sostituito con il valore precedentemente copiato, anche se in realtà dovrebbe risultati essere identico.

Rimuovere Groove Musica da Windows 10 1

Lo stesso identico metodo vale anche con altre applicazioni pre-installate nel sistema, “Xbox” compresa (occhio però, nel suo specifico caso ti consiglio di non andare oltre la rimozione di Microsoft.XboxApp, che dovrebbe corrispondere al pacchetto Microsoft.XboxApp_11.13.6008.0_x64__8wekyb3d8bbwe) ;-)

Condividi l'articolo con i tuoi contatti:

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"!

La registrazione di caratteri in Windows è sempre stata cosa assai semplice. Un clic destro sul file interessato e uno su Installa, nulla più. Ma se ti dovesse capitare di essere collegato a una macchina con un utente limitato (standard user) e l’impossibilità di fare un semplice “Cambia utente” o “Disconnetti“? Il Run-as è la strada più rapida, e la PowerShell può aiutare a completare più rapidamente l’operazione.

PowerShell: registrazione di font in Windows

Un articolo che puoi archiviare tra quelli che servono giusto a fornirti lo snippet da utilizzare, uno di quelli che un domani potrebbe tornarti utile e forse ti ricordi di passare a trovarmi. Due le righe di codice (corte pure, quasi non le vedi):

$fonts = (New-Object -ComObject Shell.Application).Namespace(0x14)
dir *.ttf | %{ $fonts.CopyHere($_.fullname) }

Non serve salvarle su un file ps1 apposito (a meno di volerlo tenere da parte per futuro utilizzo). Ti basta aprire un prompt PowerShell con diritti elevati, navigare in una cartella contenente i font che vuoi installare e lanciare entrambe le righe, a quel punto ti partiranno a video le richieste di conferma registrazione dei tipi di font trovati. Comodo, rapido, perfetto per lo scopo.

Cheers!

basato su: windowsitpro.com/scripting/trick-installing-fonts-vbscript-or-powershell-script

Condividi l'articolo con i tuoi contatti: