当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何使用 PowerShell 和 GPO 添加或删除固定文件夹以快速访问

作者:精品下载站 日期:2024-12-14 01:51:54 浏览:14 分类:玩电脑

如何使用 PowerShell 和 GPO 添加或删除固定文件夹以快速访问


Windows 文件资源管理器有一个单独的面板,显示收藏的文件夹和位置的列表,称为快速访问。许多用户和管理员不公正地忽略了这个方便的 Windows 工具来快速访问您最喜爱的文件夹。本文介绍如何使用 PowerShell 和组策略自动配置 Windows 上的快速访问窗格和固定文件夹。

默认情况下,快速访问面板仅显示标准用户配置文件库(桌面下载图片文档 )。 Windows 会自动将用户经常(或最近)打开的文件夹添加到快速访问。用户还可以手动将任何文件夹固定到快速访问窗格。为此,请选择计算机上所需的文件夹或远程计算机上的共享文件夹,然后选择固定到快速访问选项。在这种情况下,文件夹名称旁边将出现一个图钉图标。

[玩转系统] 如何使用 PowerShell 和 GPO 添加或删除固定文件夹以快速访问

如果您的 Windows 未显示“快速访问”窗格,请转到 HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer 注册表项,然后删除 HubMode 注册表参数值为 1(设置此选项时,文件资源管理器将隐藏“快速访问”面板)。之前,我们展示了如何在 Windows 文件资源管理器中隐藏库和特殊文件夹。

就我而言,我想根据分配给用户的访问组(角色)将某些文件夹固定到快速访问。例如,会计师需要一份最喜欢的文件夹列表,销售经理需要另一份,等等。组策略没有内置工具来集中管理快速访问,因此必须使用 PowerShell。

要将特定文件夹添加(固定)到快速访问列表,请在命令中指定该文件夹的路径:

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

[玩转系统] 如何使用 PowerShell 和 GPO 添加或删除固定文件夹以快速访问

快速访问窗格中的项目列表存储在

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

文件。要快速清除快速访问列表,请运行以下命令删除此文件:

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

可以将本地文件夹或共享网络文件夹(通过 UNC 路径)添加到快速访问:

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

可以固定任何用户配置文件文件夹

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

从快速访问中删除(取消固定)文件夹:

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

您可以删除默认固定到快速访问的任何配置文件库文件夹:

$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")

从快速访问中删除所有固定的项目:

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

仅当用户是特定 AD 组的成员时,以下 PowerShell 脚本才会将文件夹添加到快速访问窗格:

$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")
         }
        }
    }

如果用户是 MUN_SaleManagers 组的成员,此 PowerShell 脚本将检查用户的 QuickAccess 列表是否包含来自

$AddItems

大批。如果快速访问中缺少此类文件夹,脚本将检查指定路径的可用性并固定该文件夹。

您可以向脚本添加多个条件来检查用户是否是其他 AD 安全组的成员。因此,PowerShell 脚本将根据用户的 AD 组成员身份将文件夹固定到用户的快速访问列表。

将此 PowerShell 保存到

\a-d.loc\NETLOGON

AD 域控制器上的文件夹(这允许忽略 PowerShell 执行策略设置。)并使用组策略将其作为用户登录脚本运行(有关通过 GPO 运行 PowerShell 脚本的更多信息)。

[玩转系统] 如何使用 PowerShell 和 GPO 添加或删除固定文件夹以快速访问

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