Archives For Lavoro

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

Te lo ricordi quell’articolo in cui ti parlavo dell’utility di Pulizia Disco per Windows 2008? Se non lo ricordi ti aiuto io, è questo:

Windows 2008: dove trovare l’utility di Pulizia Disco

Ora, dato che cambia il sistema ma non la sostanza, riporto un riferimento alla possibilità di installazione del medesimo tool su Windows 2012, può sempre tornarmi utile in futuro (e forse torna utile anche a te che mi stai leggendo adesso). Anche stavolta le posizioni cambiano in base al fatto che si stia lavorando su Windows 2012 standard o R2, occhio.

Win10Clean.ps1: uno script PowerShell per fare pulizia su Windows 10 1

Windows 2012

Per utilizzare Clean Manager su Windows 2012 devi copiare i file cleanmgr.exe e cleanmgr.exe.mui che trovi rispettivamente in:

  • C:\Windows\WinSxS\amd64_microsoft-windows-cleanmgr_31bf3856ad364e35_6.2.9200.16384_none_c60dddc5e750072a\cleanmgr.exe
  • C:\Windows\WinSxS\amd64_microsoft-windows-cleanmgr.resources_31bf3856ad364e35_6.2.9200.16384_en-us_b6a01752226afbb3\cleanmgr.exe.mui

all’interno delle cartelle:

  • %systemroot%\System32 (cleanmgr.exe)
  • %systemroot%\System32\en-US (cleanmgr.exe.mui)

Occhio, vale il solito discorso per i sistemi operativi localizzati in italiano (qui li usiamo esclusivamente in inglese, ma capisco che tu potresti trovarti in una diversa situazione). Se utilizzi Windows 2012 in italiano, dovrai copiare cleanmgr.exe.mui nella cartella %systemroot%\System32\it-IT.

Windows 2012 R2

Le cose cambiano per la versione R2, che necessita del pacchetto Desktop Experience senza alternativa alcuna (così pare). Puoi installare il componente anche da PowerShell, ti basterà lanciarlo in modalità amministrativa ed eseguire un Install-WindowsFeature Desktop-Experience

L’operazione richiederà un riavvio del server.


fonte: support.appliedi.net/kb/a110/how-to-enable-the-disk-cleanup-tool-on-windows-server-2008-r2.aspx

Condividi l'articolo con i tuoi contatti:

In seguito a una migrazione della virtual appliance di Kace, alcuni dei client dislocati sul territorio hanno perso “la retta via di casa“, non comunicando più correttamente con la console del software di Quest. Per questo motivo, dato che tutti eseguivano almeno uno script di logon, ho deciso di inserire un richiamo a un VBScript che ho sviluppato (prendendo spunto da moltissime fonti, riportate nei credits dello script, nda) e che si occupa di verificare che l’agente Kace sia installato (fondamentale) ein caso lo fosseche l’inventario ultimo non sia più vecchio di 10 giorni.

Kace: un alert in caso di client mancante o inventario troppo vecchio

A oggi i risultati sono stati molto positivi, abbiamo visto spuntare fuori diverse macchine sulle quali è poi bastato connettersi via prompt (niente che non possa essere eseguito da un PsExec) per mettere a posto le cose (te lo spiego più tardi).

La logica di funzionamento

Il principio dello script è semplice e si basa su un comportamento attuale dell’agente di Kace. Se questo è installato, vuol dire che tra i servizi attivi della macchina dovrà esserci Konea, nome assegnato già da Dell prima che Quest ereditasse il prodotto. Se hai l’agente Kace installato sulla tua macchina e vuoi fare un banale controllo, prova a lanciare un sc query Konea via prompt dei comandi, dovresti ottenere un risultato simile:

NOME_SERVIZIO: konea
 TIPO : 10 WIN32_OWN_PROCESS
 STATO : 4 RUNNING
 (STOPPABLE, NOT_PAUSABLE, ACCEPTS_SHUTDOWN)
 CODICE_USCITA_WIN32 : 0 (0x0)
 CODICE_USCITA_SERVIZIO : 0 (0x0)
 PUNTO_CONTROLLO : 0x0
 INDICAZIONE_ATTESA : 0x0

