Computer >> कंप्यूटर >  >> प्रणाली >> Windows Server

पावरशेल के साथ एनटीएफएस अनुमतियां कैसे प्रबंधित करें?

विंडोज़ में फ़ाइलों या फ़ोल्डरों तक पहुंच प्रबंधित करने के लिए, एक विशेष एसीएल (एक्सेस कंट्रोल लिस्ट) को एनटीएफएस फाइल सिस्टम ऑब्जेक्ट (एक फाइल या फ़ोल्डर) को सौंपा गया है। ऑब्जेक्ट का एसीएल उपलब्ध संचालन (अनुमतियों) को परिभाषित करता है जो उपयोगकर्ता या समूह फाइल सिस्टम ऑब्जेक्ट के साथ कर सकते हैं। ज्यादातर मामलों में, विंडोज़ प्रशासक फाइल एक्सप्लोरर ग्राफिक इंटरफेस (फाइल/फोल्डर गुण -> सुरक्षा टैब) या icacls कंसोल टूल का उपयोग फाइलों या फ़ोल्डरों पर एनटीएफएस अनुमतियों को प्रबंधित करने के लिए करते हैं। इस लेख में हम देखेंगे कि PowerShell cmdlets का उपयोग करके NTFS ऑब्जेक्ट पर अनुमतियों को कैसे प्रबंधित किया जाए। आप इन कमांड का उपयोग अपनी स्क्रिप्ट में या विंडोज फाइल सर्वर और वर्कस्टेशन पर एनटीएफएस एक्सेस अनुमतियों के प्रबंधन को स्वचालित करने के लिए कर सकते हैं।

पावरशेल के साथ एनटीएफएस अनुमतियां कैसे प्रबंधित करें?

गेट-एसीएल और सेट-एसीएल:एनटीएफएस एसीएल को प्रबंधित करने के लिए अंतर्निहित पावरशेल सीएमडीलेट्स

PowerShell v5 (Windows 10/Windows Server 2016) में, ACL को प्रबंधित करने के लिए दो अलग-अलग अंतर्निहित cmdlets हैं (Microsoft.PowerShell.Security का एक भाग) मॉड्यूल):

  • गेट-एसीएल — NTFS फ़ाइल सिस्टम पर विशिष्ट ऑब्जेक्ट के लिए वर्तमान ACL प्राप्त करने की अनुमति देता है;
  • सेट-एसीएल - वर्तमान वस्तु ACL को जोड़ने/बदलने के लिए उपयोग किया जाता है।

हम इन बिल्ट-इन cmdlets पर विस्तार से विचार नहीं करेंगे, क्योंकि ज्यादातर मामलों में उनकी विशेषताएं वास्तविक कार्यों में NTFS अनुमतियों को प्रबंधित करने के लिए पर्याप्त नहीं हैं। आइए कुछ सामान्य उपयोग के मामलों पर ध्यान दें।

किसी फ़ोल्डर (फ़ाइल) के वर्तमान स्वामी और असाइन की गई NTFS अनुमतियों की सूची प्राप्त करने के लिए, कमांड चलाएँ:

get-acl C:\docs\ |fl

पावरशेल के साथ एनटीएफएस अनुमतियां कैसे प्रबंधित करें?

Path : Microsoft.PowerShell.Core\FileSystem::C:\docs\
Owner : CORP\asmith
Group : CORP\Domain Users
Access : PC-7L7JAK6\root Allow ReadAndExecute, Synchronize
BUILTIN\Administrators Allow FullControl
NT AUTHORITY\SYSTEM Allow FullControl
BUILTIN\Users Allow ReadAndExecute, Synchronize
NT AUTHORITY\Authenticated Users Allow Modify, Synchronize
NT AUTHORITY\Authenticated Users Allow -536805376
Audit :
Sddl : O:S-1-5-21-2950832418-2342342341-4040681116-234234G:DUD:AI(A;OICI;0x1200a9;;;S-1-5-21-2601781602-2342342341-6543210895-1001)(A;OICIID;FA;;;BA)(A;OICIID;FA;;;SY)(A;OICIID;0x1200a9;;;BU)(A;ID;0x1301bf;;;AU)(A;OICIIOID;SDGXGWGR;;;AU)
जैसा कि आप देख सकते हैं, वर्तमान अनुमतियां SDDl . के रूप में भी प्रदर्शित होती हैं स्ट्रिंग - हमने इस एक्सेस विवरण प्रारूप को विंडोज सर्विस अनुमतियां सेट करने वाले आलेख में संक्षेप में देखा।

