সম্বন্ধে সাহায্য! পুনঃনির্দেশিত ফোল্ডার / হোম ডিরেক্টরিগুলির জন্য অনুমতিগুলির একটি দুঃস্বপ্ন পেয়েছি


22

আমার নতুন নিয়োগকর্তার শত শত ব্যবহারকারীর জন্য ফোল্ডার পুনর্নির্দেশের সেটআপ রয়েছে এবং যে ব্যক্তি এটি সেটআপ করেছেন তিনি সত্যিই জানেন না যে তিনি কী করছেন। ফলস্বরূপ, পুনঃনির্দেশিত ফোল্ডার / হোম ডিরেক্টরিতে অনুমতিগুলির সেরা অনুশীলনগুলি অনুসরণ করা হয়নি।

লোকেরা তাদের পুনঃনির্দেশিত ফোল্ডার অবস্থানগুলিতে অ্যাক্সেস করার Full Controlঅনুমতি দেওয়ার পরিবর্তে Everyoneমূল ডিরেক্টরিতে ("হোম") এ অনুমতিগুলি (এনটিএফএস অনুমতিগুলি, "ভাগ" না করার অনুমতি অবশ্যই প্রয়োগ করা) এবং এটি নীচে সমস্ত সাবফোল্ডার এবং ফাইলগুলির নীচে প্রচার করা ছিল The ।

কি সম্ভবত ভুল হতে পারে, তাই না? এটি এমন নয় যে সিইওর তার My Documentsফোল্ডারে গোপনীয় তথ্য রয়েছে , বা যে কেউ ক্রিপ্টোওয়াল দ্বারা সংক্রামিত হয়ে অন্য সবার ফাইল এনক্রিপ্ট করতে চলেছে। রাইট?

সুতরাং, যাইহোক, এখন যেহেতু ক্রিপ্টোওয়াল সংক্রমণটি সরিয়ে ফেলা হয়েছে এবং ব্যাকআপগুলি পুনরুদ্ধার করা হয়েছে, বেশ কিছু লোক আমাদের বর্তমান অনুমতিগুলি কিছুটা ভয়াবহর সাথে প্রতিস্থাপন করতে চাইবে, এবং আমি চাইব যে বেশিরভাগ ক্ষেত্রে অনুমতি সংলাপগুলির আশেপাশে ক্লিক করতে হবে না to শত ফোল্ডার

পাওয়ারশেল কীভাবে আমার জন্য এই সমস্যাটি সমাধান করতে পারে এবং জীবনকে আবার জীবনযাপনের উপযোগী করে তুলতে পারে?

উত্তর:


18

আমাকে System.Security.Principal... শ্রেণি বা পদ্ধতি বা যা কিছু তা উল্লেখ করার জন্য জেএসকোটকে ধন্যবাদ জানাতে , কিছু পাওয়ারশেল ব্যবহারকারী হোম ডিরেক্টরিগুলির জন্য উপযুক্ত যেগুলির সাথে একগুচ্ছ সাবফোল্ডারগুলির এসিএলগুলি প্রতিস্থাপন করবে:

$Root = "Path to the root folder that holds all the user home directories"

$Paths = Get-ChildItem $Root | Select-Object -Property Name,FullName

$DAAR = New-Object system.security.accesscontrol.filesystemaccessrule("MyDomain\Domain Admins","FullControl","ContainerInherit, ObjectInherit","None","Allow")
#Domain Admin Access Rule.

$SysAR = New-Object system.security.accesscontrol.filesystemaccessrule("SYSTEM","FullControl","ContainerInherit, ObjectInherit","None","Allow")
#SYSTEM Access Rule.

foreach ($Folder in $Paths)
{

    Write-Host "Generating ACL for $($folder.FullName) ... "
    #For error handling purposes - not all folders will map to a user of the exact same name, this makes them easier to handle when viewing the output.

    $ACL = New-Object System.Security.AccessControl.DirectorySecurity
    #Creates a blank ACL object to add access rules into, also blanks out the ACL for each iteration of the loop.

    $objUser = New-Object System.Security.Principal.NTAccount("MyDomain\​"+$folder.name)
    #Creating the right type of User Object to feed into our ACL, and populating it with the user whose folder we're currently on.

    $UserAR = New-Object system.security.accesscontrol.filesystemaccessrule( $objuser ,"FullControl","ContainerInherit, ObjectInherit","None","Allow")
    #Access Rule for the user whose folder we're dealing with during this iteration.

    $acl.SetOwner($objUser)
    $acl.SetAccessRuleProtection($true, $false)
    #Change the inheritance/propagation settings of the folder we're dealing with

    $acl.SetAccessRule($UserAR)
    $acl.SetAccessRule($DAAR)
    $acl.SetAccessRule($SysAR)

    Write-Host "Changing ACL on $($folder.FullName) to:"
    $acl | fl
    #For error handling purposes - not all folders will map to a user of the exact same name, this makes them easier to handle when viewing the output.

    Set-Acl -Path $Folder.Fullname -ACLObject $acl

}