Detto ciò, si passa alla seconda verifica: un inventario sufficientemente aggiornato anche per coloro che magari non accendono il PC per qualche giorno (penso alle ferie nei periodi estivi o invernali, o magari a breve trasferte lavorative anche offline). Ho pensato quindi che 10 giorni fosse un corretto intervallo di tempo massimo, oltre il quale devo allarmare qualcuno affinché faccia un controllo sulla console.

Dato che in alcuni casi è necessario ignorare determinate macchine sulle quali ci si autentica con le proprie credenziali, lo script prevede anche delle esclusioni in base al nome macchina,ciò implica però che tu vada a utilizzare una nomenclatura ben precisa (altrimenti ti toccherà inserire una miriade di nomi diversi).

Lo script

Ho notato che l’agente di Kace aggiorna il file kinventory.db ogni volta che comunica il suo inventario completo. Per questo motivo, lo prendo come punto di riferimento e mi accerto che l’ultima data di modifica del file non sia più vecchia dell’intervallo stabilito (intervallo che tu, secondo una diversa esigenza o ragionamento, puoi chiaramente modificare).

Se anche questo controllo passa indenne, nessun problema. In caso contrario, spedirò una mail a un singolo destinatario o un gruppo di HelpDesk che possa far partire i controlli necessari.

Tradotto in codice (anche non elegante, non ottimizzato e chissà cos’altro ancora), questo è il risultato:

Cosa c’è da sapere, cosa dovrai modificare