आप NTFS अनुमतियों की सूची को केवल एक स्पष्ट प्रारूप में प्रदर्शित कर सकते हैं:

(get-acl C:\docs\).access

पावरशेल के साथ एनटीएफएस अनुमतियां कैसे प्रबंधित करें?

आप वर्तमान NTFS अनुमतियों को एक NTFS फ़ोल्डर (ऑब्जेक्ट) से कॉपी कर सकते हैं और उन्हें दूसरे पर लागू कर सकते हैं:

Get-Acl e:\old_docs | Set-Acl C:\docs

ऐसा करने के लिए, खाते को वस्तु का स्वामी होना चाहिए और टेक ओनरशिप विशेषाधिकार होना चाहिए।

सेट-एसीएल का उपयोग करने की मुख्य समस्या यह है कि cmdlet हमेशा संसाधन स्वामी को बदलने का प्रयास करता है, भले ही आपको केवल NTFS अनुमतियों को बदलने की आवश्यकता हो। तो किसी ऑब्जेक्ट पर अनुमतियां जोड़ने के लिए, आपको निम्नलिखित जटिल स्क्रिप्ट का उपयोग करना होगा:

$path = "c:\docs "
$user = "corp\DSullivan"
$Permiss = "Read, ReadAndExecute, ListDirectory"
$InheritSettings = "Containerinherit, ObjectInherit"
$PropogationSettings = "None"
$RuleType = "Allow"
$acl = Get-Acl $path
$perm = $user, $Permiss, $InheritSettings, $PropogationSettings, $RuleType
$rule = New-Object -TypeName System.Security.AccessControl.FileSystemAccessRule -ArgumentList $perm
$acl.SetAccessRule($rule)
$acl | Set-Acl -Path $path

किसी उपयोगकर्ता या समूह के लिए किसी फ़ोल्डर तक पहुँचने के लिए NTFS अनुमति को निकालने के लिए:
$path = "c:\docs"
$acl = Get-Acl $path
$rules = $acl.Access | where IsInherited -eq $false
$targetrule = $rules | where IdentityReference -eq "corp\DSullivan"
$acl.RemoveAccessRule($targetrule)
$acl | Set-Acl -Path $path

PowerShell से फ़ोल्डर वंशानुक्रम को अक्षम करने के लिए:

$path = 'C:\docs
$acl = Get-ACL -Path $path
$acl.SetAccessRuleProtection($True, $True) # the first $True shows if the folder is protected, the second $True specifies if the current NTFS permissions have to be copied
Set-Acl -Path $path -AclObject $acl

साथ ही, गेट-एसीएल और सेट-एसीएल का उपयोग करके आप वस्तुओं के लिए एनटीएफएस ऑडिट सेटिंग्स का प्रबंधन कर सकते हैं (लेख देखें कि साझा फ़ोल्डर से फ़ाइलों को किसने हटाया है) या एडी में वर्तमान ओयू प्रत्यायोजित अनुमतियों के बारे में।

NTFSSecurity PowerShell मॉड्यूल के साथ फ़ाइल अनुमतियां प्रबंधित करना

जैसा कि मैंने पहले ही बताया, फ़ाइल सिस्टम ऑब्जेक्ट को प्रबंधित करने के लिए अंतर्निहित PowerShell cmdlets बहुत सुविधाजनक नहीं है। विंडोज़ में फ़ाइलों और फ़ोल्डरों पर एनटीएफएस अनुमतियों को प्रबंधित करने के लिए आपको पावरशेल गैलरी से एक अलग मॉड्यूल का बेहतर उपयोग करना चाहिए - NTFSSecurity . आप Install-Module -Name NTFSSecurity का उपयोग करके NTFSSecurity मॉड्यूल (4.2.6, वर्तमान में) का नवीनतम संस्करण स्थापित कर सकते हैं। कमांड या इसे मैन्युअल रूप से डाउनलोड करें (लिंक)। इसे मैन्युअल रूप से स्थापित करते समय, आपको बस मॉड्यूल संग्रह को C:\Windows\System32\WindowsPowerShell\v1.0\Modules\NTFSSecurity  में निकालने की आवश्यकता है (डाउनलोड की गई फ़ाइल को अनब्लॉक करना न भूलें)।

