Archives For Microsoft Windows

È 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.
  • 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

Abbiamo già trattato l’argomento, ci torno sopra perché –dopo gli ultimi aggiornamenti del software di Manage Engine– l’aspetto di ServiceDesk è decisamente cambiato (in meglio) e mi ha fatto nascere una nuova esigenza, in realtà nell’aria già da tempo. Si tratta della possibilità di fare un refresh manuale della pagina.

Nulla di particolare sotto al sole, sia chiaro, giusto un’aggiunta che può tornare utile avere a portata di clic oltre che di tastiera (in quel caso basta un F5). Ho scelto di inserire il nuovo pulsante subito prima del “Close“.

ServiceDesk: una toolbar personalizzata sempre in vista 1

Per lanciare un aggiornamento della pagina ho utilizzato un semplice window.location.reload(), che si integra quindi nel codice di un nuovo pulsante. Per poter far stare tutto su una sola riga, ho aumentato le dimensioni (larghezza) della toolbar, portando il valore a 310 pixel. Nello specifico, questo è il codice del nuovo pulsante:

// REFRESH
'<input type="button" title="Refresh" class="formStylebutton" style="width:auto;height:18" onclick="window.location.reload()" value="Refresh" name="refreshButton"> ' +

Ho rilasciato perciò una nuova versione del CustomScripts.js, disponibile come sempre su Gist, te la propongo qui di seguito per comodità:

Ne approfitto per ricordarti che lo script dovrà essere inserito in [TUOSERVERSDP]\ServiceDesk\custom\scripts, e che forzando un aggiornamento della pagina (del tuo HelpDesk) dovresti notare subito la novità, senza la necessità di riavviare il software.

Per commenti, nuove idee o suggerimenti riguardo possibili miglioramenti del codice attualmente proposto, l’area commenti è a tua totale disposizione!

G

Sono solito visitare spesso, per lavoro o curiosità personale, le community di discussione Microsoft, dove trovo colleghi (e non solo) che magari hanno riscontrato problemi simili ai miei, o dove posso inserirne di nuovi da discutere e –possibilmente– risolvere. Talvolta però ho notato che in maniera completamente randomica, mi becco un errore ben preciso: Bad Request – Request Too Long.

Firefox: risolvere il problema del Bad Request - Request Too Long

Non sono riuscito a riprodurlo, non c’è una condizione ben precisa che lo scatena, mi sono imbattuto in lui tre o quattro volte al massimo, a buona distanza l’una dall’altra volta, sempre tentando di visitare (con Firefox) proprio l’area di Social Technet Microsoft. A voler pensare male (si fa peccato) si può pensare che il big di Redmond non nutra tutta questa grande simpatia per il browser Mozilla, ma ovviamente si scherza :-)

Ho trovato a tal proposito una soluzione che ti potrebbe portare decisamente lontano dalla meta, te la segnalo affinché tu non la segua (occhio, ribadisco, ho detto che non devi seguirla): social.technet.microsoft.com/Forums/office/en-US/f164d006-61c7-46de-86ea-2003937b8b11/bad-request-request-too-long?forum=sharepointgeneralprevious.

Per ciò che riguarda Firefox, si tratta di un problema di Cache, al massimo di Cookie di sessione.

Pulisci prima la Cache

Lancia la combinazione CTRL + SHIFT + Canc da tastiera, dovrebbe comparirti una finestra simile a quella qui di seguito, nella quale dovrai selezionare solo la Cache (togli i segni di spunta a tutto il resto) e modificare l’intervallo di tempo da cancellare portandolo a “tutto“, seguito ovviamente da un clic su “Cancella adesso“:

Firefox: risolvere il problema del Bad Request - Request Too Long 1

Prova a visitare nuovamente il sito web che prima ti ha dato errore. Il problema è stato risolto? No? Ok, passiamo a cancellare i Cookie relativi al sito incriminato.

Pulizia dei Cookie