I punti modificabili all’interno dello script sono diversi, alcuni necessari, altri meno (nel senso che puoi lasciarli invariati rispetto al mio suggerimento), andiamo con ordine.

  • sDirectoryPath = "C:\ProgramData\Dell\Kace": salvo modifiche da parte di Quest, la cartella dove risiede il DB di inventario è questa, e vale per Windows 7 o superiore. Se ci saranno modifiche in futuro, aggiornerò lo script e l’articolo, puoi starne certo.
  • iDaysOld = 10: modificando quel 10, modificherai i giorni oltre i quali allarmarsi per un possibile disallineamento dell’agente Kace rispetto alla console. Credo che il mio sia un giusto intervallo, ma ogni realtà è diversa, così come ogni esigenza.
  • exclusions = Array( "WIN7TEST", _: per ogni riga, potrai specificare una parte di nome che –nel caso in cui dovesse far parte dell’hostname– verrà ignorata, facendo chiudere in automatico lo script. Nello script di esempio pubblicato su Gist (quello che vedi poco sopra), ho pensato a macchine virtuali (o fisiche) che contengano nel loro nome WIN7TEST o WIN10TEST. Cambia quei nomi con ciò che ti interessa ignorare, altrimenti non curarti di questa porzione di codice e vai avanti.
  • Destination = "tuonome@contoso.com": ogni campo Destination (ce ne sono due, nda) dovrà contenere l’indirizzo di posta di chi riceverà la mail di alert in caso di problemi. Sostituisci quindi “tuonome@contoso.com” con un indirizzo di posta esistente e sensato.
  • objMessage.From = "Alert Kace <kacealert@contoso.com>: un po’ come sopra, anche se questo è in realtà l’indirizzo del mittente che invierà la mail. Può essere anche fittizio, ma occhio ai controlli antispam del tuo client di posta.
  • "smtp.contoso.com": sostituiscilo con l’indirizzo del tuo server SMTP, possibilmente interno alla tua rete.
ATTENZIONE: Nel caso in cui tu non avessi un SMTP interno alla tua rete aziendale, dovrai passare per un provider esterno. In questo caso, potresti dover utilizzare un’autenticazione per spedire posta. Dai un’occhiata alla pagina paulsadowski.com/wsh/cdo.htm per sapere come modificare lo script e procedere (oppure chiedi aiuto nell’area commenti del mio blog).

Fai molta attenzione. Come anticipato, ci sono due campi per Destination, objMessage.From e smtp.contoso.com. Lo script, salvo errori, ti consegnerà comodamente in Inbox delle mail di questo tipo:

Tocca ora a te collegarti alle macchine tramite prompt dei comandi e procedere con le opportune operazioni. Ti riepilogo brevemente in cosa potresti imbatterti.

Kace: amptools

Spostati nella cartella di installazione del Kace (C:\Program Files (x86)\Dell\KACE per i sistemi a 64 bit, C:\Program Files\Dell\KACE per quelli a 32) e procedi verificando la configurazione del tuo agente Kace. Questa è memorizzata nel file amp.conf che si trova nella %ProgramData%, ma puoi facilmente ottenerla lanciando il comando amptools get:

C:\Program Files (x86)\Dell\KACE>amptools get
[2017-11-06.09:05:23][AMPTools:AgentConfig::LogAll ] Agent Configuration Values
[2017-11-06.09:05:23][AMPTools:AgentConfig::LogAll ] KACE Agent version 7.2.10 Jun 5 2017
[2017-11-06.09:05:23][AMPTools:AgentConfig::LogAll ] ------------------------------------------------
[2017-11-06.09:05:24][AMPTools:AgentConfig::LogAll ] debug: true
[2017-11-06.09:05:24][AMPTools:AgentConfig::LogAll ] host: kace.contoso.com
[2017-11-06.09:05:24][AMPTools:AgentConfig::LogAll ] weburl: https://kace.contoso.com
[2017-11-06.09:05:24][AMPTools:AgentConfig::LogAll ] webport: 443
[2017-11-06.09:05:24][AMPTools:AgentConfig::LogAll ] serverversion: 7.2.101
[2017-11-06.09:05:24][AMPTools:AgentConfig::LogAll ] max download speed: unlimited
[2017-11-06.09:05:24][AMPTools:AgentConfig::LogAll ] companyname: Contoso Corp.
[2017-11-06.09:05:24][AMPTools:AgentConfig::LogAll ] splashtext: KACE Systems Management Appliance is verifying your system configuration and managing software updates. Please Wait...
[2017-11-06.09:05:24][AMPTools:AgentConfig::LogAll ] processtimeout: 14400000
[2017-11-06.09:05:24][AMPTools:AgentConfig::LogAll ] filetimeout: 86400
[2017-11-06.09:05:24][AMPTools:AgentConfig::LogAll ] sslrequired: TRUE
[2017-11-06.09:05:24][AMPTools:AgentConfig::LogAll ] verifyssl: FALSE
[2017-11-06.09:05:24][AMPTools:AgentConfig::LogAll ] koneaport: 443
[2017-11-06.09:05:24][AMPTools:AgentConfig::LogAll ] servercompress: TRUE
[2017-11-06.09:05:24][AMPTools:AgentConfig::LogAll ] disablebootupsplash: FALSE
[2017-11-06.09:05:24][AMPTools:AgentConfig::LogAll ] disableloginsplash: FALSE
[2017-11-06.09:05:24][AMPTools:AgentConfig::LogAll ] disablewaitforbootuptasks: FALSE
[2017-11-06.09:05:24][AMPTools:AgentConfig::LogAll ] disablewaitforlogintasks: FALSE

Assicurati che i campi host e weburl siano corretti e, nel caso non lo fossero, procedi secondo un ragionamento semplice:

  • se la versione dell’agente è antecedente la 7, dovrai disinstallarlo, quindi installare la versione più recente, questo a causa di una incompatibilità con console esposte in HTTPS e porte diverse da quelle utilizzate in passato.
  • Se la versione è successiva alla 7, ti basterà lanciare una semplice riconfigurazione.

Disinstallazione

Senza muoverti dalla cartella nella quale ti trovi via prompt dei comandi, esegui un amptools uninstall all-kuid per rimuovere l’agente e pulire ogni configurazione.

C:\Program Files (x86)\Dell\KACE>amptools uninstall all-kuid
[2017-11-06.12:49:31][AMPTools:StopIfNeeded ] [Stopping Service]
Stopping ..
AMPWatchDog stopped successfully
[2017-11-06.12:49:31][AMPTools:StopKonea ] [Stopping konea]
[2017-11-06.12:49:31][AMPTools:StopKonea ] Service "konea" stopped.
Stopping ..
AMPAgent stopped successfully
AMPWatchDog already stopped
DeleteSvcWithName:AMPWatchDog uninstalled.
[2017-11-06.12:49:45][AMPTools:RemoveKonea ] [Stopping konea]
[2017-11-06.12:49:45][AMPTools:RemoveKonea ] Service "konea" uninstalled.
Removing KUID from registryRemove the entire data directory

A questo punto, lancia l’installazione del pacchetto MSI in maniera silente. L’agente, non appena installato, contatterà nuovamente la console e invierà il suo inventario aggiornato. Nell’esempio di seguito, tengo conto di un’installazione dell’agente eseguita da una cartella locale del PC (l’agente è stato precedentemente copiato), nulla ti vieta di lanciarla da un’unità di rete che dovrà però essere accessibile anche da prompt dei comandi:

msiexec /i ampagent-7.2.10-x86_kace.contoso.com.msi /quiet /qn /norestart

Ti ricordo che, nel caso ti sfuggisse o non lo sapessi affatto, potrai specificare l’indirizzo del tuo Kace direttamente nel nome del pacchetto MSI, così da evitare che venga richiesto a video. Ti basterà posporre l’URL al nome pacchetto, subito prima dell’estensione. Guarda tu stesso l’esempio poco sopra: il pacchetto originale si chiamava ampagent-7.1.62-x86.msi, modificandolo in ampagent-7.1.62-x86_kace.contoso.com.msi, questo proverà immediatamente a contattare kace.contoso.com per inviare il suo inventario.

L’operazione dura un paio di minuti circa. A quel punto vedrai comparire il PC nella tua console Kace, e potrai cancellare il pacchetto MSI dalla cartella locale del PC (ammesso tu l’abbia copiato prima).

Riconfigurazione

La riconfigurazione è cosa assai più semplice, perché non richiede che un solo comando da eseguire via prompt, senza necessità di disinstallare alcunché. Anche se l’agente non è aggiornato rispetto a quello distribuito da console, ma è già compatibile con le nuove porte usate dal servizio Konea, penserà lui stesso ad aggiornarsi quando sarà nuovamente collegato al tuo Kace.

Sempre da prompt dei comandi (e dalla cartella di installazione dell’agente Kace) lancia un amptools resetconf host=kace.contoso.com (sostituendo ovviamente l’URL con quello della tua console), il servizio verrà così riavviato e partirà utilizzando il nuovo indirizzo fornito:

C:\Program Files (x86)\Dell\KACE>amptools resetconf host=kbox.contoso.com
[2017-11-08.09:23:16][AMPTools:AgentTools::PerformRese] Resetting config file C:\ProgramData\Dell\KACE\amp.conf
[2017-11-08.09:23:16][AMPTools:AgentTools::PerformRetr] Removing previous certificate (if it exists): C
[2017-11-08.09:23:16][AMPTools:AgentTools::StopIfNeede] [Stopping Service]
Stopping ..
AMPWatchDog stopped successfully
Stopping ...
OfflineScheduler stopped successfully
[2017-11-08.09:23:36][AMPTools:KoneaTools::StopKonea ] [Stopping konea]
[2017-11-08.09:23:36][AMPTools:KLaunchClient::Launch ] KLaunchClient::Launch()
[2017-11-08.09:23:36][AMPTools:KLaunchClient::DumpStat] Launch State: Command="C:\Program Files (x86)\Dell\KACE\konea.exe" Arguments="-stop" WorkingDir="" Timeout=14400000 ShouldDetach=0 ShowWindow=0 Redirect_stdout=1 Redirect_stderr=0 Desktop=winsta0\default Using Wait_Override=0
[2017-11-08.09:23:36][AMPTools:KLaunchUtils::DoesToken] DoesTokenHaveLSAPriviledges returning: 0
[2017-11-08.09:23:36][AMPTools:KLaunchClientImpl::Laun] KLaunchClientImpl::Launch() DoesCurrentProcessHaveLSAPriviledges = false
[2017-11-08.09:23:36][AMPTools:KLaunchClientImpl::Laun] KLaunchClientImpl::LaunchNoSession()
[2017-11-08.09:23:36][AMPTools:KLaunchClientImpl::Setu] KLaunchClientImpl::SetupStartInfo *Don't CreateStdPipe StdIn Pipe (disabled)
[2017-11-08.09:23:36][AMPTools:KLaunchClientImpl::Laun] KLaunchClientImpl::LaunchNoSession - CreateProcess returned successfully
[2017-11-08.09:23:36][AMPTools:KLaunchClientImpl::Read] KLaunchClientImpl::ReadStdPipe End of ReadStdPipe method
[2017-11-08.09:23:36][AMPTools:KLaunchClientImpl::Proc] KLaunchClientImpl::ProcessResults - End
[2017-11-08.09:23:36][AMPTools:KoneaTools::StopKonea ] Service "konea" stopped.
[2017-11-08.09:23:36][AMPTools:AgentTools::StartIfNeed] [Starting Service]
OfflineScheduler started successfully
AMPWatchDog started successfully
[2017-11-08.09:23:36][AMPTools:KoneaTools::StartKonea ] [Starting konea]
[2017-11-08.09:23:36][AMPTools:KLaunchClient::Launch ] KLaunchClient::Launch()
[2017-11-08.09:23:36][AMPTools:KLaunchClient::DumpStat] Launch State: Command="C:\Program Files (x86)\Dell\KACE\konea.exe" Arguments="-start" WorkingDir="" Timeout=14400000 ShouldDetach=0 ShowWindow=0 Redirect_stdout=1 Redirect_stderr=0 Desktop=winsta0\default Using Wait_Override=0
[2017-11-08.09:23:36][AMPTools:KLaunchUtils::DoesToken] DoesTokenHaveLSAPriviledges returning: 0
[2017-11-08.09:23:36][AMPTools:KLaunchClientImpl::Laun] KLaunchClientImpl::Launch() DoesCurrentProcessHaveLSAPriviledges = false
[2017-11-08.09:23:36][AMPTools:KLaunchClientImpl::Laun] KLaunchClientImpl::LaunchNoSession()
[2017-11-08.09:23:36][AMPTools:KLaunchClientImpl::Setu] KLaunchClientImpl::SetupStartInfo *Don't CreateStdPipe StdIn Pipe (disabled)
[2017-11-08.09:23:36][AMPTools:KLaunchClientImpl::Laun] KLaunchClientImpl::LaunchNoSession - CreateProcess returned successfully
[2017-11-08.09:23:36][AMPTools:KLaunchClientImpl::Read] KLaunchClientImpl::ReadStdPipe End of ReadStdPipe method
[2017-11-08.09:23:36][AMPTools:KLaunchClientImpl::Proc] KLaunchClientImpl::ProcessResults - End
[2017-11-08.09:23:36][AMPTools:KoneaTools::StartKonea ] Service "konea" started.

In conclusione

Se dovessero servirti (o sei semplicemente curioso) trovi le opzioni da riga di comando degli “amptools” nella documentazione prodotto, ma dovrai avere un’utenza registrata per poterla consultare: support.quest.com/kace-systems-management-appliance/kb/146458.

Salvo errori o modifiche non eseguite, tutto dovrebbe funzionare a pieno regime, consentendoti di riportare sulla terra ferma le macchine che navigano altrove perché senza una rotta certa. Certo inizialmente potresti avere molte segnalazioni e ti sembrerà di aver fatto una stupidata e che forse “occhio non vede, cuore non duole” è un gran proverbio, ma pensandoci a mente fredda forse mi ringrazierai :-)