अपने PowerShell सत्र में NTFSSecurity मॉड्यूल आयात करें:

Import-Module NTFSSecurity

मॉड्यूल में उपलब्ध आदेशों की सूची प्रदर्शित करें (36 cmdlets):

Get-Command -Module NTFSSecurity

पावरशेल के साथ एनटीएफएस अनुमतियां कैसे प्रबंधित करें?

फ़ोल्डर की वर्तमान NTFS अनुमतियों की सूची बनाएं:
Get-Item 'c:\docs' | Get-NTFSAccess

जैसा कि आप देख सकते हैं, वर्तमान अनुमतियां अधिक सुविधाजनक रूप में दिखाई जाती हैं।

पावरशेल के साथ एनटीएफएस अनुमतियां कैसे प्रबंधित करें?

किसी उपयोगकर्ता या समूह को किसी विशिष्ट फ़ोल्डर पर पूर्ण नियंत्रण की अनुमति देने के लिए, यह आदेश चलाएँ:
Add-NTFSAccess -Path C:\docs -Account 'CORP\RShelby','BUILTIN\Administrators' -AccessRights 'Fullcontrol' -PassThru

युक्ति . डिफ़ॉल्ट रूप से, NTFSSecurity cmdlets कोई डेटा नहीं लौटाते हैं। -PassThru . का उपयोग करें कमांड को निष्पादित करने के बाद नए एसीएल प्रदर्शित करने के लिए पैरामीटर।

केवल शीर्ष फ़ोल्डर स्तर पर अनुमतियाँ देने के लिए और नेस्टेड ऑब्जेक्ट (केवल फ़ोल्डर) पर अनुमतियाँ बदलने के लिए, इस कमांड का उपयोग करें:

Add-NTFSAccess c:\docs\public -Account corp\LMurkowski -AccessRights Modify -AppliesTo ThisFolderOnly

असाइन की गई NTFS अनुमतियों को हटाने के लिए:

Remove-NTFSAccess -Path C:\DOCS -Account 'corp\LMurkowski' -AccessRights FullControl -PassThru

अगला आदेश दिए गए खाते के लिए फ़ोल्डर में सभी नेस्टेड ऑब्जेक्ट्स के लिए अनुमतियों को हटा देगा (विरासत में मिली अनुमतियां छोड़ दी जाएंगी):

Get-ChildItem -Path C:\docs -Recurse | Get-NTFSAccess -Account 'corp\LMurkowski' -ExcludeInherited |Remove-NTFSAccess -PassThru

निम्न आदेश के साथ, आप व्यवस्थापक खाते को फ़ोल्डर में सभी नेस्टेड ऑब्जेक्ट का स्वामी बना सकते हैं:

Get-ChildItem -Path C:\docs -Recurse -Force | Set-NTFSOwner -Account 'Administrator'

मैन्युअल रूप से फ़ोल्डर ऑब्जेक्ट्स को असाइन की गई सभी अनुमतियों को साफ़ करने के लिए (विरासत में मिली अनुमतियां नहीं हटाई जाएंगी):

Get-ChildItem -Path C:\docs -Recurse -Force | Clear-NTFSAccess

किसी फ़ोल्डर में सभी ऑब्जेक्ट के लिए NTFS इनहेरिटेंस सक्षम करने के लिए:

Get-ChildItem -Path C:\docs -Recurse -Force | Enable-NTFSAccessInheritance

इनहेरिट की गई अनुमतियों को छोड़कर मैन्युअल रूप से असाइन की गई सभी अनुमतियों को प्रदर्शित करने के लिए:

dir C:\docs | Get-NTFSAccess –ExcludeInherited

