Как предоставьте администраторам полный доступ к папкам перемещаемых профилей (Grant-RoamingProfilesAccess)

25.11.2021

Как предоставьте администраторам полный доступ к папкам перемещаемых профилей (Grant-RoamingProfilesAccess)

Возможно, у вас уже была следующая проблема: вы используете перемещаемые профили. Вы администратор домена. Вы не можете получить доступ к папке перемещаемых профилей. Вы должны стать владельцем каждой папки и предоставить себе доступ ко всем подпапкам внутри родительской папки.

В домене с помощью политик GPO настроили перемещаемые профили, но не активировали политику «Add the Administrators security group to roaming user profiles».

Вам нужно включить следующую политику — Конф. комп — Админ шаблолоны —  Система — Профили пользователей — Добавляет группу «Администраторы» к перемещаемым профилям пользователям.

Computer Configuration -> Policies -> Administrative Templates-> System -> User Profiles -> Add the administrators security group to roaming user profiles.

После применение этой политики группа администраторов получит доступ к перемещаемому профилю. (к вновь созданным) Но на ранее созданные профили вам придется вручную раздать праваr .

Как предоставьте администраторам полный доступ к папкам перемещаемых профилей

1. Во первых необходимо стать ownership of all folders.
2. Во вторых вы должны grant full access to the administrators group.  

Решаем эти задачи при помощи скрипта на PowerShell:

function Grant-RoamingProfilesAccess { 
# .SYNOPSIS
# Grant-RoamingProfilesAccess is an advanced Powershell function. It takes ownership of the users roaming profiles folders and grants the administrators group full access.
 
# .DESCRIPTION
# Uses takeown and icacls. Define the path to the roaming profiles root directory.
 
# .PARAMETER
# Path
# Enter the path to the roaming profiles root folder.
 
# .EXAMPLE
# Grant-RoamingProfilesAccess -Path C:\Profiles\
 
# .NOTES
# Author: Patrick Gruenauer

 
[CmdletBinding()]
 
param
 
(
 
[Parameter(Position=0,Mandatory=$true,Helpmessage = 'Enter Path to the Roaming Profiles Root Directory')]
$Path
 
)
 
$ErrorActionPreference="SilentlyContinue"
 
Get-ChildItem $Path -Recurse ForEach-Object {
   if ($_.Name -ne "Downloads" -and $_.FullName -notlike "*\Downloads\*") {
   takeown /f $_.FullName /a
   icacls $_.Fullname /grant "administrators:(OI)(CI)F" /t
   }
}
}

готово. 
Для Windows имеющую Русскую локализацию и как следствие группа будет называться Администраторы замените строчку кода на: 
  icacls $_.Fullname /grant "administrators:(OI)(CI)F" /t
на:
 icacls $_.Fullname /grant "Администраторы:(OI)(CI)F" /t

Grant-RoamingProfilesAccess

Если вы хотите, чтобы функция была постоянно доступна, чтобы функция присутствовала при каждом запуске PowerShell, вам необходимо создать папку в 
C: \ Program Files \ WindowsPowerShell \ Modules. Назовите его Grant-RoamingProfilesAccess Затем сохраните код как файл .psm1 в этой папке. Снимок экрана ниже вам поможет.
unbenannt2.png

Как запускать данный скрипт:

1. Запускаем PowerShell от имени Администратор
2. Grant-RoamingProfilesAccess -Path C:\Profiles\  (ждем)
1.png

ДОПОЛНЕНИЕ: 2023
 if ($_.Name -ne "Downloads" -and $_.FullName -notlike "*\Downloads\*") {
исключил из обхода папку ЗАГРУЗКИ т.к в Windows 2022 на нее очень странные права и смена владельца, у пользователей убирает права, редактировать в ней файлы.

< Назад к списку новостей