In caso di dubbi, o se volessi dare ulteriori suggerimenti in merito, l’area commenti è sempre a tua totale disposizione.

Buon lavoro!

Condividi l'articolo con i tuoi contatti:

Tempo fa ho inserito un paio di personalizzazioni a bordo del Kace aziendale, per rilevare l’ID del TeamViewer installato a bordo di ogni nostro client, perché in alcuni casi l’utente non è in grado di trovare e fare doppio clic sull’icona del programma, rallentando i tempi di assistenza. Replicare la cosa è davvero banale, e ti basta inserire due nuove voci “Software” custom all’interno dell’inventario.

Kace: rilevare l'ID del proprio parco macchine

Per client a 32 bit

Naviga l’inventario Software di Kace, quindi creane uno nuovo manualmente. Inserisci un nome “parlante” (nel mio caso ho utilizzato TeamViewerID-x86), una versione (0.1 andrà più che bene) e un Publisher (inserisci il tuo nome, così da capire subito che si tratta di Custom Rules). Seleziona i Sistemi Operativi supportati, quelli a 32 bit per il momento, poi passeremo alla regola per intercettare l’ID anche sui Windows a 64 bit.

Nella Custom Inventory Rule copia e inserisci la stringa qui di seguito:

RegistryValueReturn(HKEY_LOCAL_MACHINE\SOFTWARE\TeamViewer, ClientID, NUMBER)