आप विशिष्ट खाते को दी गई अनुमतियों को प्रदर्शित कर सकते हैं (इसे प्रभावी अनुमतियों के साथ भ्रमित न करें, हम बाद में उन पर चर्चा करेंगे):

dir C:\docs | Get-NTFSAccess -Account woshub\RShelby

पावरशेल के साथ एनटीएफएस प्रभावी अनुमतियां कैसे देखें?

आप प्रभावी NTFS अनुमतियां देख सकते हैं Get-EffectiveAccess . का उपयोग करके किसी विशिष्ट फ़ाइल या फ़ोल्डर के लिए सीएमडीलेट। मान लीजिए, आपने कई एडी सुरक्षा समूहों को कुछ फ़ोल्डर तक पहुंच प्रदान की है और आप जानना चाहते हैं कि विशिष्ट उपयोगकर्ता खाता (या एसआईडी) फाइल फ़ोल्डर तक पहुंच सकता है या नहीं। उपयोगकर्ता खाते से संबंधित एडी समूहों के सभी सदस्यों को सूचीबद्ध किए बिना आप इसे कैसे कर सकते हैं? यह वह स्थिति है जब प्रभावी NTFS अनुमतियाँ देखना बहुत उपयोगी होता है। उदाहरण के लिए, आपको डोमेन खाते confroom के फ़ोल्डर में सभी नेस्टेड निर्देशिकाओं पर प्रभावी अनुमतियां देखने की आवश्यकता है ।

Get-ChildItem -Path c:\docs -Recurse -Directory | Get-NTFSEffectiveAccess -Account 'corp\confroom’ | select Account, AccessControlType, AccessRights, FullName का चयन करें

या आप किसी निश्चित फ़ाइल के लिए प्रभावी अनुमतियाँ देख सकते हैं:

Get-Item -Path 'C:\docs\annual_report2019.xlsx' | Get-NTFSEffectiveAccess -Account 'corp\confroom' | Format-List

पावरशेल के साथ एनटीएफएस अनुमतियां कैसे प्रबंधित करें?

फ़ाइल सिस्टम ऑब्जेक्ट पर वर्तमान प्रभावी उपयोगकर्ता अनुमतियाँ पहुँच अधिकार . में निर्दिष्ट हैं फ़ील्ड.


  1. Chrome में कम समय में फ्लैश अनुमतियां कैसे प्रबंधित करें

    फ्लैश फाइलें अक्सर मैलवेयर और अन्य हमलों की चपेट में आ जाती हैं। इसलिए, HTML को प्राथमिकता दी जाती है क्योंकि यह ज्यादातर चीजों में फ्लैश से बेहतर है। Google क्रोम इनबिल्ट फ्लैश के साथ आता है, लेकिन यह डिफ़ॉल्ट रूप से सक्षम नहीं है। हालाँकि, आप फ़्लैश फ़ाइलों को तब तक नहीं छोड़ सकते, जब तक कि वे उन

  1. Microsoft OneDrive के साथ अपनी फ़ाइलें कैसे प्रबंधित करें?

    Google के समान जिसके पास Google ड्राइव और Apple है जिसके पास iCloud है, Microsoft OneDrive (पहले स्काईड्राइव के रूप में जाना जाता है) का मालिक है। क्लाउड स्टोरेज सेवाएं इन दिनों बहुत प्रचलित हैं, क्योंकि लोग और व्यवसाय महंगे हार्डवेयर पर भरोसा करने के लिए अपनी आवश्यकताओं को कम कर रहे हैं और उन्हें क

  1. Windows Tags के साथ फाइल और फोल्डर को कैसे प्रबंधित करें

    सिस्टम से पुरानी फाइलों की खोज करना कोयले के तहखाने में काली बिल्ली की तलाश करने जैसा है। जैसे, मैंने उन पिछले साल की तस्वीरों को दक्षिण अमेरिका में छुट्टियां मनाने से कहाँ बचाया? या मैंने 2018 में लिखी गई रिपोर्ट को क्या नाम दिया? जबकि विंडोज 10 एक शक्तिशाली सर्च इनबिल्ट के साथ आता है, विशेष रूप स