Visualizzazione post con etichetta Windows. Mostra tutti i post
Visualizzazione post con etichetta Windows. Mostra tutti i post

martedì 1 febbraio 2022

PowerShell: Abilitare autologon di Windows

Di seguito un semplice script PowerShell che abilita l'autologon e salva le credenziali di accesso all'interno del registro di Windows. Al successivo riavvio verrà eseguito automaticamente il logon al sistema con le credenziali specificate.

La password viene memorizzata in chiaro all'interno del registro di Windows quindi si consiglia di utilizzare tale script con attenzione e nel modo appropriato.

PowerShell



  # Richiesta inserimento credenziali   
  $cred = Get-Credential -Message 'Attivazione autologon'   
  $password = $cred.GetNetworkCredential().Password   
  $username = $cred.UserName   
  # Salvataggio delle credenziali all'interno del registro    
  # Attenzione! la password è salvata in chiaro   
  $regPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"   
  Set-ItemProperty -Path $regPath -Name AutoAdminLogon -Value 1   
  Set-ItemProperty -Path $regPath -Name DefaultPassword -Value $password   
  Set-ItemProperty -Path $regPath -Name DefaultUserName -Value $username   
  # Esegue il riavvio del sistema   
  Restart-Computer   


Dal seguente link è possibile scaricare il file PS1





giovedì 27 gennaio 2022

PowerShell: Visualizzare l'ultimo utente connesso

Il nome dell'ultimo utente connesso al sistema viene memorizzato all'interno del valore LastLoggedOnUser presente nella chiave di registro HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI

Per visualizzare l'ultimo utente connesso al sistema utilizzando PowerShell possiamo utilizzare il cmdlet Get-ItemProperty:
Get-ItemProperty "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Authentication\LogonUI" | Select-Object -Property LastLo*, Idle*

LogonUI, ultimo utente connesso
FIG 1 - LogonUI, ultimo utente connesso

Allo stesso modo, per visualizzare tutti i profili utente memorizzati nel registro di Windows:
Get-ItemProperty 'HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\profilelist\*' | Select-Object -Property ProfileImagePath, FullProfile






lunedì 24 gennaio 2022

PowerShell: Rinominare l'account locale Administrator

Per ragioni di sicurezza, potremmo considerare di rinominare l'account Administrator locale incorporato in Windows che, avendo un nome noto e privilegi elevati, può essere oggetto di attenzione da parte di malintenzionati.
Prima di procedere con la rinomina dell'account bisogna chiarire alcuni punti:
  • Una volta rinominato l'account questo continuerà a funzionare ma per utilizzarlo sarà necessario specificare il nuovo nome. 
  • Assicurarsi che non ci siano processi automatici che utilizzino il vecchio nome account, in tal caso sarà necessario aggiornarli con il nuovo nome.
  • Rinominare l'account non cambierà il suo SID. Trattandosi di un SID noto, l'account potrà essere comunque preso di mira da attacchi mirati.
Per modificare il nome dell'account Administrator tramite PowerShell basta eseguire il seguente comando da una finestra PowerShell eseguita come amministratore
Rename-LocalUser -Name "Administrator" -NewName "GLubrano"
sostituendo la stringa passata al parametro -NewName con il nuovo nome che si intende assegnare all'account.

Per verificare se il nome dell'account di amministratore locale è stato modificato, eseguire il comando
Get-Localuser | Where-Object Sid -like 'S-1-5-*-500'

Rename-LocalUser
FIG 1 - Rename-LocalUser



giovedì 20 gennaio 2022

PowerShell: Identificare le versioni di .NET Framework installate nel sistema

Il .NET Framework è uno strato software ideato per facilitare lo sviluppo e l'esecuzione dei programmi in ambiente Windows. Il framework è costituito dall'ambiente di esecuzione Common Language Runtime (CLR), che fornisce la gestione della memoria e altri servizi di sistema, e dalla Framework Class Library (FCL) un'ampia libreria di classi utilizzabili dai programmatori e contenenti codice per lo sviluppo di applicazioni. Nel corso degli anni il .NET Framework ha conosciuto numerose revisioni e aggiornamenti. Conoscere le versioni di .NET Framework installate sul PC può essere fondamentale soprattutto in quei casi in cui si utilizza un determinato software .NET che funziona solo con una specifica versione del framework.

Per conoscere tutte le versioni di .NET Framework installate sul sistema basta eseguire il seguente comando PowerShell
Get-ChildItem 'HKLM:\SOFTWARE\Microsoft\NET Framework Setup\NDP' -Recurse | Get-ItemProperty -Name version -EA 0 | Where{ $_.PSChildName -Match'^(?!S)\p{L}'} | Select PSChildName, version

Versioni .NET Framework installate
FIG 1 - Versioni .NET Framework installate






martedì 18 gennaio 2022

PowerShell: Catturare uno screenshot