Essa si basa su un articolo disponibile nell’area Support di Quest, disponibile all’indirizzo support.quest.com/kb/sol111924.

Per client a 64 bit

Leggi la procedura relativa alle macchine a 32 bit, ciò che cambia è:

  • il nome da assegnare al Software Custom, che stavolta potrebbe chiamarsi TeamViewerID-x64.
  • I Sistemi Operativi compatibili, che dovranno tutti essere a 64 bit.
  • La Custom Inventory Rule, che deve leggere una diversa chiave di registro, questa:
RegistryValueReturn(HKEY_LOCAL_MACHINE\SOFTWARE\WOW6432Node\TeamViewer, ClientID, NUMBER)

Salva anche questo nuovo software, attendi quindi che le macchine aggiornino il loro inventario, troverai l’ID del TeamViewer (sempre aggiornato!) all’interno della scheda inventario di ciascun PC, sotto SoftwareCustom Inventory Fields:

Kace: rilevare l'ID del proprio parco macchine 2

Buon lavoro! :-)

Condividi l'articolo con i tuoi contatti:

Se stai vivendo un attimo di Déjà vu, non preoccuparti, è del tutto normale. Abbiamo toccato insieme questo argomento tante volte, è vero, ognuna di queste facendo riferimento a uno strumento differente, che poi è proprio la forza del libero mercato software (gratuito e non). Ancora una volta si parla di installazione di Windows da chiave USB, ancora una volta si fa riferimento a un tool (gratuito per una specifica versione), e pure stavolta ti consiglio caldamente di tenerlo a portata di mano nella tua solita “cassetta degli attrezzi“. Ti parlo di WinToFlash della NoviCorp.

