Accesso RAPIT(D)O WINDOWS 11

Accesso RAPIT(D)O WINDOWS 11

Sul nuovo pc Windows 11 ho un problema con l’accesso rapido abbastanza fastidioso: al riavvio Windows rimuove tutte le cartelle aggiunte al menu accesso rapido. Cercando su internet ho capito essere un problema abbastanza diffuso, ma tutti i suggerimenti che ho trovato non hanno portato a niente. Sul portatile che ha la stessa versione di Windows 11 e praticamente le stesse configurazioni questo problema non si presenta.

 

Dopo aver fatto alcuni tentativi ho pensato che la cosa migliore fosse creare uno script in PowerShell da lanciare tramite operazioni pianificate all’avvio del pc e così ho fatto.

 

Lo script è più o meno così:

 

Set-ExecutionPolicy unrestricted

$QuickAccess = New-Object -ComObject shell.application

$PathToPin = “C:\Users\Francesco\Pictures\Foto”
if(-not ($QuickAccess.Namespace(“shell:::{679f85cb-0220-4080-b29b-5540cc05aab6}”).Items() | ? {$_.Path -eq $PathToPin})) $QuickAccess.Namespace($PathToPin).Self.InvokeVerb(“pintohome”)}

 

con le ultime 3 righe da ripetere per ogni cartella da aggiungere. Salvarlo con estensione .ps1

A questo punto si può creare l’operazione pianificata impostandola alla login e specificando come azione

in Programma o script mettere il percorso del powershell mentre in Argomenti mettere:

-file <percorso del file .ps1>

Lanciandolo da Powershell però viene bloccato a causa delle policy di default di esecuzione degli script che è impostata su Restricted. Qui abbiamo 2 strade:

 

1. Impostare le policy su AllSigned e firmare lo script


Impostare le policy su Unrestricted è sconsigliato perchè espone ad attacchi e virus.
Per firmare lo script occorre:
– generare il certificato
New-SelfSignedCertificate -DnsName francesco.fantoni@live.it -CertStoreLocation Cert:\CurrentUser\My\ -FriendlyName "SelfCert" -NotAfter (Get-Date).AddYears(10) -KeyLength 4096 -Type Codesigning

– verificare che è stato generato
Get-ChildItem Cert:\CurrentUser\My -CodeSigningCert

– esportare il certificato in un file .cer
Export-Certificate -Cert Cert:\CurrentUser\My\ -FilePath c:\certificato.cer

– importare il certificato
Import-Certificate -CertStoreLocation Cert:\LocalMachine\TrustedPublisher -FilePath c:\certificato.cer
Import-Certificate -CertStoreLocation Cert:\LocalMachine\AuthRoot -FilePath c:\certificato.cer


– firmare lo script
Set-AuthenticodeSignature -FilePath d:\QUICKACCESS.ps1 -Certificate (Get-ChildItem -Path Cert:\CurrentUser\My\)

infine impostare le policy su AllSigned con
Set-ExecutionPolicy AllSigned



2. il secondo modo è aggiungere nell’argomento il comando


-executionpolicy bypass



Problema risolto!

Tags:
No Comments

Post A Comment