Tramite PowerShell è possibile catturare lo schermo e salvare lo screenshot all'interno di un file utilizzando i tipi presenti in System.Windows.Forms. Il seguente script mostra come catturare lo schermo virtuale e salvarlo all'interno di un file bitmap per poi aprirlo con il programma associato.
  #specifica il path in cui salvare lo screenshot   
  $Path = "$Env:temp\screenshot.bmp"   
     
  Add-Type -AssemblyName System.Windows.Forms   
     
  #Prepara l'area da catturare   
  $screen = [System.Windows.Forms.SystemInformation]::VirtualScreen   
  $width = $screen.Width   
  $height = $screen.Height   
  $left = $screen.Left   
  $top = $screen.Top   
  #Crea un immagine bitmap   
  $bitmap = [System.Drawing.Bitmap]::new($width, $height)   
  #Crea un nuovo oggetto Graphics dall'oggetto $bitmap   
  $MyDrawing = [System.Drawing.Graphics]::FromImage($bitmap)   
  #Copia il contenuto dello schermo nell'oggetto $bitmap   
  $MyDrawing.CopyFromScreen($left, $top, 0, 0, $bitmap.Size)   
     
  #Salva lo screenshot nel percorso specificato   
  $bitmap.Save($Path)   
  #visualizza l'immagine bmp salvata utilizzando il programma associato   
  Start-Process -FilePath $Path   


Screenshot
FIG 1 - Screenshot

Dal seguente link è possibile scaricare il codice dello script:





lunedì 17 gennaio 2022

Windows Quick Tip: Creare più cartelle dal Prompt dei comandi

Il Prompt dei comandi viene considerato erroneamente obsoleto ma in realtà rappresenta, ancora oggi, un'ottimo strumento per velocizzare operazioni che con la GUI richiederebbero più tempo; una di queste operazioni è la creazione contemporanea di molte cartelle. Tramite l'interfaccia grafica di Esplora file, le cartelle andrebbero create manualmente una alla volta mentre, agendo tramite il Prompt dei comandi, l'obiettivo può essere raggiunto in una frazione del tempo.
Per creare più cartelle dal Prompt dei comandi:
  • Aprire il Prompt dei comandi (WIN+R e digitare CMD seguito da invio) e posizionarsi nella cartella radice in cui creare le cartelle utilizzando il comando CD. Ad esempio, per posizionarsi all'interno della cartella Documenti digitare il comando
    cd %userprofile%\Documents
  • A questo punto basta far seguire al comando MD i nomi delle cartelle da creare (nel caso nei nomi siano presenti spazi è necessario delimitarli con i doppi apici). Ad esempio, volendo creare una cartella per ogni mese dell'anno il comando è 
    md Gennaio Febbraio Marzo Aprile Maggio Giugno Luglio Agosto Settembre Ottobre Novembre Dicembre 
    Per fare in modo che la sequenza venga visualizzata nell'ordine corretto è possibile creare le cartelle aggiungendo un numero prima del nome della cartella come nella seguente sintassi 
    md "01 - Gennaio" "02 - Febbraio" "03 - Marzo" "04 - Aprile" "05 - Maggio" "06 - Giugno" "07 - Luglio" "08 - Agosto" "09 - Settembre" "10 - Ottobre" "11 - Novembre" "12 - Dicembre"

    Creazione cartelle dal prompt dei comandi
    FIG 1 - Creazione cartelle dal prompt dei comandi







venerdì 14 gennaio 2022

PowerShell: Rilevare un riavvio in sospeso

Per poter eseguire o completare l'installazione di alcuni tipi di aggiornamenti, Windows potrebbe richiedere il riavvio del sistema. In tale condizione potremmo non riuscire ad installare altri programmi senza prima aver eseguito il riavvio consentendo a Windows di completare le operazioni in sospeso.
Riavvio in sospeso
FIG 1 - Riavvio in sospeso

É possibile rilevare la presenza di un riavvio in sospeso andando ad interrogare la chiave di registro di sistema RebootPending. L'operazione può essere eseguita da PowerShell con il seguente comando:
Test-Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Component Based Servicing\RebootPending"

Se il comando restituisce True allora è stato rilevato un riavvio in sospeso in caso contrario il comando restituirà False.
RebootPending
FIG 2 - RebootPending







sabato 30 ottobre 2021

Windows 10: Visualizzare i processi eseguiti da un utente sul PC