Installare Windows da chiave USB (WinToFlash)

Se vuoi leggere gli articoli relativi alle varie alternative a tua disposizione, puoi dare un’occhiata a questi mie precedenti pubblicazioni:

Ciò che andiamo a fare oggi rimane in sostanza la stessa cosa di sempre. Scaricheremo quindi una ISO di Windows (o utilizzeremo un CD / DVD in nostro possesso), WinToFlash penserà a formattare la chiave USB e fare in modo che questa diventi avviabile, copiandoci sopra tutto il necessario e permettendo in seguito di utilizzarla come supporto di installazione del Sistema Operativo.

Procurarsi una copia di Windows

Hai il CD o il DVD originale di Windows? Bene, puoi saltare a piè pari questo paragrafo, limitati solo a inserirlo nel tuo lettore ottico, poi passa oltre. Nel caso invece tu non avessi un supporto ottico originale, puoi andare a rispolverare questo mio articolo di poco tempo fa, nel quale ti spiego –nel paragrafo “Ottenere un file ISO di Windows”– che software scaricare e che passaggi eseguire per scaricare un file ISO di Microsoft Windows, versione che più preferisci:

Reinstallare Windows OEM quando il supporto di Recovery non c’è

Mettere in pista WinToFlash

Di WinToFlash ne esistono diverse versioni, molte delle quali a pagamento. La Lite, invece, è disponibile per tutti, gratuitamente seppur limitata in alcune delle funzionalità: no NTFS, exFAT, USB-FDD, GRUB4DOS e file che superino i 4 GB di occupazione, solo un assaggio di di creazione chiavi USB multi-boot (en.wiki.wintoflash.com/index.php?title=Full_WinToFlash_features_list#Create_Multiboot_USB). Potrai infatti ospitare al massimo due sistemi all’interno dello stesso supporto, giusto per capire “cosa ti permetterebbe di fare” una versione professionale del programma.

Le due versioni più carrozzate sono ovviamente la Professional e la Enterprise, ma qui i prezzi lievitano in base alle esigenze. Esiste una versione Home leggermente più ricca della Lite, se ti interessa.

Per ciò che dobbiamo fare noi, basta e avanza la Lite, e pure in versione Portable, che puoi scaricare anche tu dalla pagina del Wiki ufficiale all’indirizzo en.wiki.wintoflash.com/index.php?title=Latest_WinToFlash_portable_editions_download. Scompatta il file ZIP dove preferisci e avvia l’eseguibile principale:

Installare Windows da chiave USB (WinToFlash) 3

Procurati una chiave USB capiente quanto basta (per installare Windows 10, giusto per fare un esempio attuale, ti bastano 4 GB), inseriscila, quindi lancia il trasferimento guidato che ti chiederà di specificare pochi dettagli, al resto ci pensa WinToFlash. Se hai inserito il DVD di installazione di Windows, seleziona la prima sorgente tra quelle possibili, altrimenti seleziona la seconda se vuoi passare da un file ISO:

Installare Windows da chiave USB (WinToFlash) 1

Non devi fare altro. La formattazione della chiave verrà eseguita automaticamente, così come la selezione dei file necessari che verranno poi caricati sul dispositivo di memorizzazione esterno, all’incirca servono 15 / 20 minuti per preparare il supporto (non ha vitale importanza la velocità di scrittura di quest’ultimo, c’è bisogno di tempo per fare tutto, in ogni caso).

Installare Windows da chiave USB (WinToFlash) 2

Prendi la chiave USB, inseriscila nel PC dove hai bisogno di installare il Sistema Operativo, falla partire al boot (generalmente lo si fa con un ESC sui PC Lenovo o F12 sui Dell, e qui ne trovi molti altri), il resto è tutto in discesa (e la velocità ne gioverà di molto in questo passaggio).

Anche WinToFlash in versione Portable può (e secondo me deve) finire nella tua cassetta degli attrezzi da tenere a portata di mano.

Buon lavoro :-)

