Website-Suche

So fügen Sie mit PowerShell und GPO angeheftete Ordner zum Schnellzugriff hinzu oder entfernen sie


Der Windows-Datei-Explorer verfügt über ein separates Bedienfeld, das eine Liste der bevorzugten Ordner und Speicherorte namens Schnellzugriff anzeigt. Viele Benutzer und Administratoren ignorieren dieses praktische Windows-Tool für den schnellen Zugriff auf Ihre Lieblingsordner zu Unrecht. In diesem Artikel wird beschrieben, wie Sie PowerShell und Gruppenrichtlinien verwenden, um die Konfiguration des Schnellzugriffsbereichs und angehefteter Ordner unter Windows zu automatisieren.

Standardmäßig werden im Schnellzugriffsbereich nur die Standardbenutzerprofilbibliotheken angezeigt (Desktop, Downloads, Bilder, Dokumente). ). Windows fügt dem Schnellzugriff automatisch Ordner hinzu, die der Benutzer häufig (oder kürzlich) geöffnet hat. Der Benutzer kann jeden Ordner auch manuell an den Schnellzugriffsbereich anheften. Wählen Sie dazu den gewünschten Ordner auf Ihrem Computer oder einen freigegebenen Ordner auf einem Remote-Computer aus und wählen Sie die Option An Schnellzugriff anheften. In diesem Fall wird neben dem Ordnernamen ein Stecknadelsymbol angezeigt.

Wenn Ihr Windows den Schnellzugriffsbereich nicht anzeigt, gehen Sie zum Registrierungsschlüssel HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer und löschen Sie den Registrierungsparameter HubMode mit einem Wert 1 (Der Datei-Explorer verbirgt das Schnellzugriffsfenster, wenn diese Option festgelegt ist). Zuvor haben wir gezeigt, wie man die Bibliothek und spezielle Ordner im Windows-Datei-Explorer ausblendet.

In meinem Fall möchte ich bestimmte Ordner an den Schnellzugriff anheften, abhängig von den Zugriffsgruppen (Rollen), die den Benutzern zugewiesen sind. Beispielsweise benötigen Buchhalter eine Liste mit Lieblingsordnern, Vertriebsleiter eine andere und so weiter. Gruppenrichtlinien verfügen nicht über die integrierten Tools zur zentralen Verwaltung des Schnellzugriffs, daher musste PowerShell verwendet werden.

Um einen bestimmten Ordner zur Schnellzugriffsliste hinzuzufügen (anzuheften), geben Sie den Pfad zum Ordner im folgenden Befehl an:

$quickaccess = new-object -com shell.application
$quickaccess.Namespace("C:\CorpApp\Report").Self.InvokeVerb("pintohome")

Die Liste der Elemente im Schnellzugriffsbereich wird im gespeichert

%AppData%\Microsoft\Windows\Recent\AutomaticDestinations\f01b4d95cf55d32a.automaticDestinations-ms

Datei. Um die Schnellzugriffsliste schnell zu löschen, löschen Sie diese Datei, indem Sie den folgenden Befehl ausführen:

del /f /s /q /a "%AppData%\Microsoft\Windows\Recent\AutomaticDestinations\f01b4d95cf55d32a.automaticDestinations-ms"

Dem Schnellzugriff kann ein lokaler Ordner oder ein freigegebener Netzwerkordner (per UNC-Pfad) hinzugefügt werden:

$quickaccess.Namespace("\\munfs01\public\sales").Self.InvokeVerb("pintohome")

Jeder Benutzerprofilordner kann angeheftet werden

$quickaccess.Namespace("C:\Users\$($env:USERNAME)\AppData\Roaming\MyApp").Self.InvokeVerb("pintohome")

Einen Ordner aus dem Schnellzugriff entfernen (lösen):

($QuickAccess.Namespace("shell:::{679f85cb-0220-4080-b29b-5540cc05aab6}").Items() | where {$_.Path -eq "C:\CorpApp\Report"}).InvokeVerb("unpinfromhome")

Sie können alle Profilbibliotheksordner entfernen, die standardmäßig an den Schnellzugriff angeheftet sind:

$quickaccess = new-object -com shell.application
$results=$QuickAccess.Namespace("shell:::{679f85cb-0220-4080-b29b-5540cc05aab6}").Items()
$DeleteDefaultItems = @("Desktop","Documents","Pictures","Videos","Downloads")
($results| where {$_.name -in $DeleteDefaultItems}).InvokeVerb("unpinfromhome")

Alle angehefteten Elemente aus dem Schnellzugriff entfernen:

($quickaccess.Namespace("shell:::{679f85cb-0220-4080-b29b-5540cc05aab6}").Items() | where { $_.IsFolder -eq "True"}).InvokeVerb("unpinfromhome")

Das folgende PowerShell-Skript fügt Ordner nur dann zum Schnellzugriffsbereich hinzu, wenn der Benutzer Mitglied einer bestimmten AD-Gruppe ist:

$usergroups=(New-Object System.DirectoryServices.DirectorySearcher("(&(objectCategory=User)(samAccountName=$($env:username)))")).FindOne().GetDirectoryEntry().memberOf
if ($usergroups.Contains('CN=MUN_SaleManagers,OU=Groups,OU=MUN,DC=a-d,DC=loc'))
    {
      $AddItems = @(
        [pscustomobject]@{Name=Report;Path="\\a-d.loc\DFS\Reports"}
        [pscustomobject]@{Name='Scans';Path="\\a-d.loc\DFS\Scans"}
        [pscustomobject]@{Name='Test1';Path="$env:USERPROFILE\Downloads"}
  )
       ForEach ($Item in $AddItems)
        {          
            if (($Item.Name -notin $results.Name) -and (Test-Path -Path $Item.path)) {
            $QuickAccess.Namespace($Item.path).Self.InvokeVerb("pintohome")
         }
        }
    }

Wenn der Benutzer Mitglied der Gruppe MUN_SaleManagers ist, prüft dieses PowerShell-Skript, ob die QuickAccess-Liste des Benutzers angeheftete Ordner aus dem enthält

$AddItems

Array. Fehlt ein solcher Ordner im Schnellzugriff, prüft das Skript die Verfügbarkeit des angegebenen Pfades und pinnen den Ordner an.

Sie können dem Skript mehrere Bedingungen hinzufügen, um zu überprüfen, ob der Benutzer Mitglied anderer AD-Sicherheitsgruppen ist. Infolgedessen pinnen das PowerShell-Skript Ordner basierend auf ihrer AD-Gruppenmitgliedschaft an die Schnellzugriffsliste des Benutzers an.

Speichern Sie diese PowerShell im

\\a-d.loc\NETLOGON

Ordner auf dem AD-Domänencontroller (dadurch können PowerShell-Ausführungsrichtlinieneinstellungen ignoriert werden) und als Benutzeranmeldeskript mithilfe von Gruppenrichtlinien ausführen (weitere Informationen zum Ausführen von PowerShell-Skripts über GPO).