Archives For Tools

Argomento delicato. La telemetria viene vista spesso con occhio sospetto, scambiata facilmente come invasione della privacy. Senza di lei però i programmi continuerebbero a rimanere potenzialmente instabili e pachidermici, appesantiti da codice che in alcuni casi non viene più utilizzato, o che è possibile ottimizzare in base ad architetture in continua evoluzione, che possono quindi premiare tutti gli utilizzatori nel corso del tempo, occupando loro meno risorse. La telemetria viene utilizzata da Mozilla (tanto per citare una società che ci tiene parecchio alla privacy altrui) ma è anche alla base dei prodotti principali di Microsoft, Windows e Office in primis.

Microsoft Windows and Office Banner

A calcare la mano però ci pensa proprio Microsoft, con consumi che di tanto in tanto (fortunatamente) sforano alla grande rispetto a quello che dovrebbe ricadere in qualcosa di simile alla “cortesia” (mi fai sapere come vanno i miei programmi? Ma certo, eccoti i dettagli della telemetria), andando così a impattare sul lavoro che è necessario portare a termine nei tempi richiesti. Agevolo screenshot:

Windows & Office un taglio alla Telemetria 1

Ora, appurato che anche Symantec ci mette del suo nel momento più sbagliato, non può comunque passare inosservato quel doppio processo che va a consumare poco più del 50% di CPU. Nello specifico dello screenshot si è trattato di telemetria di Office, ma anche quella di Windows non scherza. La prima citata gira tramite un paio di processi schedulati (entrambi fanno riferimento allo stesso eseguibile e una serie di parametri da riga di comando), la seconda tramite un servizio sempre attivo sulla macchina.

Il servizio si può fermare e disabilitare (così che non parta all’avvio del sistema), i due processi schedulati possono essere disabilitati (e basterà un semplice riavvio per mettere subito in atto la modifica). Se l’operazione manuale non ti alletta, ho messo mano al solito file di testo che è presto diventato un batch e poi un eseguibile (per entrambe le cose, separatamente, così rimane a te la scelta di cosa fermare e cosa no).

Trovi gli eseguibili agli indirizzi:

Entrambi i programmi devono essere eseguiti come amministratore. Ti permetteranno di modificare lo stato del tuo sistema o di tornare indietro in qualsiasi momento (ho inserito ambo le possibilità, così da ripristinare uno stato originale in qualsiasi momento). Per entrambi i batch ho cercato di rimanere quanto più generico possibile, così da provare a mantenere una piena compatibilità con i sistemi operativi più recenti, strizzando l’occhio anche al vecchio ma sempreverde Windows 7.

I test sono stati eseguiti su Windows 10 1703 (la Creators Update), ho fatto girare il tutto anche su un Windows 7 Pro Sp1, funzionante anche in questo caso. Se noti problemi nell’utilizzo, ti prego di farmelo sapere, l’area commenti è a tua totale disposizione! :-)

grazie ai contributi di:
computerstepbystep.com/base_filtering_engine_service.html
stackoverflow.com/questions/17412150/batch-regex-the-output-of-reg-query-command-to-a-variable
windowsitpro.com/windows-10/how-turn-telemetry-windows-7-8-and-windows-10
itechtics.com/disable-telemetry-data-collection-windows-10
technet.microsoft.com/en-us/library/cc766529(v=ws.11).aspx

Quando hai bisogno dell’Utilità di pianificazione di Windows e questa decide che non è d’accordo con il farsi utilizzare, hai un problema. Sì perché quell’utilità gestisce ogni attività che viene fatta partire in maniera autonoma dal sistema (processi impostati direttamente da Windows o da un prodotto di terza parte), e che non serve a nulla se non funziona. Mi sono accorto che il mio Task Scheduler aveva qualche problemino solo quando l’ho aperto per verificare perché un processo non fosse partito nell’ultima settimana:

Windows 10 e Task Scheduler danneggiato: come risolvere 1

Provando ad approfondire e leggendo quindi i dettagli dell’errore, la situazione non migliora affatto, tutt’altro:

Windows 10 e Task Scheduler danneggiato: come risolvere

