Visualizzazione post con etichetta 000b04a5. Mostra tutti i post
Visualizzazione post con etichetta 000b04a5. Mostra tutti i post

martedì 26 aprile 2022

PowerShell: Attivare/Disattivare la funzione Posta in arrivo Evidenziata di Outlook

La funzione Posta in arrivo Evidenziata di Outlook separa la posta in arrivo in due schede: Evidenziata, contenente le email considerate più importanti, ed Altra contenente le restanti email. Non sempre questa separazione funziona correttamente e potremmo ritrovarci con email importanti spostate nella scheda Altra.

In MS Outlook per Windows, Posta in arrivo Evidenziata è disponibile solo per gli account Microsoft 365, Exchange e Outlook.com. La funzione può essere attivata/disattivata in maniera molto semplice da Outlook selezionando la cartella Posta in arrivo e cliccando sull'apposito pulsante presente nel menu Visualizza.
Posta in arrivo Evidenziata
FIG 1 - Posta in arrivo Evidenziata


L'attivazione/disattivazione di tale funzionalità in Outlook viene controllata dal valore 000b04a5 presente nel registro di sistema all'interno di una delle sotto-chiavi del profilo di posta. Il nome della sotto-chiave di registro contenente tale valore, per questioni di sicurezza, varia e va ricercata all'interno della chiave
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Office\16.0\Outlook\Profiles\<nome_profilo_Outlook>

L'operazione può essere automatizzata con il seguente script PowerShell. Lo script va a cercare il valore 000b04a5 all'interno del profilo Outlook predefinito e chiede all'utente se disattivare/attivare la funzione. I commenti aiutano nella comprensione del codice.
 # Percorso chiavi di registro e profili relativi ad Outlook   
  $outlook = "HKCU:\Software\Microsoft\Office\16.0\Outlook"   
  # Variabili contenenti i valori binari per l'attivazione/disattivazione della funzione Posta Evidenziata   
  $Enable=([byte[]](0x01,0x00))   
  $Disable=([byte[]](0x00,0x00))   
  # Verifico il profilo outlook predefinito   
  # Verifico se è presente il valore stringa DefaulProfile   
  if ((Get-ItemProperty -Path $outlook -Name "DefaultProfile" -ErrorAction SilentlyContinue)){   
    # Recupero il valore contenuto in DefaultProfile   
    $defaultProfile = (Get-ItemProperty -Path $outlook -Name "DefaultProfile").'DefaultProfile'   
    # Se DefaulProfile è vuoto allora non è specificato un profilo outlook predefinito   
    if ($defaultProfile -ne ""){   
         $CurrentProfile = "$Outlook" + '\Profiles\'+ "$defaultProfile" + '\*'   
         # All'interno del profilo outlook predefinito ricerco il valore 000b04a5   
         $FocusValue = (Get-ItemProperty -Path $CurrentProfile -Name "000b04a5" -ErrorAction SilentlyContinue).'000b04a5'   
         # Se il valore è 1 allora la funzione Posta Evidenziata è attiva   
         If ($FocusValue -eq "1"){   
          write-host "La funzione 'Mostra posta in arrivo evidenziata' risulta attiva"   
          # Chiedo all'utente se desidera disattivare la funzione Posta Evidenziata   
          $confirmation = Read-Host "Si desidera disattivarla?[S/N]"   
          # Se l'utente risponde in maniera affermativa, la funzione viene disattivata   
          if ($confirmation -eq 's') {   
            Set-ItemProperty -Path $CurrentProfile -Name "000b04a5" -Value $Disable -ErrorAction SilentlyContinue   
            write-host "La funzione 'Mostra posta in arrivo evidenziata' e' stata disattivata"   
          }    
         }   
         else{   
          # La funzione Posta Evidenziata è disattivata   
          write-host "La funzione 'Mostra posta in arrivo evidenziata' non risulta attiva"   
          # Chiedo all'utente se desidera attivare la funzione Posta Evidenziata   
          $confirmation = Read-Host "Si desidera attivarla?[S/N]"   
          # Se l'utente risponde in maniera affermativa, la funzione viene attivata   
            if ($confirmation -eq 's') {   
            Set-ItemProperty -Path $CurrentProfile -Name "000b04a5" -Value $Enable -ErrorAction SilentlyContinue   
            write-host "La funzione 'Mostra posta in arrivo evidenziata' e' stata attivata"   
          }   
     
         }   
    }   
    # Il valore stringa DefaulProfile è vuoto   
    else{   
       write-host "Non risulta impostato alcun profilo Outlook predefinito"   
    }   
  }   
  # Il valore stringa DefaulProfile non è presente   
  else{   
    write-host "Il valore DefaulProfile non risulta presente."   
  }   

Dal seguente link è possibile scaricare lo script PowerShell