1
শীতল, এটি ধরে \"নিচ্ছে যে উদ্ধৃতি চিহ্নটি ছাড়ছে, এবং সিএসএস বিভ্রান্ত হয়েছে!
কানাডিয়ান লুক ম্যানিকা পুনরায় ইনস্টল করুন

3
@ কানাডিয়ানলুক ধন্যবাদ! আমি WTH ভাবছিলাম। সিএসএস ঠিক করার জন্য সেখানে একটি শূন্য-প্রস্থের স্থান নিক্ষেপ করলেন ... সুতরাং, যদি কেউ অনুলিপি-পাস্তা কপিরাইট করার আহ্বান করে তবে স্ল্যাশ এবং রেখায় উদ্ধৃতিটির মধ্যে একটি মুদ্রণযোগ্য অক্ষর রয়েছে যা u আপত্তিদাতা ঘোষণা করে।
আশাহীন N00b

2

পূর্ববর্তী উত্তরগুলি কাজ করবে না যদি "হোম ব্যবহারকারীদের একচেটিয়া অধিকার প্রদান করুন" দিয়ে হোম ফোল্ডার / পুনর্নির্দেশ ফোল্ডারগুলি সেট আপ করা হয়েছিল। এটি কারণ যখন এই বিকল্পটি নির্বাচিত হয় যা প্রস্তাবিত নয় , কেবল সিস্টেমে এবং ব্যবহারকারীদের ফোল্ডারের অধিকার রয়েছে। তারপরে আপনি ফোল্ডারের মালিকানা না নিয়ে পার্সগুলি (এমনকি প্রশাসক হিসাবেও) পরিবর্তন করতে পারবেন না।

মালিকানা গ্রহণ ব্যতীত এটি কাজ করার জন্য একটি পদ্ধতি। এটি একটি দ্বি-পদক্ষেপ প্রক্রিয়া।

একটি পাওয়ারশেল স্ক্রিপ্ট তৈরি করুন যা ফোল্ডার এবং সাবফোল্ডারগুলির পার্মসগুলি পরিবর্তন করতে আইসিএসিএলএস চালায়।

পাওয়ারফেল স্ক্রিপ্টটি কিকঅফ করতে পিএসেক্সেক চালান।

থেকে নেওয়া এবং সংশোধিত: https://mypkb.wordpress.com/2008/12/29/how-to-restore-ad प्रशासক-access-to-redireected-my-documents- folder/

1 পাওয়ারশেল স্ক্রিপ্ট তৈরি / অনুলিপি / চুরি করতে (পিএস 3.0 বা আরও ভাল প্রয়োজন)

#ChangePermissions.ps1
# CACLS rights are usually
# F = FullControl
# C = Change
# R = Readonly
# W = Write

$StartingDir= "c:\shares\users"   ##Path to root of users home dirs
$Principal="domain\username"    #or "administrators"
$Permission="F"

$Verify=Read-Host `n "You are about to change permissions on all" `
"files starting at"$StartingDir.ToUpper() `n "for security"`
"principal"$Principal.ToUpper() `
"with new right of"$Permission.ToUpper()"."`n `
"Do you want to continue? [Y,N]"

if ($Verify -eq "Y") {

foreach ($FOLDER in $(Get-ChildItem -path $StartingDir -directory -recurse)) {

$temp = $Folder.fullname
CACLS `"$temp`" /E /P `"${Principal}`":${Permission} >$NULL
#write-host $Folder.FullName 
}
}
  1. পিএসইএএসইসিইসি চালান, এটি সিস্টেমে অ্যাকাউন্ট হিসাবে কাজ করে এবং সেইজন্য ফোল্ডারে কেবলমাত্র সিস্টেমে এবং ব্যবহারকারীর অ্যাক্সেস রয়েছে তা পরিবর্তন করতে পারে। PSexec ইনস্টল করুন এবং চালান। https://technet.microsoft.com/en-us/sysinternals/bb897553.aspx

কমান্ড লাইন থেকে:

psexec -s -i powershell -noexit "& 'C:\Path\To\ChangePermissions.ps1'"
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.