ค้นหาเว็บไซต์

ให้สิทธิ์ผู้ดูแลระบบในการควบคุมการเข้าถึงโฟลเดอร์โปรไฟล์โรมมิ่งอย่างสมบูรณ์ (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 ในโฟลเดอร์นั้น ภาพหน้าจอด้านล่างจะช่วยคุณได้

บทความที่เกี่ยวข้อง