È per questo motivo che ho deciso di informarmi sul web per capire se altri come me avessero avuto prima questo tipo di problemi. Ho trovato diverse lamentele e qualche possibile soluzione, ma solo una ha realmente risolto l’arcano e mi ha permesso di tornare in possesso della console delle operazioni programmate. La colpa era di un paio di voci che non sono riuscito a ricollegare ai relativi job (poco importa, se me ne accorgerò in futuro sarà mia cura rimetterli in piedi), e di una “CreateChoiceProcessTask” che mi ha portato sulla giusta via della risoluzione.

Il problema viene generalmente rilevato su Windows 8 e superiori, Windows 10 compreso. Mi è bastato gironzolare ancora un po’ per arrivare a un progetto di CodePlex chiamato Repair Tasks: repairtasks.codeplex.com. Piccola utility gratuita e immediatamente utilizzabile senza installazione, è stato un giusto toccasana che ho voluto salvare anche nel mio spazio su box.com in vista della chiusura di CodePlex, puoi trovarla quindi anche all’indirizzo app.box.com/s/yi1g04ccquyytov7fm0g3j27r8myr7tz.

Una volta lanciata, falle fare uno Scan dei tuoi processi e dei possibili problemi, probabilmente vedrai comparirne qualcuno come nel mio caso:

Windows 10 e Task Scheduler danneggiato: come risolvere 2

Nonostante esista la possibilità di selezionare e riparare gli errori, probabilmente questo non ti porterà all’uscita del tunnel e quindi alla risoluzione del problema. Non ti abbattere. Seleziona uno a uno i processi problematici e fai clic su “Unplug Task“. Questo permetterà a te di sganciarli dall’Utilità di pianificazione, e a Windows di darti nuovamente accesso completo alla console. Da qui potrai finalmente modificare i job schedulati e lanciarne di manuali per riprendere le attività precedentemente non andate a buon fine (perché mai partite!).

Cos’altro c’è da sapere

Che in caso di emergenza, il Registro di Windows può darti accesso alle tue schedulazioni navigando la chiave di registro:

HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Schedule\TaskCache\Tree\

e che se anche tu utilizzi SyncBack, dovrai dare un’occhiata a questo loro documento di Knowledge Base per riprendere completo possesso della situazione e delle tue pianificazioni (apparentemente non più gestibili o cancellabili).

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

Breve articolo ad perpetuam rei memoriam (non si sa mai, potrebbe sempre tornare utile in futuro). Non ti parlerò di WSUS Offline Update, è una fantastica utility che risolve molti dei problemi legati alle lunghe attese di ricerca, download e installazione patch per Windows quando si ha a che fare con macchine particolarmente datate e non aggiornate da diverso tempo, semplicemente saltando a piè pari l’ostacolo.

WSUS Offline Update: esclusione rapida di una patch

Il tool è gratuito, lo si scarica da wsusoffline.net ed è molto semplice da utilizzare (basta dare un’occhiata ai mille tutorial presenti sul web o magari giocarci sul proprio PC, perché di danni non è che tu ne possa poi fare molti). Facciamo finta che tu sappia già tutto e passiamo al succo della pillola. A me è servito escludere una particolare patch di Windows, affinché questa non venisse scaricata e installata da WSUS Offline Update. Riporto il pezzo della documentazione utile alla specifica esigenza:

b) Dynamically determined updates
To exclude dynamically determined updates from installation, insert their knowledge base ID (KBxxxxxx or simply xxxxxx) into the file “ExcludeList.txt” (directory .\client\exclude\custom). These updates will now be ignored; and you’ll receive a warning in the log.

Il tutto si traduce con un semplice file chiamato ExcludeList.txt, che andrà inserito nella cartella \exclude\custom\ di WSUS Offline Update (solo per fare un esempio: C:\wsusoffline\exclude\custom\ExcludeList.txt). All’interno del file dovrai dichiarare il KB da escludere, uno per riga se hai necessità di specificarne più di uno. Nel mio caso ho dovuto escludere una singola patch che sul vero WSUS aziendale è stata bloccata (aveva procurato problemi in passato). Così facendo posso evitare che lui debba andare a disinstallarla in seguito all’installazione eseguita tramite tool. La stessa cosa puoi applicarla direttamente alla cartella client (scaricherai la patch ma non la installerai), ti basterà inserire il file all’interno della cartella \client\exclude\custom.

Non servirà fare null’altro, la modifica è già operativa, tu potrai ora impostare che tipo di patch scaricare (e in seguito installarle tramite il client della stessa applicazione).

Buon lavoro!