Accedi alla finestra riguardante le informazioni della pagina che stai provando a visitare. Per farlo, rimani sulla pagina di errore e fai clic sulla piccola icona “i” (di informazioni) nella barra dell’URL, aprirai così il blocco di informazioni su connessione e permessi del sito web (come da prima immagine, qui di seguito). Ora fai clic su sulla prima voce (quella relativa al certificato) e poi su “Ulteriori informazioni” (vedi seconda immagine, qui di seguito).

Puoi sostituire la procedura appena descritta andando nel menu StrumentiInformazioni sulla pagina su Windows (su macOS puoi invece lanciare un ⌘ + i). Nella finestra che ti è appena comparsa, spostati nella parte relativa alla Sicurezza, quindi fai clic su Mostra cookie:

Firefox: risolvere il problema del Bad Request - Request Too Long 4

Senza pensarci poi troppo, fai clic ora su Rimuovi tutto:

Firefox: risolvere il problema del Bad Request - Request Too Long 5

Visita ancora una volta il sito web che ti continuava ad andare in errore di Bad Request. Riesci a visualizzarlo correttamente? Bene così. Non riesci ancora ad aprirlo? Il problema risiede altrove, magari possiamo analizzarlo insieme, ti aspettiamo sul forum di Mozilla Italia.

G

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

Non so se si può parlare di una vera e propria nuova versione. Cambia poco rispetto alla precedente, ma stavolta si può scegliere di controllare lo stato di lock out di un utente direttamente proponendolo da riga di comando, così da poter utilizzare lo stesso identico script e clonare facilmente l’operazione pianificata, così da monitorare contemporaneamente più utenti.

Powershell: LockoutAD.ps1, utente a riga di comando

Cosa cambia quindi rispetto al precedente articolo? Presto detto:

#-----------------------------------------------#
#   ACCOUNT DA MONITORARE:                      #
    Param( 
        [Parameter(Position=0, Mandatory=$false, ValueFromPipeline=$true)] 
        [string] $AccountMonitor
    )
#-----------------------------------------------#

Questo, al posto del precedente $AccountMonitor = 'ACCOUNT_AD', permetterà di richiamare lo script in maniera tale da passargli l’account direttamente dal prompt della PowerShell: .\LockoutAD.ps1 ACCOUNT_AD

Chiaramente, per evitare che ci si dimentichi di specificare l’utente, basterà specificare un valore di default che lo script adotterà nel caso in cui non ci siano parametri, qualcosa del tipo:

 if ([string]::IsNullOrEmpty($AccountMonitor)) { $AccountMonitor = 'ACCOUNT_AD' }

così da tutelare una corretta esecuzione del codice. Questa istruzione andrebbe messa chiaramente dopo il catch del parametro da riga di comando, ma prima di lasciar fare la ricerca dell’evento 4771 (o 4740, in base a ciò che si desidera monitorare).

Tutto il resto può rimanere invariato. Se si intende fare un test di funzionamento senza allertare troppi indirizzi di posta elettronica, si potrà clonare la riga del Send-MailMessage assicurandosi di essere unici destinatari (commentando quella che include quindi eventuali CC o BCC), per poi tornare alla normalità quando si è sicuri che tutto fili liscio.

Magari, in una prossima pillola, ti mostrerò come arricchire ulteriormente lo script, prevedendo uno sblocco automatico dell’utenza di dominio bloccata, così che tu possa analizzare con un attimo più di calma cosa è accaduto e nel frattempo l’utente non si accorga di nulla (o quasi).

A proposito di EventLog e PowerShell

Ho modificato il comportamento dello script perché ho avuto la necessità di clonare l’operazione schedulata sul server di dominio così da tenere d’occhio un differente utente. Per poter approfondire il motivo dei lock di quest’ultimo, ho utilizzato PowerShell per filtrare più rapidamente il log degli eventi di sicurezza, generalmente molto nutrito e che mette un attimo in difficoltà la GUI accessibile tramite Visualizzatore degli Eventi. Per questo motivo ho cercato informazioni in merito e trovato alcuni interessanti spunti su serverfault.com/questions/584309/powershell-and-using-get-eventlog.