Condividi l'articolo con i tuoi contatti:

Sono partito da un’esigenza segnalata da uno degli utenti in ufficio, il quale aveva bisogno di scaricare un grande numero di documenti PDF in un solo colpo, “catturandoli” da più mail già ricevute e messe da parte nel suo Outlook (una mail, un allegato PDF, questa la proporzione). Outlook non prevede questa necessità, e permette esclusivamente di scaricare tutti gli allegati –di una singola mail– in un solo colpo. Aggirare l’ostacolo però è possibile, lo si fa tramite una porzione di codice VBA da andare a inserire nella finestra del Microsoft Visual Basic, richiamabile da ogni singolo programma di Office.

Outlook 2016: scaricare insieme gli allegati da diverse mail (PDF)

Inizialmente pensato come un comportamento da adottare in seguito alla ricezione di una nuova mail (con una regola ad-hoc, per ingaggiare uno script), si è trasformato in un pulsante da andare a inserire nella barra multifunzione di Outlook, un “tool” da tenere a portata di mano in caso di necessità, che a oggi permettono di individuare e scaricare file PDF, ma che con una piccola modifica potrebbe intercettare qualsiasi altra cosa.

Il funzionamento, spiegato in maniera semplice, è questo:

  • si seleziona una o più mail tra quelle del proprio Outlook,
  • si fa clic su un pulsante messo appositamente nella barra multifunzione del client di posta elettronica,
  • si attende che lo script verifichi l’esistenza di file PDF negli allegati delle mail selezionate, quindi li estragga e li vada a inserire in una apposita cartella sul Desktop (che verrà utilizzata se già esistente, creata se invece non presente). Il tutto dura qualche secondo (minuto, se le mail da analizzare sono davvero tante).

Tradotto in passaggi da riprodurre sul proprio Outlook, la cosa cambia, ed è chiaramente più tecnica. Te la faccio il più semplice possibile.

Procedure in comune: notifica per le macro non firmate

Prima di partire, dovrai andare a modificare il comportamento del Centro di sicurezza del tuo Outlook affinché ti faccia comparire degli avvisi a video nel caso in cui venga tentata l’esecuzione di una Macro non firmata. Questo permetterà allo script aggiunto (ne parliamo dopo) di funzionare correttamente, in quanto “home made” (fatto in casa, dai).

Per farlo, dovrai andare in FileOpzioniCentro protezioneImpostazioni Centro protezioneImpostazioni macro e selezionare la voce “Visualizza notifiche per tutte le macro”:

Outlook 2016: scaricare insieme gli allegati da diverse mail (PDF) 1

Un clic su OK per confermare la modifica e chiudere la finestra, sei a posto.

Procedure in comune: VBA

Per entrambi i tipi di comportamento che puoi scatenare in Outlook (salvataggio dei PDF tramite pulsante nella barra multifunzione, oppure tramite regola che lancia lo script), dovrai sempre andare ad aprire la finestra di Microsoft Visual Basic che richiami tramite la combinazione di tasti ALT + F11.

Per facilitarti le cose, ho già impacchettato ciò che ti serve per ottenere il risultato desiderato. Ho scritto due file BAS (codici importabili in VBA) che ho pubblicato su Gist. Il primo è quello relativo al salvataggio scatenato da una regola, il secondo per quello tramite pulsante (quindi manualmente). Scarica ciò che ti serve (fai clic in alto a destra sul pulsante Download ZIP, quindi estrai il contenuto e recupera il file con estensione bas):

