ให้สิทธิ์ผู้ดูแลระบบในการควบคุมการเข้าถึงโฟลเดอร์โปรไฟล์โรมมิ่งอย่างสมบูรณ์ (Grant-RoamingProfilesAccess)
บางทีคุณอาจประสบปัญหาต่อไปนี้: คุณกำลังใช้โปรไฟล์โรมมิ่ง คุณเป็นผู้ดูแลระบบของโดเมน คุณไม่สามารถเข้าถึงโฟลเดอร์โปรไฟล์โรมมิ่งได้ คุณต้องเป็นเจ้าของแต่ละโฟลเดอร์และให้สิทธิ์ตัวเองในการเข้าถึงทุกโฟลเดอร์ย่อยภายในโฟลเดอร์หลัก มันน่ารำคาญ ตอนนี้จบแล้ว เพียงใช้ฟังก์ชัน PowerShell ขั้นสูงของฉัน Grant-RoamingProfilesAccess เพื่อเข้าถึงโฟลเดอร์และไฟล์โปรไฟล์ทั้งหมด
โฟลเดอร์โปรไฟล์ข้ามเขต
ในกรณีของฉัน โปรไฟล์การโรมมิ่งทั้งหมดจะถูกจัดเก็บไว้ในตัวควบคุมโดเมนของฉันใน c:\Profiles
เมื่อฉันพยายามเข้าถึงโฟลเดอร์นั้น ฉันได้รับข้อความปฏิเสธการเข้าถึง
ขณะนี้คุณไม่มีสิทธิ์เข้าถึงโฟลเดอร์นี้
หากคุณคิดว่าคุณสามารถเข้าถึงได้โดยทำตามคำแนะนำและคลิกดำเนินการต่อ แสดงว่าคุณคิดถูก แต่ถ้าคุณต้องการเข้าถึงโปรไฟล์ทั้งหมดล่ะ? การทำงานกับทุกโฟลเดอร์เป็นเรื่องน่าเบื่อมาก นั่นทำให้ฉันเกิดแนวคิด: ฉันจะสร้างฟังก์ชันเพื่อให้สิทธิ์ในการเข้าถึงโปรไฟล์และโฟลเดอร์ย่อยของโปรไฟล์ทั้งหมด กระโดดเข้าไปเลย
บุกเข้าไปในโฟลเดอร์โปรไฟล์
ประการแรก เราต้องเป็นเจ้าของโฟลเดอร์ทั้งหมด ประการที่สอง เราต้อง ให้สิทธิ์การเข้าถึงแบบเต็มแก่กลุ่มผู้ดูแลระบบ หน้าที่ของฉันจะทำทุกอย่างนั้น
นี่คือการดำเนินการ:
Grant-RoamingProfilesAccess -Path C:\Profiles\
หลังจากรันคำสั่งดังกล่าวแล้ว ผู้ดูแลระบบจะสามารถเข้าถึงโฟลเดอร์ทั้งหมดได้อย่างเต็มที่ รวมถึงโฟลเดอร์ย่อยด้วย
ฟังก์ชัน Grant-RoamingProfilesAccess
นี่คือรหัส:
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
# Web:
# https://sid-500.com
[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 {
takeown /f $_.FullName /a
icacls $_.Fullname /grant "administrators:(OI)(CI)F" /t
}
}
ทำให้มันถาวร
คัดลอกโค้ดนี้ลงในเซสชัน PowerShell ISE ของคุณแล้วเรียกใช้โค้ด จากนั้นพิมพ์คำสั่งและสนุกกับมัน หรือดาวน์โหลดได้ที่นี่:
ให้สิทธิ์-RoamingProfilesAccess
หากคุณต้องการทำให้ฟังก์ชันพร้อมใช้งานอย่างถาวร เพื่อให้ฟังก์ชันนั้นอยู่ที่นั่นทุกครั้งที่คุณเริ่ม PowerShell คุณต้องสร้างโฟลเดอร์ใน C:\Program Files\WindowsPowerShell\Modules ตั้งชื่อให้ว่า Grant-RoamingProfilesAccess จากนั้นบันทึกโค้ดเป็นไฟล์ .psm1 ในโฟลเดอร์นั้น ภาพหน้าจอด้านล่างจะช่วยคุณได้