Se n’è parlato nei commenti di uno dei tanti articoli dedicati a Office 365 e alle modalità di distribuzione sulle macchine controllate. In  realtà non capisco perché non l’ho suggerito prima, forse perché tutto sommato il file XML che permette di lanciare il download (o il setup) di Office è semplice da costruire. Dato che però non è così per tutti, ecco “Office 365 ProPlus Configuration XML Editor“, un tool grafico che aiuta chi vuole creare un custom XML per distribuire Office 365 ProPlus e non vuole conoscere i riferimenti spiegati in Technet.

Office 365 / 2013 Pro Plus: reset della licenza via Powershell 2

Lo strumento è disponibile all’indirizzo officedev.github.io/Office-IT-Pro-Deployment-Scripts/XmlEditor.html ed è stato realizzato con lo stesso stile che sei abituato a vedere quando apri la tua WebMail di Office 365 oppure di Outlook.com (tanto per fare un esempio). Lo troverai molto semplice da capire e utilizzare, tutto dipenderà dalle opzioni selezionate e dagli URL specificati, i quali genereranno righe di XML che comporranno poi il tuo file finale per il download e l’installazione:

Office 365: Configuration XML Editor (grafico)

Salva ogni passaggio intermedio, così da continuare a generare l’anteprima del file XML (nel box di destra), non soffermarti su righe che trovi “di troppo“, potrai (dovrai) metterle a posto più tardi. Giusto per fare un esempio e capirci, ho voluto creare un file XML per installare un Office 2016 a 64 bit, in italiano, ramo corrente (e relativi aggiornamenti), che accettasse in autonomia la EULA e non proponesse alcunché a video, con aggiornamenti diretti da Microsoft e nessuna icona nella taskbar. Ho ottenuto questo:

<Configuration>
 <Add OfficeClientEdition="64" Channel="Current">
 <Product ID="O365ProPlusRetail">
 <Language ID="it-it"/>
 </Product>
 </Add>
 <Updates Enabled="TRUE" Channel="Current"/>
 <Display Level="None" AcceptEULA="TRUE"/>
 <Logging Level="Standard" Path="%Temp%"/>
 <Property Name="AUTOACTIVATE" Value="1"/>
 <Property Name="FORCEAPPSHUTDOWN" Value="TRUE"/>
 <Property Name="SharedComputerLicensing" Value="0"/>
 <Property Name="PinIconsToTaskbar" Value="FALSE"/>
</Configuration>

All’interno del file XML c’è una riga per me inutile, questa:

 <Property Name="SharedComputerLicensing" Value="0"/>

La quale dovrà essere eliminata manualmente, perché non è possibile dire al tool di non tradurla dalla GUI al file generato (fa parte della stessa tab di configurazione dell’attivazione prodotto e del fermo forzato di eventuali applicazioni Office lasciate aperte). Nulla di che, basta saperlo. Dallo stesso sito web è inoltre possibile scaricare la versione più aggiornata del Deploy Tool di Microsoft (c’è il pulsante Download Office Deployment Tool in alto a destra, nda), ti consiglio sempre di tenerlo d’occhio (per una migliore compatibilità con eventuali opzioni -del file XML- più nuove rispetto al tool che magari hai scaricato un anno fa!).

Mi sembra che ci sia tutto. In caso di dubbi non esitare a lasciare un commento, come al solito :-)

È un problema che ho affrontato qualche tempo fa e che inizialmente mi ha dato un po’ di grattacapi, salvo poi trovare casi molti simili che mi hanno aiutato a risolvere l’anomalia. Il disco di un PC si satura e la colpa è della cartella C:\Windows\Temp, invasa da file senza estensione, dal nome che comincia sempre per cab_. Perché accade? Il problema viene generato da una installazione di alcuni aggiornamenti (da Windows Update) evidentemente non andata a buon fine, non del tutto almeno, nonostante la schermata preposta di Microsoft dica che tutto va bene.

Windows: l'invasione dei CBSPersist e dei cab_ (C:WindowsTemp)

Facendo un po’ più di attenzione, si scopre che in realtà di cartella che occupa spazio ce n’è un’altra. Teoricamente dovresti trovare anomala anche la C:\Windows\Logs\CBS, all’interno della quale dovresti trovare dei file CAB veri, e un file di log dalla dimensione decisamente robusta (CBS.log). L’anomalia parte proprio da qui. Partiamo con le opportune presentazioni (recuperate con una semplice ricerca):