Torna nella finestra di Microsoft Visual Basic, fai clic con il tasto destro su Progetto1 e seleziona Importa file, seleziona quindi il file che il file relativo al codice che ti interessa utilizzare per terminare l’importazione, poi fai clic su Salva (nella barra superiore degli strumenti, altrimenti c’è la combinazione da tastiera CTRL + S).

Outlook 2016: scaricare insieme gli allegati da diverse mail (PDF) 2

Nel caso in cui tu volessi entrambi le funzioni (quindi tutto il codice sorgente) fai riferimento a questo ulteriore collegamento a Gist.

Salvare PDF con una regola

Prima di procedere, apri un prompt dei comandi, copia e incolla questa stringa:

REG ADD "HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Security" /v EnableUnsafeClientMailRules /t REG_DWORD /d 1 /f

Ciò permetterà di sbloccare la possibilità di utilizzare / richiamare uno script all’interno di una regola di Outlook, opzione disabilitata di default da Microsoft (già da qualche tempo).

Fatto ciò, se hai già caricato il mio script tra i moduli VBA, dovrai solo creare una nuova regola e –nella seconda schermata di avanzamento– chiedergli di eseguire uno script, troverai quello precedentemente caricato tra i disponibili (forse sarà l’unico), utilizzalo e vai avanti con la sua costruzione:

Outlook 2016: scaricare insieme gli allegati da diverse mail (PDF) 3

Troverai (nel caso in cui la regola entri in funzione) i file PDF all’interno della cartella Attachments sul tuo Desktop.

Salvare PDF con un pulsante

Dando per scontato che tu abbia già importato il codice VBA (come già descritto un paio di paragrafi fa),fai clic con il tasto destro sulla barra multifunzione di Outlook e seleziona la voce Personalizza barra multifunzione. Fai clic sul pulsante “Nuovo gruppo” (in basso a destra nel popup comparso), posizionalo dove lo preferisci spostandolo con le frecce su / giù disponibili lateralmente nella finestra a video, quindi rinominalo (suggerisco “Tools“).

Seleziona ora la voce “Macro” nella colonna sinistra “Scegli comandi da:” e aggiungi Progetto1.ExportAttachments, quindi rinominalo in (per esempio) “Estrai PDF”:

Outlook 2016: scaricare insieme gli allegati da diverse mail (PDF) 4

Un clic su OK per salvare e chiudere la finestra, il risultato dovrebbe assomigliare a questo:

Outlook 2016: scaricare insieme gli allegati da diverse mail (PDF) 5

Puoi verificare il funzionamento della modifica selezionando manualmente delle mail e facendo clic sul pulsante. Troverai (se ne esistono, e quindi se vengono estratti) i file PDF all’interno della cartella Attachments sul tuo Desktop.

In conclusione

Attento: ricordati che, allo stato attuale delle cose, due allegati con lo stesso nome non possono coesistere nella stessa cartella Attachments (andrebbe modificato lo script), l’ultimo estratto sovrascrive sempre quello estratto precedentemente.

Salvo errori nel processo di “installazione” (se così posso chiamarlo), tutto dovrebbe funzionarti alla perfezione, permettendoti di catturare i file PDF che vengono allegati alle mail che ricevi e portarli nella cartella Attachments sul tuo Desktop. Nessuno però ti impedisce di modificare lo script e fargli verificare l’esistenza di altre estensioni, come doc, docx, xlsx e chi più ne ha più ne metta. Trovi diversi riferimenti in merito nel sito web che più mi ha aiutato a plasmare il risultato di cui avevo necessità (slipstick.com/developer/save-attachments-to-the-hard-drive).

Tutto il set di script e modifiche da operare vengono rilasciate –come sempre– “as is“, con nessuna garanzia o responsabilità. Tutto è stato provato decine di volte, installato su più PC, fatto funzionare senza battere ciglio, ma sappiamo tutti benissimo che ogni configurazione differisce dall’altra per delle “virgole“. Quella certamente testata si è basata su Outlook 2016 x64 (1708 build 8431.2079). Ne ho caricato una copia completa sul mio spazio box, nel caso in cui ti serva scaricare tutto in un colpo: app.box.com/s/5ksruqc3pi74fumkbt4wg3avb1f6tmzf

L’area commenti, come al solito, resta a disposizione per eventuali suggerimenti e domande inerenti questo articolo.

Buon lavoro!

Condividi l'articolo con i tuoi contatti: