WINDOWS UPDATE: errore 0x80d02002

La causa più comune degli errori di download ed aggiornamento di Windows è dovuta alla mancanza o danneggiamento della cache di aggiornamento di Windows ed in particolare delle cartelle SoftwareDistribution e Catroor2.

Affinché gli aggiornamenti possano essere eseguiti correttamente è necessario ripristinare tali cartelle manualmente da cmd ed eseguendo uno alla volta i seguenti comandi:

net stop wuauserv
net stop cryptSvc
net stop bits
net stop msiserver
ren C:\Windows\SoftwareDistribution SoftwareDistribution.old
ren C:\Windows\System32\catroot2 catroot2.old
net start wuauserv
net start cryptSvc
net start bits
net start msiserver

Infine riavviare il PC e ritentare il controllo e l'installazione degli aggiornamenti da Windows Update.

Wget: software gratuito per il download di file/pagine web e richiamare pagine web da cmd

Wget è un pacchetto software gratuito per il recupero di file e pagine web utilizzando i protocolli HTTP, HTTPS, FTP e FTPS.

Si può scaricare a questo indirizzo:

https://www.gnu.org/software/wget/manual/

È uno strumento a riga di comando non interattivo, quindi può essere facilmente richiamato da script, cron job, terminali senza supporto X-Windows, ecc..

Può essere anche utilizzato per aprire/richiamare pagine web (senza scaricarle) da cmd e senza utilizzare un browser.

Ad esempio il comando:

wget -O/dev/null -q http://www.google.com

richiama il sito www.google.com

Questa funzionalità può essere molto comoda per schedulare l'esecuzione di processi web.

 

FTP passivo da command-line

Il comando FTP di Windows (ftp.exe) non supporta la modalità passiva su tutte le versione di Windows. E' quindi oggigiorno inutilizzabile in contesti di NAT o a causa di firewall non configurabili.

Una utile alternativa è l'utilizzo del cliente ftp WinSCP, scaricabile a questo indirizzo

https://winscp.net/eng/download.php

WinSCP può essere utilizzato anche da riga di comando.

I protocolli supportati sono: FTP, FTPS, SCP, SFTP, WebDAV or S3 file transfer.

Copiare tutti i file contenuti in una cartella in ogni cartella di un determinato direttorio

A titolo di esempio si vogliano copiare in ogni cartella di "C:\public\ " tutti i file della cartella "D:\112".

Il comando Windows è il seguente:

for /D %a in ("C:\public\*.*") do xcopy /y /d D:\112\*.* "%a\"

dove

for /D esegue il comando "xcopy /y /d ..." per ogni cartelle in "C:\public\",

%a è un parametro (in un batch utilizzare la sintassi %%a) che per ogni iterazione assume il valore del percorso completo di ogni cartella in "C:\public\ "

Pertanto il ciclo for /D esegue il comando
xcopy /y /d D:\112\*.* "%a\"
per ogni cartella presente in "C:\public\"
ovvero copia tutti i file della cartella 112 nella cartella %a che per ogni iterazione è il percorso di ogni cartella presente in C:\public\

Blue Screen Error (SYSTEM PTE MISUSE) durante l'installazione di WIndows 10 su Notebook HP

Ho riscontrato un problema insolito durante l'installazione di Windows 10 PRO su un notebook HP Pavillon : durante l'installazione di Windows appariva il seguente blue screen:

Ho effettuato innumerevoli tentativi prima di trovare la seguente soluzione.

  1. Accendere il notebook ed entrare nella configurazione del BIOS;
  2. Nella scheda "Security" disabilitare o nascondere (hide) il trusted Platform Module (TPM).
  3. Salvare le impostazioni del BIOS e riavviare il PC
  4. Procedere con l'installazione di Windows 10

 

Abilitare o disabilitare protocollo SMB1 su Windows (Enable or Disable SMB1 File Sharing Protocol in Windows)

Lanciare PowerShell con diritti amministrativi e quindi:

ATTIVAZIONE

Enable-WindowsOptionalFeature -Online -FeatureName "SMB1Protocol" -All

DISABILITAZIONE

Disable-WindowsOptionalFeature -Online -FeatureName "SMB1Protocol"

Per controllare se lo stato del protocollo eseguire il seguente comando:

Get-WindowsOptionalFeature -Online -FeatureName "SMB1Protocol"

Impossibile disattivare un servizio (Unable to disable a service)

E' noto che per disabilitare un servizio è sufficiente accedere ai Servizi di Windows e procedere quindi con la disattivazione del servizio.

A volte tuttavia tale procedura non sembra funzionare per cause difficilmente identificabili e non solo riconducibili a ragioni di permessi.

In queste circostanze si può procedere con la modica del registro di Windows. Innanzitutto è necessario identificare il nome del servizio dallo snap-in Servizi. L'immagine sotto riportata mostra come ricavare il nome del Servio "Windows Update"

Si dee accedere quindi al percorso HKLM\SYSTEM\CurrentControlSet\services e portarsi sulla cartella corrispondente al nome del servizio.

Assegnare quindi alla chiave "start" il valore 4 per disabilitare il servizio.

In generale valgono le seguenti regole:

Avvio Automatico: Start= 2
Avvio Manuale: Start= 3
Avvio Disabilitato: Start=4
Avvio Automatico con partenza ritardata: Start = 2.

Note: 

Quando si cambia l'avvio ad Automatico con ritardo si crea una chiave  DelayedAutostart = 1
Quando si cambia l'avvio da Automatico con partenza ritardata ad Automatico, allora DelayedAutostart = 0

 

Problema di visualizzazione su display ad alta risoluzione (HiDPI)

Ho recentemente acquistato un nuovo notebook DELL con un fantastico display HiDPI con risoluzione nativa di 3840px x 2160px e purtroppo alcune  applicazioni, tra cui la suite Adobe, sono diventate completamente inutilizzabili per una riduzione oltre misura delle interfacce.

Non nego che sono stato colto da un notevole sconforto soprattutto nel constatare che la suite Adobe CS6, notoriamente utilizzata dai professionisti della grafica, non fosse utilizzabile con uno schermo ad alta risoluzione!

Ovviamente la soluzione all'inconveniente sarebbe il rilascio di una patch da parte dei produttori delle applicazioni: nella vana attesa di aggiornamenti una soluzione attuata da molti è quella di modificare l'"application manifest" dei programmi con un manifest che permetta lo scaling adeguato delle interfacce e dei controlli.

Questa soluzione è attuabile solo con l'utilizzo di programmi appositi come Resource Tuner:

http://www.restuner.com/

che modificano il manifest interno agli eseguibili.

In alternativa si può creare un file manifest esterno ai programmi e forzare Windows nel caricare tale file qualora esso esista.

Per implementare questa strategia è necessario:

  1. creare la chiave di registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SideBySide\PreferExternalManifest (DWORD) ed impostarla a 1
  2. Creare un nuovo file manifest con Blocco Note copiando ad esempio il testo da: http://pastebin.com/BZnKwU6a
  3. Salvare il file così creato come nome_eseguibile.exe.manifest e salvarlo nella stessa posizione del file eseguibile del programma. Ad esempio  Illustrator.exe.manifest salvato in  Program Files\Adobe\Adobe Illustrator CS6 (64 Bit)\Support Files\Contents\Windows

Dopo aver eseguito le operazioni sopra descritte e senza la necessità di riavviare Windows, eseguendo il programma si otterranno delle interfacce utilizzabili anche se degradate nella qualità.


Symbolic Links: come accedere a cartelle e file da differenti cartelle ( access folders and files from different folders without maintaining duplicate copies)

Può essere utile conoscere come creare una cartella o un file che "punta" ad una differente cartella o file. In questi casi è necessario creare un Symbolic Link.

Una guida completa sull'argomento è disponibile al seguente indirizzo:

http://www.howtogeek.com/howto/16226/complete-guide-to-symbolic-links-symlinks-on-windows-or-linux/


Creare una cartella il cui nome dipende dalla data e dall'ora attuale (creating date-time based folder name)

Supponiamo di voler creare una cartella via cmd o batch file il cui nome contiene la data e l'ora attuale secondo lo schema:

backup_annomesegiorno_oraminutisecondi

ad esempio se oggi fosse il 04/05/2016 e fossero le ore 10.31.20,02 allora:

backup_20160504_1031

Utilizziamo la manipolazione DOS di stringhe:

Set data=%date:~6,4%%date:~3,2%%date:~0,2%

in cui  ad esempio date:~0,2 prende i primi due caratteri a partire dalla posizione 0 della stringa restituita dal comanda DOS date (date restituisce il valore 04/05/2016).

Faccio notare che sarebbe possibile anche iniziare dall'ultimo carattere della stringa "date"; ad esempio il comando:

date:~-7,2 

restituisce il valore 05 (in questo caso la posizione 0 è del numero 6).

Procedendo allo stesso modo per il tempo si ha:

Set tempo=%time:~0,2%%time:~3,2%

Unendo ora tutti i comandi si ottiene:

Set data=%date:~6,4%%date:~3,2%%date:~0,2%
Set tempo=%time:~0,2%%time:~3,2%
mkdir backup_data%%tempo%

Nel caso in cui si voglia l'indicazione della data nella seguente forma "04052016" è allora più conveniente utilizzare la sostituzione di un carattere in una stringa secondo il seguente esempio:

outstring = instring:chr_old= chr_new

in cui instring è la stringa originale, outstring è il risultato della sostituzione, chr_old è il carattere che si vuole sostituire e chr_new è il carattere sostitutivo.

Nel nostro caso chr_old = / e chr_new è la stringa nulla, per cui:

Set data=%date:/=%

Per un guida più esaustiva sulla manipolazione DOS di stringhe rimando al seguente link:

http://www.dostips.com/DtTipsStringManipulation.php