CBS stands for “Component-Based Servicing” and it basically is the way components get installed and uninstalled during updates. It is the reason you see “Stage 1”, “Stage 2”, and “Stage 3” during the Service Pack 1 install (for example). “Stage 2” and “Stage 3” exists for the registry keys and files that are normally locked during regular operation.

Tutto chiaro? Un log in cui ogni aggiornamento di Microsoft va a scrivere e tiene traccia di ogni movimento. Un log destinato –per forza– a crescere, e che per un comportamento assolutamente standard va a ruotare, sospendendo la scrittura, finendo in un CAB che ne riduce (di parecchio) la dimensione, e infine ne prepara uno nuovo in cui tornare a scrivere, per poi ricominciare il giro ancora e ancora.

Se per qualsivoglia motivo questo procedimento non fila liscio, il CBS.log diventa più grande del previsto, ingestibile e –soprattutto– impossibile da mettere in un CAB nei tempi previsti. Il risultato? Cartella Temp di Windows piena di tentativi falliti di comprimere quel log, cartella CBS che si ingigantisce.

Diverse le fonti dove ho trovati informazioni in merito e persone capitate nello stesso vortice, ne ho selezionate tre che mi hanno aiutato:

Riepilogando, tutto questo può accadere in qualsiasi momento e -in base alla capacità del disco e lo spazio libero da poter sfruttare- potresti accorgertene a mesi (o forse anni) di distanza. Io ho scoperto di essere soggetto al problema solo perché un utente ha lamentato poco spazio libero e mi ha fatto scoprire l’anomalia. Le operazioni da affrontare per resettare il procedimento di scrittura e archiviazione del CBS.log è questo:

  • Fermare il servizio Windows Update.
  • Rinominare la cartella della Software Distribution (C:\Windows\SoftwareDistribution).
  • Cancellare ogni file in C:\Windows\Temp (ovviamente ignorando quelli in uso e che faranno comparire il classico errore a video di impossibilità di cancellazione, nda).
  • Riavviare il servizio di Windows Update.
  • Cancellare ora la cartella SoftwareDistribution precedentemente rinominata, non serve più, Windows Update provvederà a crearne una nuova in totale autonomia (dovrebbe già averlo fatto in fase di avvio del servizio, come da passaggio precedente).
  • Fermare il servizio Trusted Installer.
  • Cancellare ogni file in C:\Windows\Logs\CBS.
  • Riavviare il servizio Trusted Installer.
  • Forzare una ricerca aggiornamenti di Windows Update (direttamente via prompt).

Visto che questa cosa potrebbe capitare ad altri client in futuro, ho pensato di tradurla in codice batch, da dare in pasto anche al Kace di Dell (tanto per fare un esempio). Il tutto intervallando alcuni secondi di pausa prima di poter eseguire l’operazione successiva (dando così modo al client di non saltare alcun passaggio fondamentale):

sc stop wuauserv
ping 127.0.0.1 -n 7 > NUL
cd \Windows\
move SoftwareDistribution SoftwareDistribution_old
del /S C:\Windows\Temp\* /Q
FOR /D %%p IN ("C:\Windows\Temp\*.*") DO rmdir "%%p" /s /q
sc start wuauserv
rd /S /Q C:\Windows\SoftwareDistribution_old
sc stop TrustedInstaller
ping 127.0.0.1 -n 7 > NUL
del /S C:\Windows\Logs\CBS* /Q
sc start TrustedInstaller
ping 127.0.0.1 -n 5 > NUL
wuauclt.exe /detectnow

Così facendo ho risolto il problema e liberato spazio sul disco. Ho fatto queste modifiche al sistema mesi fa e il problema non si è più presentato (a me, ma anche ad altri utenti che nel frattempo ho rilevato nella nostra rete).

Facile (soprattutto se si ha un aiuto nella software distribution) fare un’analisi all’interno della rete aziendale e cercare le macchine che soffrono la stessa anomalia ma che ancora non hanno saturato il disco, basterà cercare nella cartella C:\Windows\Temp una forte presenza di cab_, così da portarsi avanti ed evitare che il problema si presenti agli occhi dell’utente.

Estote parati (cit.).

G

Update

Ho aggiunto il passaggio relativo alla cancellazione della cartella SoftwareDistribution rinominata (nella lista delle operazioni manuali da compiere), come da commento di GDB, che ringrazio per avermelo fatto notare.