Nello specifico, ho filtrato direttamente gli eventi 4740 e 4771 protagonisti dello script, includendo inoltre lo specifico nome utente problematico, tramite una semplice query di questo tipo:

Get-EventLog Security 4771,4740

Che, per filtrare esclusivamente un utente, diventerà:

Get-EventLog Security 4740,4771 -after ((get-date).addDays(-1)) | Where-Object {$_.message -match "NOMEUTENTE"}

Permettendoti così di ottenere a video uno storico completo dell’attività dell’utente specifico, anche quando si tratta di tentativi di accesso molto vecchi (dipende poi dalla quantità di log che tiene il server secondo impostazioni del suo amministratore), ignorando quindi il mio -Newest 1 che nello script permette di prendere in esame solo l’ultimo dei tentativi errati (quello in realtà relativo al blocco dell’account in LDAP).

Buon lavoro!

immagine featured: PowerShell Magazine

Dopo il B50-50, ho messo mano su un Lenovo ThinkPad E560, portatile per PMI anch’esso da 15.6″ disponibile in più configurazioni (processore, scheda grafica, ecc.). Come per l’altra macchina, vi suggerisco di dare un’occhiata a scheda tecnica e prestazioni tenendo conto della panoramica, proprio per la varietà di configurazioni possibili. Ciò che ancora una volta mi interessa fare, è informarti, nel caso tu possegga questa macchina, riguardo i programmi inutili installati a bordo del sistema operativo. Si parla ancora una volta di un Windows 7 Professional OEM Lenovo.

Lenovo: pulire l’installazione di fabbrica di un ThinkPad E540

AlertVale la stessa regola dell’ultima volta: non posso supportare eventuali problemi della macchina nei commenti. Per questo tipo di cose esiste già il forum di supporto di Lenovo, posso solo dare qualche indicazione per il primo utilizzo e pulizia della personalizzazione prima di passare all’utilizzo quotidiano, per cercare di togliere quanta più sporcizia possibile, che di RAM e spazio libero su disco non ce n’è mai abbastanza.

I fondamentali: ripristino immagine

Contrariamente al solito, la chiave da 8GB non mi è bastata. Non avendo a disposizione quella da 16, sono dovuto ricorrere a qualche vecchio DVD-R ancora vergine (che tenevo come repertorio storico sulla scrivania). Un totale di 5 dischi utilizzati, di cui il primo (lo “zero”) masterizzato solo per contenere il necessario all’avvio dell’utility per il ripristino di fabbrica. Dopo di lui, 4 dischi contenenti i dati necessari per riportare allo stato originale il Lenovo E540. Ora i dischi possono andare a finire in magazzino per imperitura memoria.

L’utility per creare i dischi è già installata sul sistema, e parte semplicemente facendo clic sulla partizione di recupero “Lenovo_Recovery“, che dovrebbe corrispondere alla lettera Q visibile in “Computer” (su OS Windows 7). Questa partizione può essere eliminata (recuperando spazio disco) se il supporto di recupero immagine di fabbrica è stato creato e messo al sicuro.

Pulizia del sistema

Ora che sei partito con un sistema “pulito” (si fa per dire) puoi finalmente passare alla vera pulizia dello stesso, rimuovendo programmi inutili che occupano spazio e risorse che potresti investire in tutt’altra cosa, altri tipi di software, non imposti certo da fabbrica.

Parto come al solito con la lista di quelli che puoi pulire senza troppi pensieri. L’elenco non è in ordine alfabetico.

