Добавляем папки в панель быстрого доступа Windows с помощью PowerShell

В меню проводника Windows существует отдельная панель, в которой отображается список избранных папок. Панель навигации со списком папок быстрого доступа (Quick Access) отображается в левой верхней части окна File Explorer. Этот удобный инструмент Windows для быстрого к избранным папками, который незаслуженно игнорируется многими пользователями и администраторами. В этой статье мы покажем как автоматизировать настройки панели быстрого доступа с помощью PowerShell и GPO.

По умолчанию в панели Quick Access отображаются стандартные папки профиля пользователя (Desktop, Downloads, Pictures, Documents). Windows сама добавляет в панель Quick Access папки, которые часто (или недавно) открывал пользователь. Также пользователь может жестко закрепить любую нужную папку в панели быстрого доступа. Для этого нужно выбрать нужную папку на компьютере или в сетевом каталоге на файловом сервере и выбрать пункт Pin to Quick Access . В этом случае у папки появляется пиктограмма скрепки.

Если в вашей Windows не отображается панель быстрого доступа, нужно перейти в ветку реестра HKLMSOFTWAREMicrosoftWindowsCurrentVersionExplorer

и удалить параметр реестра HubMode со значением 1 (если этот параметр задан, проводник не показывает панель быстрого доступа). Ранее мы показывали, как скрыть стандартные папки в проводнике Windows .

В моем случае я хочу добавить определенные папки в меню быстрого доступа в зависимости от назначенных групп доступа (ролей) пользователей. Например, бухгалтерам нужно закрепить один список избранных папок, менеджерам по продажам – другой, и т.д. В групповых политиках Windows отсутствуют средства для централизованного управления Quick Access, поэтому пришлось использовать PowerShell.

Чтобы добавить одну папку в список быстрого доступа Windows, используется команда:

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

Список элементов быстрого доступа проводника Windows хранится в файле %AppData%MicrosoftWindowsRecentAutomaticDestinationsf01b4d95cf55d32a.automaticDestinations-ms . Чтобы быстро очистить панель quickaccess, нужно выполнить команду:

del /f /s /q /a "%AppData%MicrosoftWindowsRecentAutomaticDestinationsf01b4d95cf55d32a.automaticDestinations-ms"

Вы можете добавить в быстрый доступ локальную папку на диске или сетевую папку (по UNC пути):

$quickaccess.Namespace("\fs01publicbalance").Self.InvokeVerb("pintohome")

Или папку в профиле пользователя:

$quickaccess.Namespace("C:Users$($env:USERNAME)AppDataRoamingMyApp").Self.InvokeVerb("pintohome")

Удалить папку из быстрого доступа:

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

Можно удалить из Quick Access все стандартные папки библиотек, закреплённые по-умолчанию:

$quickaccess = new-object -com shell.application
$results=$QuickAccess.Namespace("shell:::{679f85cb-0220-4080-b29b-5540cc05aab6}").Items()
$DeleteDefaultItems = @("Desktop","Documents","Pictures","Videos","Рабочий стол","Документы","Изображения","Видео","Загрузки")
($results| where {$_.name -in $DeleteDefaultItems}).InvokeVerb("unpinfromhome")

Удалить все папки из Quick Access:

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

Следующий кусок кода добавляет в Quick Access папки только тогда, когда пользователь входит в определенную группу AD:

$usergroups=(New-Object System.DirectoryServices.DirectorySearcher("(&(objectCategory=User)(samAccountName=$($env:username)))")).FindOne().GetDirectoryEntry().memberOf_x000D_if ($usergroups.Contains('CN=SaleManagers,OU=groups,OU=MSK,DC=remontka,DC=ru'))_x000D_ {_x000D_ $AddItems = @(_x000D_ [pscustomobject]@{Name=Sales;Path="\remontka.comdfssales "}_x000D_ [pscustomobject]@{Name='Scans';Path="\remontka.comdfsScans"}_x000D_ [pscustomobject]@{Name='Test1';Path="$env:USERPROFILEDownloads"}_x000D_ )_x000D_ ForEach ($Item in $AddItems)_x000D_ { _x000D_ if (($Item.Name -notin $results.Name) -and (Test-Path -Path $Item.path)) {_x000D_ $QuickAccess.Namespace($Item.path).Self.InvokeVerb("pintohome")_x000D_ }_x000D_ }_x000D_ }_x000D_

Если пользователь состоит в группе SaleManagers, этот cкрипт проверит, есть ли в списке QuickAccess пользователя элементы из массива $AddItems . Если такой папки нет в быстром доступе, скрипт проверить доступность указанного пути и добавит папку в избранное.

Вы можете добавить в этот скрипт еще несколько проверок наличия групп доступа у пользователя. В результате PowerShell скрипт будет добавлять папки в список быстрого доступа пользователя в зависимости от назначенных ему групп AD.

Такой PowerShell скрипт нужно сохранить на контроллер домена AD в папку \remontka.comNETLOGON (это позволит игнорировать настройки политики запуска скриптов PowerShell Execution Policy ) и запускать как логон скрипт при входе пользователя через групповую политику (подробнее о запуске PowerShell скриптов через GPO ).

admin

Share
Published by
admin

Recent Posts

Apple: история логотипа

Как менялся логотип Apple на протяжении многих лет. Логотип Apple — это не просто символ,…

1 неделя ago

Security Boot Fail при загрузке Acer — решение проблемы

Security Boot Fail при загрузке Acer — решение проблемы При загрузке ноутбука Acer с флешки,…

3 недели ago

Ноутбук не включается — варианты решения

Ноутбук не включается — варианты решения Если при попытке включить ноутбук вы обнаруживаете, что он…

3 недели ago

The AC power adapter wattage and type cannot be determined — причины и решение

The AC power adapter wattage and type cannot be determined — причины и решение При…

3 недели ago

Свистит или звенит блок питания компьютера — причины и решения

Свистит или звенит блок питания компьютера — причины и решения Некоторые владельцы ПК могут обратить…

3 недели ago

Мигает Caps Lock на ноутбуке HP — почему и что делать?

Мигает Caps Lock на ноутбуке HP — почему и что делать? При включении ноутбука HP…

3 недели ago