Tramite il registro eventi di sistema è possibile monitorare i programmi eseguiti da un utente sulla macchina. Per permettere a Windows di tenere traccia di tali eventi nei log è necessario procedere all'attivazione dell'audit (si veda l'articolo Windows 10: Attivazione audit). 
Dato che verranno tracciati un numero elevato di eventi è consigliabile incrementare le dimensioni del registro eventi come indicato nell'articolo Windows 10: Aumentare la dimensione dei registri eventi.

Visualizzare i processi mandati in esecuzione

Per analizzare i log ed individuare i programmi eseguiti è possibile procedere come indicato di seguito:
  • Avviare il Visualizzatore eventi (WIN+R e digitare eventvwr.msc seguito da invio).
  • Nel riquadro sinistro espandere Registri di Windows e selezionare il registro Sicurezza. Cliccare su Filtro registro corrente.
    Visualizzatore eventi
    FIG 1 - Visualizzatore eventi

  • Nella casella contrassegnata dall'etichetta <Tutti gli ID evento> digitare l'ID 4688 (l'ID corrisponde all'evento: È stato creato un nuovo processo) e cliccare su OK.
    Filtro registro corrente
    FIG 2 - Filtro registro corrente

  • Verranno visualizzati tutti gli eventi relativi all'esecuzione di un processo.
    Eventi ID 4688
    FIG 3 - Eventi ID 4688


Ricerca per programma tramite PowerShell

Se si intende filtrare i risultati in base al programma avviato è possibile utilizzare PowerShell. Supponiamo di voler visualizzare tutti gli avvii del Prompt dei comandi (cmd.exe):
  • Una volta avviato PowerShell come amministratore digitare il seguente comando
    Get-WinEvent -FilterHashtable @{LogName='Security'; id=4688;data='C:\windows\system32\cmd.exe'} 
    verranno visualizzati tutti gli eventi relativi all'avvio del prompt dei comandi. Per maggiori dettagli possiamo aggiungere Format-List come indicato di seguito
    Get-WinEvent -FilterHashtable @{LogName='Security'; id=4688;data='C:\windows\system32\cmd.exe'} |Format-List
    Sostituendo la stringa in data= possiamo personalizzare la ricerca indicando altri processi di nostro interesse.
    PowerShell, ricerca eventi avvio Prompt dei comandi
    FIG 4 - PowerShell, ricerca eventi avvio Prompt dei comandi

    PowerShell, dettagli eventi avvio Prompt dei comandi
    FIG 5 - PowerShell, dettagli eventi avvio Prompt dei comandi

  • Per visualizzare quante volte un processo è stato eseguito, digitare il seguente comando nella finestra PowerShell 
    Get-WinEvent -FilterHashtable @{LogName='Security'; id=4688;data='C:\windows\system32\cmd.exe'} | Measure-Object 
    PowerShell, numero di avvii del Prompt dei comandi
    FIG 6 - PowerShell, numero di avvii del Prompt dei comandi


Ricercare gli eventi tramite XPath

XPath è un linguaggio che permette di individuare i nodi all'interno di un documento XML. Un sottoinsieme della versione 1.0 è supportato dal sistema di log di Windows.
Gli eventi di Windows vengono conservati in formato XML. Per verificarlo, aprire un qualsiasi evento all'interno del registro tramite doppio click, selezionare la scheda Dettagli e quindi selezionare l'opzione XML. Viene riportata la rappresentazione XML nativa dell'evento, meno leggibile rispetto a quella a cui siamo abituati.
Proprietà evento in formato XML
FIG 7 - Proprietà evento in formato XML


Per ricercare gli eventi tramite XPath:
  • Da Visualizzatore eventi cliccare su Filtro registro corrente e nella casella <Tutti gli ID evento> digitare nuovamente l'ID 4688
  • Spostarsi sulla scheda XML. Verrà visualizzata la query XPath con i criteri di filtro inseriti. Per modificare la query manualmente selezionare la casella Modifica query manualmente e rispondere affermativamente alla successiva finestra di dialogo.
    Filtro registro corrente, Query in XML
    FIG 8 - Filtro registro corrente, Query in XML

    Visualizzatore eventi, modifica manuale query
    FIG 9 - Visualizzatore eventi, modifica manuale query

  • Per ricercare solo le occorrenze relative ad un determinato utente, modificare la query come indicato di seguito in modo
    <QueryList>
      <Query Id="0" Path="Security">
        <Select Path="Security">*[System[(EventID=4688)]]and
        *[EventData[Data[@Name='SubjectUserName']='utente']]
        </Select>
      </Query>
    </QueryList>
    Dove al posto di utente va specificato l'account utente per il quale si intende effettuare la ricerca. Cliccando su OK verrà eseguita la query con le condizioni specificate.
  • È possibile aggiungere ulteriori condizioni alla ricerca. Ad esempio, per ricercare tutti i processi cmd.exe eseguiti dall'utente Virtual la query sarà analoga a
    <QueryList>
      <Query Id="0" Path="Security">
        <Select Path="Security">*[System[(EventID=4688)]]and
         *[EventData[Data[@Name='SubjectUserName']='Virtual'
    	 and Data[@Name='NewProcessName']='C:\Windows\System32\cmd.exe']]
    	</Select>
      </Query>
    </QueryList>

    Visualizzatore eventi, query XPath
    FIG 10 - Visualizzatore eventi, query XPath






sabato 31 luglio 2021

MS Outlook: Disattivare o limitare l'elenco degli elementi recenti nel menu Allega file

In Outlook 2016, Outlook 2019 e Microsoft 365, per impostazioni predefinita e a seconda della risoluzione/dimensione dello schermo, vengono mostrati fino a 12 file nell'elenco degli elementi recenti del pulsante Allega file. Non è possibile filtrare direttamente tale elenco ma è possibile disattivarlo o limitare il numero di elementi visualizzati agendo tramite il registro di sistema.
Outlook, Elenco Allega file
FIG 1 - Outlook, Elenco Allega file


É possibile controllare quanti elementi recenti vengono mostrati nel menu Allega file tramite il valore di registro MaxAttachmentMenuItems:
  • Avviare l'Editor del registro di sistema (WIN+R e digitare regedit seguito da invio); 
  • Posizionarsi su
    HKEY_CURRENT_USER\Software\Microsoft\Office\16.0\Outlook\Options\Mail
  • Creare, se non presente, un valore DWORD e rinominarlo in MaxAttachmentMenuItems;
  • I valori accettati sono decimali da 0 a 20 che rappresentano il numero di file recenti visualizzati in elenco. Assegnando a MaxAttachmentMenuItems il valore 0 l'elenco verrà disattivato.
    MaxAttachmentMenuItems
    FIG 2 - MaxAttachmentMenuItems

Outlook, Elenco file recenti disattivato
FIG 3 - Outlook, Elenco file recenti disattivato




martedì 13 aprile 2021

Windows: Accesso lento a file e cartelle su share di rete

Quando si riscontra lentezza nell'accesso a file e cartelle su share di rete, il problema può avere diverse cause. I controlli e le prove da effettuare sono molteplici tra cui:
  • Verificare la configurazione di rete (configurazione indirizzo IP, Gateway, DNS, file hosts, ecc).
  • Assicurarsi che non ci siano problemi di connessione sia sul PC che si sta utilizzando sia sul computer/server remoto dove risiede la share.
  • Dal registro eventi verificare che non vi siano riportati errori o problemi hardware/software.
  • Provare a ricreare e rimappare la share di rete.
  • Disattivare temporaneamente le applicazioni che possono potenzialmente rallentare l'accesso al disco come Antivirus, Enhanced Mitigation Exploerience Toolkit (EMET), software di backup, ecc.
  • Verificare che non sia attiva l'indicizzazione sulle share mappate.
  • Eseguire il tool Pulizia disco sia in locale che sui dischi remoti per eliminare file temporanei.
  • Eseguire il tool System File Checker. Eseguendo il tool SFC con l'opzione /SCANNOW viene analizzata l'integrità di tutti i file protetti di sistema e i file che presentano problemi verranno ripristinati.
  • Assicurarsi che ci sia sufficiente spazio libero sia sul disco locale che su quello remoto.
  • Rimuovere dispositivi USB connessi.
  • Chiudere tutte le applicazioni.
  • Armeggiare con le impostazioni di Esplora file (ad es. evitando la visualizzazione di icone grandi o troppi dettagli).
  • Provare con un nuovo profilo utente e da altre postazioni.
  • Da Gestione attività verificare se il PC è impegnato in altre operazioni, l'utilizzo della CPU, del disco, della RAM e il traffico di rete.
  • A livello Hardware ci sarebbe da verificare la scheda di rete, il disco fisso e la RAM

Se le verifiche/prove effettuate non hanno prodotto alcun risultato ci sono altre tre cose che possiamo provare:
  • Reset TCP/IP;
  • Reset Winsock;
  • Disabilitare SMB2 Client Redirector Cache;

Reset TCP/IP

TCP/IP non è un singolo protocollo ma si tratta di una suite di protocolli su cui si basa il funzionamento logico della rete Internet. Viene chiamata suite di protocolli TCP/IP in virtù dei due più importanti protocolli in essa definiti: il Transmission Control Protocol (TCP) e l'Internet Protocol (IP).
Problemi di connessione possono essere causati dallo stack TCP/IP corrotto. In questi casi è possibile provare a ripristinare TCP/IP tramite il tool netshell (Netsh) incluso in Windows. Prima di eseguire il reset dello stack è bene prendere nota della configurazione IP del computer. Nel caso di IP statico, infatti, potrebbe essere necessario dover procedere alla sua riconfigurazione dopo il reset. Se l'indirizzo IP viene assegnato dal DHCP, come normalmente avviene per le aziende con numerosi computer, non dovremmo preoccuparci di nulla.
Per eseguire il reset dello stack TCP/IP:
  • Avviare il Prompt dei comandi come amministratore
  • Eseguire il comando
    netsh interface ip reset
    al posto di  interface è possibile utilizzare l'abbreviazione int.
    Reset TCP/IP
    FIG 1 - Reset TCP/IP

  • Terminato il reset dello stack TCP/IP sarà necessario procedere al riavvio del sistema.

Reset Winsock

In ambiente Windows i protocolli TCP/IP vengono implementati nei driver tcpip.sys e tcpip6.sys. Per utilizzare tali driver, generalmente, si passa per la libreria Winsock che consente una programmazione più semplice e favorisce la portabilità del codice. Winsock agisce da interfaccia gestendo le comunicazioni tra un'applicazione client TCP/IP (come il browser web, un client FTP, ecc) e lo stack TCP/IP sottostante. Se il reset del TCP/IP non ha risolto il nostro problema di connessione, si può provare ad eseguire anche il reset di Winsock. Anche in questo caso ci viene in soccorso il tool netshell:
  • Avviare il Prompt dei comandi come amministratore
  • Eseguire il comando
    netsh winsock reset

    Reset Winsock
    FIG 2 - Reset Winsock

  • Come per il reset TCP/IP, per completare l'operazione è necessario riavviare il sistema

Il reset di Winsock resetterà il Winsock Catalog ma non avrà alcun impatto su Winsock Name Space Provider.


SMB2 Client Redirector Cache

Il componente SMB Redirector implementa la parte client della funzione di condivisione file e stampa di Windows attraverso Microsoft Networkking. Il protocollo SMB permette al computer client di accedere ai file e stampanti su un altro computer che implementa la parte server del protocollo per la condivisione di tali risorse. Il protocollo SMB prevede anche la cache sul client al fine di rendere più efficiente l'accesso ai file, metadati e per l'enumarazione di file e directory. 
Con il rilascio di SMB 2.0 in Windows Vista e Windows Server 2008, sono state implementate tre cache indipendenti al fine di velocizzare la visualizzazione di informazioni su file e directory utilizzate di recente. Tali cache riducono anche le interazioni tra il client e il server SMB per le comuni operazioni di navigazione tra file e cartelle e oltre a migliorare i tempi di risposta del client nella visualizzazione delle risorse remote, sono importanti anche per la scalabilità e per le prestazioni generali del server SMB.
Le impostazioni di default per queste tre cache sono pensate per migliorare le prestazioni su connessioni a bassa larghezza di banda o alta latenza. In alcuni contesti, come per le applicazioni che richiedono un alto livello di coerenza sui file/cartelle accessibili e modificabili contemporaneamente da più client, possono rappresentare un problema.

Le tre cache sono:

File Information Cache 
La cache delle informazioni sui file riguarda le informazioni sugli attributi dei file contenute nella struttura File_Network_Open_Information, utili per conservare l'IO di rete per recuperare le informazioni comuni sui metadati dei file. 
Il valore predefinito è 10 secondi: Il periodo che deve trascorrere prima del timeout della cache con le informazioni dei file.
Per disattivare File Information Cache è necessario assegnare 0 al valore DWORD nominato FileInfoCacheLifetime presente all'interno della chiave di registro
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Lanmanworkstation\Parameters
Se il valore FileInfoCacheLifetime non è presente, crearlo manualmente.

Disattivare la cache delle informazioni sui file non è raccomandato in quanto potrebbe quasi raddoppiare il numero di transazioni di rete richieste per eseguire un dato scenario.


File Not Found Cache
Si tratta di cache di file che il client non è riuscito ad aprire perché il file non era presente sul server. Questo impedisce al client di tentare ripetutamente di aprire i file che non esistono più sul server. Questa cache è in grado di influenzare le applicazioni distribuite in esecuzione su più computer che accedono a un insieme di file su un server dove le applicazioni utilizzano un meccanismo per segnalarsi a vicenda l'aggiunta/modifica/cancellazione di file sul server.
Il valore predefinito è 5 secondi: Il periodo che deve trascorrere prima del timeout della cache dei file non trovati.
Per disattivarla assegnare 0 al valore DWORD nominato FileNotFoundCacheLifetime presente all'interno della chiave di registro
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Lanmanworkstation\Parameters
Se il valore FileNotFoundCacheLifetime non è presente, crearlo manualmente.


Directory Cache 
Directory Cache contiene le recenti enumerazioni di directory eseguite dal client. Le successive richieste di enumerazione fatte dalle applicazioni client, così come le richieste di metadati per i file nella directory, possono essere soddisfatte dalla cache. Il client usa anche la cache della directory per determinare la presenza o l'assenza di un file nella directory e usa questa informazione per evitare che i client tentino ripetutamente di aprire file che non esistono sul server. È probabile che questa cache influenzi le applicazioni distribuite in esecuzione su più computer che accedono a un insieme di file su un server dove le applicazioni utilizzano un meccanismo per segnalarsi a vicenda l'aggiunta/modifica/cancellazione di file sul server.
Il valore predefinito è 10 secondi: Si tratta del timeout della cache delle directory.
Per disattivarla assegnare 0 al valore DWORD nominato DirectoryCacheLifetime presente nella chiave di registro
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Lanmanworkstation\Parameters
Se il valore DirectoryCacheLifetime non è presente, crearlo manualmente.
Regedit, DirectoryCacheLifetime
FIG 3 - Regedit, DirectoryCacheLifetime 


Generalmente, nel caso si notino rallentamenti nell'accesso a file o directory sulla rete, basta disattivare la Directory cache. Se si sospetta che la cache dei metadati nel reindirizzatore sia la causa del cattivo funzionamento delle applicazioni e si intende disabilitarle tutte e tre, disabilitarle nel seguente ordine
  1. Directory cache, impostando DirectoryCacheLifetime a 0.
  2. File Not Found cache, impostando FileNotFoundCacheLifetime a 0.
  3. File information cache, impostando FileInfoCacheLifetime a 0.
Le operazioni di disattivazione delle cache sopra riportate possono essere eseguite sui sistemi Windows 10, Windows 8.1, Windows 8, Windows 7, Windows Vista, Windows Server 2016, Windows Server 2012 R2, Windows Server 2012, Windows Server 2008 R2 e Windows Server 2008.




lunedì 22 marzo 2021

PowerShell: Monitorare un file di testo in tempo reale

Spesso i sistemisti hanno la necessità di monitorare file di log rilevando eventuali modifiche in tempo reale. PowerShell permette di monitorare un file di testo visualizzano in tempo reale le modiche attraverso il cmdlet Get-Content.

Ad esempio
Get-Content C:\temp\log.txt -Wait

Il comando può essere utilizzato in tutte le versioni di PowerShell ma presenta un grosso limite: visualizza l'intero contenuto del file prima di visualizzare le nuove righe aggiunte. A partire dalla versione 3 di PowerShell (Windows 8 e successivi) al cmdlet è stato aggiunto un nuovo argomento -Tail che consente di iniziare a monitorare il file dalla fine e non mostrando prima il suo intero contenuto.

Ad esempio
Get-Content C:\temp\log.txt -Tail 0 -Wait
Il file inizierà ad essere monitorato dalla fine e non verrà mostrato prima il suo contenuto. Al parametro -Tail è possibile passare il numero di linee, alla fine del file, da includere nel monitoraggio e da visualizzare.
PowerShell, Get-Content
FIG 1 - PowerShell, Get-Content
Get-Content C:\temp\log.txt -Tail 3 -Wait
Visualizza le ultime 3 righe del file prima di visualizzare eventuali nuove righe aggiunte.

E' anche possibile filtrare le linee che contengono un testo specifico. Il comando
Get-Content C:\temp\log.txt  -Tail 0 -Wait | where { $_ -match "ERROR" }
visualizzerà solo le linee aggiunte alla fine del file che contengono la stringa ERROR.





venerdì 7 agosto 2020

Windows 10: Elenco dei comandi Rundll32

Windows 10 è dotato di una serie di utili comandi Rundll32 che possono essere utilizzati per accedere velocemente a cartelle di sistema, alle applet del pannello di controllo e a varie finestre di configurazione e procedure guidate. I comandi possono essere eseguiti dal prompt dei comandi, dalla finestra di dialogo Esegui (Win+R) oppure per creare collegamenti. Di seguito viene riportato l'elenco completo dei comandi Rundll32
Comandi rundll32.exe
FIG 1 - Comandi rundll32.exe

Apre la finestra relativa alle impostazioni dello sfondo
rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,2

Avvia il wizard aggiungi stampante
rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL AddPrinter

Avvia la procedura guidata per l'aggiunta porta stampante TCP/IP standard
rundll32.exe tcpmonui.dll,LocalAddPortUI

Visualizza Interfaccia utente della stampante
rundll32.exe Printui.dll,PrintUIEntry /?

Visualizza cartella stampanti
rundll32.exe Shell32.dll,SHHelpShortcuts_RunDLL PrintersFolder

Apre il Pannello di Controllo
rundll32.exe shell32.dll,Control_RunDLL

Data e ora
rundll32.exe shell32.dll,Control_RunDLL timedate.cpl

Orologi aggiuntivi all'interno dell'applet Data e ora
rundll32.exe shell32.dll,Control_RunDLL timedate.cpl,,1

Impostazioni icone del desktop
rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,0

Gestione dispositivi
rundll32.exe devmgr.dll DeviceManager_Execute

Impostazioni Schermo
rundll32.exe shell32.dll,Control_RunDLL desk.cpl

Centro Accessibilità
rundll32.exe shell32.dll,Control_RunDLL access.cpl

Opzioni Esplora file, scheda Generale
rundll32.exe shell32.dll,Options_RunDLL 0

Opzioni Esplora file, scheda Cerca
rundll32.exe shell32.dll,Options_RunDLL 2

Opzioni Esplora file, scheda Visualizzazione
rundll32.exe shell32.dll,Options_RunDLL 7

Apre cartella Font
rundll32.exe Shell32.dll,SHHelpShortcuts_RunDLL FontsFolder

Creazione guidata disco di reimpostazione password
rundll32.exe keymgr.dll,PRShowSaveWizardExW

Periferiche di gioco
rundll32.exe shell32.dll,Control_RunDLL joy.cpl

Avvia l'ibernazione/sospensione del pc
rundll32.exe powrprof.dll, SetSuspendState 0,1,0

Blocca computer
rundll32.exe user32.dll,LockWorkStation

Opzioni di indicizzazione
rundll32.exe shell32.dll,Control_RunDLL srchadmin.dll

Applet periferiche ad infrarossi
rundll32.exe shell32.dll,Control_RunDLL irprops.cpl

Connessioni di rete
rundll32.exe shell32.dll,Control_RunDLL ncpa.cpl

Connetti unità di rete
rundll32.exe Shell32.dll,SHHelpShortcuts_RunDLL Connect

Inverte i pulsanti del mouse
rundll32.exe User32.dll,SwapMouseButton

Proprietà mouse
rundll32.exe Shell32.dll,Control_RunDLL main.cpl @0,0

Amministratore origine dati ODBC
RunDll32 shell32.dll,Control_RunDLL odbccp32.cpl

Impostazioni penna e tocco Tablet PC
rundll32.exe shell32.dll,Control_RunDLL tabletpc.cpl

Opzioni risparmio energia
rundll32.exe Shell32.dll,Control_RunDLL powercfg.cpl

Pulisce la memoria task inattivi
rundll32.exe advapi32.dll,ProcessIdleTasks

Programmi e funzionalità
rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,0

Area Geografica, scheda Formati
rundll32.exe Shell32.dll,Control_RunDLL Intl.cpl,,0

Area Geografica, scheda Opzioni di amminstrazione
rundll32.exe Shell32.dll,Control_RunDLL Intl.cpl,,1

Rimozione sicura dell'hardware
rundll32.exe Shell32.dll,Control_RunDLL HotPlug.dll

Impostazioni screen saver
rundll32.exe shell32.dll,Control_RunDLL desk.cpl,,1

Sicurezza e manutenzione
rundll32.exe shell32.dll,Control_RunDLL wscui.cpl

App predefinite
rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,3

Configurazione rete
rundll32.exe shell32.dll,Control_RunDLL NetSetup.cpl

Audio, scheda Riproduzione
rundll32.exe Shell32.dll,Control_RunDLL Mmsys.cpl,,0

Audio, scheda Registrazione
rundll32.exe Shell32.dll,Control_RunDLL Mmsys.cpl,,1

Audio, scheda Suoni
rundll32.exe Shell32.dll,Control_RunDLL Mmsys.cpl,,2

Audio, scheda Comunicazioni
rundll32.exe Shell32.dll,Control_RunDLL Mmsys.cpl,,3

Impostazioni Start
rundll32.exe shell32.dll,Options_RunDLL 3

Gestione nomi utente e password archiviati
rundll32.exe keymgr.dll,KRShowKeyMgr

Proprietà del sistema, scheda Nome computer
rundll32.exe Shell32.dll,Control_RunDLL Sysdm.cpl,,1

Proprietà del sistema, scheda Hardware
rundll32.exe Shell32.dll,Control_RunDLL Sysdm.cpl,,2

Proprietà del sistema, scheda Avanzate
rundll32.exe Shell32.dll,Control_RunDLL Sysdm.cpl,,3

Proprietà del sistema, scheda Protezione sistema
rundll32.exe Shell32.dll,Control_RunDLL Sysdm.cpl,,4

Proprietà del sistema, scheda Connessione remota
rundll32.exe Shell32.dll,Control_RunDLL Sysdm.cpl,,5

Impostazioni, Barra delle applicazioni
rundll32.exe shell32.dll,Options_RunDLL 1

Account utente
rundll32.exe shell32.dll,Control_RunDLL nusrmgr.cpl

Funzionalità Windows
rundll32.exe shell32.dll,Control_RunDLL appwiz.cpl,,2

Windows Defender Firewall
rundll32.exe shell32.dll,Control_RunDLL firewall.cpl

Proprietà Tastiera
rundll32.exe shell32.dll,Control_RunDLL main.cpl @1

Informazioni su Windows
rundll32.exe SHELL32.DLL,ShellAbout


Comandi Rundll32 relativi ad Internet Explorer


Elimina tutta la cronologia di Internet Explorer
rundll32.exe InetCpl.cpl,ClearMyTracksByProcess 255

Cancella la cronologia del browser e la cronologia degli add-on
rundll32.exe InetCpl.cpl,ClearMyTracksByProcess 4351

Elimina cookies e dati dei siti web
rundll32.exe InetCpl.cpl,ClearMyTracksByProcess 2

Elimina la cronologia dei download
rundll32.exe InetCpl.cpl,ClearMyTracksByProcess 16384

Cancella i dati dei moduli
rundll32.exe InetCpl.cpl,ClearMyTracksByProcess 16

Elimina la cronologia
rundll32.exe InetCpl.cpl,ClearMyTracksByProcess 1

Elimina le password
rundll32.exe InetCpl.cpl,ClearMyTracksByProcess 32

Elimina file temporanei di Internet e cronologia esplorazioni
rundll32.exe InetCpl.cpl,ClearMyTracksByProcess 8

Organizza Preferiti
Rundll32.exe shdocvw.dll,DoOrganizeFavDlg

Proprietà Internet, scheda Generale
rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl

Proprietà Internet, scheda Sicurezza
rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl,,1

Proprietà Internet, scheda Privacy
rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl,,2

Proprietà Internet, scheda Contenuto
rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl,,3

Proprietà Internet, scheda Connessioni
rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl,,4

Proprietà Internet, scheda Programmi
rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl,,5

Proprietà Internet, scheda Avanzate
rundll32.exe shell32.dll,Control_RunDLL inetcpl.cpl,,6




domenica 26 luglio 2020

Windows 10: Test e taratura game controller

Non tutti sanno che Windows include uno strumento per testare e tarare un game controller collegato al PC. Per visualizzare l'applet premere la combinazione di tasti WIN+R e digitare joy.cpl seguito da Invio.
Si aprirà la finestra Periferiche di gioco mostrata in FIG 1 in cui verranno elencati i controller connessi al sistema.
Applet Periferiche di gioco
FIG 1 - Applet Periferiche di gioco

Selezionare il proprio controller dalla lista e cliccare su Proprietà. All'interno della scheda Test è possibile testare tutti i pulsanti del controller mentre nella scheda Impostazioni si può procedere alla taratura del controller o a ripristinare le impostazioni predefinite.
Test controller
FIG 2 - Test controller

Impostazioni controller
FIG 3 - Impostazioni controller




venerdì 20 marzo 2020

Windows Quick Tip: Crittografare una cartella tramite Prompt dei comandi

Per proteggere file o cartelle e renderli inaccessibili agli estranei è possibile ricorrere alla crittografia. Dal Prompt dei comandi di Windows possiamo utilizzare il comando cipher per raggiungere il nostro scopo:
cipher /e <path e nome cartella>

ad es. per cifrare la cartella c:\Cartella cifrata e il suo contenuto basta lanciare il seguente comando dal Prompt dei comandi
cipher /e "c:\Cartella cifrata"

Se il nome della cartella o del file da cifrare contiene spazi, come nel nostro caso, è necessario racchiudere il tutto tra doppi apici. Un messaggio ci avviserà se l'operazione è andata a buon fine indicando il numero di file/cartelle criptate. 
Crittografare una cartella tramite cipher
FIG 1 - Crittografare una cartella tramite cipher

Spostando qualsiasi file all'interno della cartella questo verrà automaticamente cifrato e sull'icona apparirà un lucchetto.
File crittografato
FIG 2 - File crittografato

Per decriptare un file o una cartella basta utilizzare il comando con il parametro /d
cipher /d "c:\Cartella cifrata"






lunedì 9 marzo 2020

Windows Quick Tip: Visualizzare il product key del sistema operativo tramite wmic

In passato abbiamo già visto le potenzialità di WMIC (Windows Management Instrumentation Command-line) nella gestione dei sistemi da riga di comando. Tale strumento può anche essere utilizzato per visualizzare il product key di Windows eseguendo il comando
wmic path softwarelicensingservice get OA3xOriginalProductKey

Se è stato effettuato l'aggiornamento a Windows 10 da una versione antecedente del sistema operativo tale comando non funziona.








lunedì 2 marzo 2020

Windows Quick Tip: Utilizzare il comando FC (file compare) dal Prompt dei comandi

Il comando FC (File compare) presente nel prompt de comandi, consente di confrontare il contenuto di file di testo o file binari evidenziandone le differenze.
La sintassi del comando è

FC [parametri] [file1] [file2]

Parametri
/A    Abbrevia l'output di una comparazione tra file in modo che FC mostri solo la prima e l'ultima riga per ogni gruppo di differenze.

/B    Esegue una comparazione binaria. FC confronta i due file byte per byte. Si tratta della modalità di default per i file binari. Viene utilizzata per confrontare file con estensioni .exe, .com, .sys, .obj, .lib, or .bin. 

/C    Nel confronto ignora maiuscole/minuscole (case insensitive).

/L    Confronta i file in modalità ASCII linea per linea.

/LBn  Imposta il numero specificato (n) di linee per il buffer interno. Di default il buffer è di 100 linee. Se nel confronto il numero massimo di corrispondenze mancate consecutive è superiore al numero di righe specificato FC termina il confronto.       

/N    Visualizza i numeri di riga in un confronto ASCII.

/T    Previene la conversione delle tabulazioni in spazi da parte di FC.Il comportamento di default prevede che le tabulazioni siano considerate come spazi.

/U    Confronta i file come file UNICODE..

/W    Comprime spazi bianchi (tabulazione e spazi) durante il confronto. Se una linea contiene più spazi o tabulazioni consecutive, tale parametro le considera come un singolo spazio. Quanto si utilizza tale opzione FC ignora gli spazi all'interno della linea durante il confronto.

/nnnn   Il valore di default è 2. Il numero di righe consecutive che devono corrispondere prima che la FC consideri i file da risincronizzare. Se il numero di righe corrispondenti nei file è inferiore a nnnn, FC visualizza le righe corrispondenti come differenze
   


Per confrontare due file di testo, dal Prompt dei comandi, è possibile utilizzare il seguente comando
fc /a file1.txt file2.txt    

In FIG 1 e FIG 2 vengono mostrati i messaggi nel caso in cui i due file siano uguali e nel caso in cui siano diversi. In quest'ultimo caso viene mostrata anche la riga di testo che differisce tra i due file.
Confronto file di testo, nessuna differenza
FIG 1 - Confronto file di testo, nessuna differenza

Differenza rilevata nel confronto tra file di testo
FIG 2 - Differenza rilevata nel confronto tra file di testo



Per confrontare file binari bisogna utilizzare il parametro /b come nel comando  
fc /b app.exe app2.exe


Confronto tra file binari
FIG 3 - Confronto tra file binari