Cancellazione sicura

  • CyberLink PowerDVD 10: dovresti conoscerlo, in caso contrario puoi leggere tutte le informazioni sul prodotto all’indirizzo it.cyberlink.com/products/powerdvd-ultra/features_it_IT.html. Anche stavolta riporto l’alternativa data per il B50-50: ti va di dare un’occasione a VLC?
  • Lenovo Communications Utility: consente di modificare tutte le impostazioni di funzionalità integrate, quali videocamera, microfono e funzioni audio, in un’unica posizione, per ottimizzare l’esperienza relativa a video e VOIP (Voice over Internet). Informazioni disponibili all’indirizzo support.lenovo.com/it/it/downloads/ds028673.
  • REACHit (lenovo.com/us/en/apps/reachit) e SHAREit (shareit.lenovo.com) sono le due applicazioni Lenovo dedicate alla gestione e condivisione di file, in barba a sistemi ben più rodati e robusti come possono essere Google Drive o Dropbox. Cancellali se non li hai mai usati e non intendi farlo, tienili se hai già utilizzato questa tecnologia in passato.
  • Lenovo Warranty Information: poche informazioni (e pure confuse) sul sito ufficiale. Riporto direttamente da fonte esterna: “Lenovo Warranty Information is a program developed by Lenovo. The most used version is 1.0.0005.00, with over 98% of all installations currently using this version. The main program executable is WarrantyViewer.exe. The software installer includes 4 files and is usually about 799.93 KB (819,128 bytes). In comparison to the total number of users, most PCs are running the OS Windows 7 (SP1) as well as Windows 8.“. Esperti ricercatori stanno ancora cercando di capire il senso della sua esistenza, rimuovi in tranquillità.
  • Message Center Plus: ovvero, come ti sostituisco (o almeno ci provo) il Centro di Sicurezza di Windows, avvisandoti riguardo problemi che già il Sistema Operativo notifica abitualmente, tenendo attivo un processo in background che probabilmente non serve ad alcunché. Tutte le informazioni sul prodotto (e i download) sono disponibili all’indirizzo support.lenovo.com/it/it/downloads/ds000885.
  • Lenovo User Guide: facile intuire che si tratta dei manuali di utilizzo del laptop. Pensateci: come un CD driver (per le stampanti o più in generale per le periferiche acquistate presso i rivenditori), anche i manuali salvati in locale su un portatile nascono già obsoleti rispetto a quello che è possibile trovare online.
  • CyberLink PowerDVD Create: vale quanto detto per il B50-50 l’ultima volta. Se hai bisogno di un programma di masterizzazione, ti consiglio di passare a un’alternativa non a pagamento e decisamente più leggera, come InfraRecorder.
  • Lenovo Solution Center: il centro di controllo (pure troppo) dato in pasto a qualsiasi modello Lenovo. In azienda abbiamo deciso di rimuoverlo da ogni nostro portatile, ancora stiamo cercando un problema legato al non averlo a bordo macchina, sappi che non l’abbiamo trovato.
  • Lenovo QuickControl: “consente di controllare il computer in remoto utilizzando lo smartphone. Puoi controllare il cursore del mouse, modificare le impostazioni del secondo schermo e gestire le app e le finestre attive. Lenovo QuickControl richiede l’esecuzione di un’app dedicata sullo smartphone.“, come riportato nella scheda disponibile all’indirizzo support.lenovo.com/it/it/products/laptops-and-netbooks/thinkpad-w-series-laptops/thinkpad-w550s/downloads/ds035726.
  • Lenovo QuickDisplay: informazioni in merito pressoché inesistenti, si trova qualcosa all’indirizzo thinkwiki.org/wiki/Lenovo_QuickDisplay e si capisce che in realtà questo tool serve esclusivamente a sfruttare collegamenti senza fili per trasmettere verso accessori della stessa marca.
  • Lenovo Solutions for Small Business e Lenovo Solutions for Small Business Customizations: un set di utility pensate e sviluppate da Intel per Lenovo, inutile dire che fine gli ho fatto fare (qui puoi trovare maggiori informazioni: support.lenovo.com/it/it/downloads/ds030146#notes).
  • RapidBoot HDD Accelerator: riporto quanto trovato direttamente nel blog di Lenovo, che scrive “RapidBoot uses a collection of proprietary technologies and optimizations, which vary based on the EE 3 system. Smart defragmentation defragments the area of the hard disk drive that contains the boot files used to load Windows®. Defragmenting increases the speed that the data can be accessed and read. HDD accelerator uses system memory (RAM) as a cache for boot files, which allows faster performance.“, motivo per il quale ho scelto di disinstallare il prodotto, considerandolo assolutamente inutile, voglio essere io a deframmentare il disco se e quando necessario (se ne parla anche nel forum di Lenovo).
  • Lenovo Registration: non c’è nulla o quasi di documentato su questo singolo modulo, ma il nome è abbastanza parlante, qualcosa è possibile leggerla sul sito di Should I remove It?
  • Nitro Pro 9: nona versione della suite di lavorare e modificare file PDF (e non solo), tutte le informazioni sono disponibili sul sito web ufficiale. L’ho disinstallato esclusivamente perché non utile all’utente finale, dovrai essere tu a decidere se mantenerlo oppure no. Esistono diverse alternative gratuite, forse non complete come Nitro ma in ogni caso valide.

Quelli a metà strada

  • Microsoft Office: nel senso che sta a voi capire se tenerlo o meno. Si tratta della versione che è possibile attivare o provare per qualche tempo. Per chi ha già un abbonamento Office 365, basterà scaricare l’ultimo pacchetto disponibile dall’area personale, è possibile quindi eliminare questo Office pre-caricato e far spazio al proprio, o magari a OpenOffice.org (se lo utilizzi).
  • Lenovo Active Protection System: un software che dovrebbe proteggere la salute del tuo hard disk nel caso in cui questo riceva uno shock (da caduta, o da impatto), descritto all’indirizzo support.lenovo.com/it/it/documents/ht003517. Un software che diventa inutile nel caso in cui tu vada a montare un disco a stato solido (SSD), forse utile quando si tiene il disco meccanico previsto da fabbrica. Nulla potrà salvarti (per esperienza personale) da una botta imprevista e ben assestata, neanche un miracolo. Scegli quindi il destino di questo tool.
  • Norton Internet Security: un anno di abbonamento sfruttabile per un antivirus che io preferisco non utilizzare. A te la scelta. Puoi sfruttare l’annualità gratuitamente offerta, poi cambiare prodotto, oppure rimuoverlo immediatamente e scegliere la tua soluzione di protezione.

Quelli da non toccare

  • ThinkPad USB 3.0 Ethernet Adapter Driver: un driver che permette di installare all’occorrenza una nuova scheda di rete (e relativa porta) utilizzando una porta USB. Magari non la userai mai, ma è pur sempre un driver già a bordo macchina, puoi passare avanti e non rimuoverlo.
  • ThinkPad UltraNav Driver: tutto ciò che riguarda il touchpad.
  • ThinkPad OneLink Dock: i driver della Docking Station. Trattandosi di serie ThinkPad, può essere attaccato (tramite attacco pinza posta sulla parte bassa della scocca, sotto la tastiera) al suo replicatore di porte, per poter utilizzare agilmente il portatile con un monitor esterno, tastiera, mouse, ecc.
  • Lenovo Power Management Driver: profili di utilizzo energetico del portatile. Puoi lasciarli lì e verificare se possono (o meno) tornarti utili direttamente selezionandoli dal Pannello di Controllo del Sistema Operativo.

Ho citato 4 voci nella possibile installazione custom del tuo E560, in realtà ci sono però più voci, utili ai fini della corretta gestione del portatile. In generale, se non riportate nell’elenco delle disinstallazioni sicure, puoi lasciare vivere i software che trovi in giro nel Pannello di Controllo. Ti consiglio inoltre di tenere sempre aggiornati driver e applicazioni Lenovo sopravvissute tramite System Update (chiamato anche “Lenovo – Aggiornamento e driver“):

Lenovo: pulire l’installazione di fabbrica di un ThinkPad E560

In conclusione

Non dovrei aver dimenticato nulla. Il ThinkPad E540 dovrebbe ora aver recuperato un po’ di spazio disco e della RAM precedentemente utilizzata per tenere in piedi servizi e processi inutili per la quotidianità. Hai altri suggerimenti da integrare nell’articolo? L’area commenti è -come sempre- a tua totale disposizione.