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

एक्टिव डायरेक्टरी में UserAccountControl विशेषता मानों को परिवर्तित करना

UserAccountControl एक्टिव डायरेक्टरी में उपयोगकर्ता और कंप्यूटर ऑब्जेक्ट्स की सबसे महत्वपूर्ण विशेषताओं में से एक है। यह विशेषता AD डोमेन में खाते की स्थिति निर्धारित करती है: खाता सक्रिय है या लॉक, अगले लॉगऑन पर पासवर्ड बदलने का विकल्प सक्षम है या नहीं, उपयोगकर्ता अपना पासवर्ड बदल सकते हैं या नहीं, आदि। हालांकि, सभी एडमिनिस्ट्रेटर्स पूरी तरह से नहीं जानते कि UserAccountControl विशेषता कैसे काम करती है और AD में इसका उपयोग किस लिए किया जाता है।

एक्टिव डायरेक्टरी में UserAccountControl विशेषता/फ्लैग

एक्टिव डायरेक्टरी यूजर्स एंड कंप्यूटर्स (ADUC, dsa.msc) कंसोल में किसी भी AD खाते के गुण खोलें और खाता टैब पर जाएं। खाता विकल्प अनुभाग में उपयोगकर्ता विशेषताओं के समूह पर ध्यान दें। यहां आप निम्न विकल्प देख सकते हैं:

  • उपयोगकर्ता को अगले लॉगऑन पर पासवर्ड बदलना होगा;
  • उपयोगकर्ता पासवर्ड नहीं बदल सकता;
  • पासवर्ड कभी समाप्त नहीं होता; डिफ़ॉल्ट रूप से, AD में डोमेन पासवर्ड नीति के लिए उपयोगकर्ता को समय-समय पर अपना पासवर्ड बदलना आवश्यक होता है।
  • पासवर्ड को प्रतिवर्ती एन्क्रिप्शन का उपयोग करके संग्रहीत करें (सुरक्षित नहीं);
  • खाता अक्षम है;
  • इंटरैक्टिव लॉगऑन के लिए स्मार्ट कार्ड आवश्यक है;
  • खाता संवेदनशील है और इसे प्रत्यायोजित नहीं किया जा सकता;
  • इस खाते के लिए Kerberos DES एन्क्रिप्शन प्रकारों का उपयोग करें;
  • यह खाता Kerberos AES 128/256-बिट एन्क्रिप्शन का समर्थन करता है;
  • Kerberos पूर्व-प्रमाणीकरण की आवश्यकता नहीं है।

इनमें से प्रत्येक उपयोगकर्ता खाता विशेषता अनिवार्य रूप से एक बिट मान (फ्लैग) है जो या तो 1 (True) या 0 (False) हो सकता है। हालांकि, ये मान अलग-अलग AD विशेषताओं के रूप में संग्रहीत नहीं होते हैं, इसके बजाय UserAccountControl विशेषता का उपयोग किया जाता है।

उपरोक्त निर्दिष्ट सभी विकल्पों का कुल मान UserAccountControl विशेषता के मान में संग्रहीत होता है। इन सभी विकल्पों को अलग-अलग उपयोगकर्ता विशेषताओं में संग्रहीत करने के बजाय, एक ही एक्टिव डायरेक्टरी विशेषता का उपयोग किया जाता है। UserAccountControl एक बिटमास्क है, जिसका प्रत्येक बिट एक अलग फ्लैग है और इसका मान चालू (True) या बंद (False) होता है। सक्षम खाता विकल्पों के आधार पर, एक उपयोगकर्ता के पास अलग-अलग UserAccountControl विशेषता मान होंगे। आप संबंधित विशेषता संपादक टैब में या पावरशेल में Get-ADUser cmdlet का उपयोग करके विशेषता का वर्तमान मान देख सकते हैं:

get-aduser jkelly -properties *|select name,UserAccountControl | ft

इस उदाहरण में, विशेषता का मान 0x10202 (दशमलव मान 66050) है। इन संख्याओं का क्या अर्थ है?

नीचे AD खातों के उपलब्ध फ्लैग्स की तालिका दी गई है। प्रत्येक फ्लैग एक निश्चित UserAccountControl बिट से मेल खाता है, और UserAccountControl मान सभी फ्लैग्स के योग के बराबर होता है।

UserAccountControl फ्लैगHEX मानदशमलव मान
SCRIPT (लॉगऑन स्क्रिप्ट चलाना)0x00011
ACCOUNTDISABLE (खाता अक्षम है)0x00022
HOMEDIR_REQUIRED (होम फोल्डर आवश्यक है)0x00088
LOCKOUT (खाता लॉक है)0x001016
PASSWD_NOTREQD (पासवर्ड आवश्यक नहीं)0x002032
PASSWD_CANT_CHANGE (उपयोगकर्ता को पासवर्ड बदलने से रोकें)0x004064
ENCRYPTED_TEXT_PWD_ALLOWED (पासवर्ड को प्रतिवर्ती एन्क्रिप्शन का उपयोग करके संग्रहीत करें)0x0080128
TEMP_DUPLICATE_ACCOUNT (एक उपयोगकर्ता का खाता जिसका प्राथमिक खाता दूसरे डोमेन में है)0x0100256
NORMAL_ACCOUNT (एक डिफ़ॉल्ट खाता, एक विशिष्ट सक्रिय खाता)0x0200512
INTERDOMAIN_TRUST_ACCOUNT0x08002048
WORKSTATION_TRUST_ACCOUNT0x10004096
SERVER_TRUST_ACCOUNT0x20008192
DONT_EXPIRE_PASSWORD (उन उपयोगकर्ता खातों के पासवर्ड जो समाप्त नहीं होते)0x1000065536
MNS_LOGON_ACCOUNT0x20000131072
SMARTCARD_REQUIRED (नेटवर्क पर लॉग ऑन करने के लिए, उपयोगकर्ता को स्मार्ट कार्ड की आवश्यकता होती है)0x40000262144
TRUSTED_FOR_DELEGATION0x80000524288
NOT_DELEGATED0x1000001048576
USE_DES_KEY_ONLY0x2000002097152
DONT_REQ_PREAUTH (Kerberos पूर्व-प्रमाणीकरण आवश्यक नहीं है)0x4000004194304
PASSWORD_EXPIRED (उपयोगकर्ता का पासवर्ड समाप्त हो गया है)0x8000008388608
TRUSTED_TO_AUTH_FOR_DELEGATION0x100000016777216
PARTIAL_SECRETS_ACCOUNT0x0400000067108864

उदाहरण के लिए, एक नियमित खाता है जिसके लिए पासवर्ड बदलने की आवश्यकता अक्षम है। userAccountControl मान की गणना इस प्रकार की जाती है:

NORMAL_ACCOUNT (512) + DONT_EXPIRE_PASSWORD (65536) = 66048

तदनुसार, मेरे उदाहरण से userAccountControl का मान (66050) निम्न प्रकार से प्राप्त हुआ:

NORMAL_ACCOUNT (512) + DONT_EXPIRE_PASSWORD (65536) + ACCOUNTDISABLE (2) = 66050

एक अक्षम उपयोगकर्ता खाते का userAccountControl मान 514 होता है:

(NORMAL_ACCOUNT (512)+ ACCOUNTDISABLE (2) = 514

विशिष्ट डोमेन ऑब्जेक्ट्स के लिए डिफ़ॉल्ट UserAccountControl मान:

  • एक नियमित AD उपयोगकर्ता: 0x200 (512);
  • एक डोमेन कंट्रोलर: 0x82000 (532480);
  • एक वर्कस्टेशन/सर्वर: 0x1000 (4096)।

आप एक निश्चित useraccountcontrol मान वाले AD ऑब्जेक्ट्स का चयन करने के लिए LDAP फिल्टर्स का उपयोग कर सकते हैं। उदाहरण के लिए, सभी सक्रिय (सामान्य) खातों को प्रदर्शित करने के लिए:

Get-ADUser -Properties * -ldapFilter "(useraccountcontrol=512)"

सभी अक्षम उपयोगकर्ता खातों की सूची प्रदर्शित करें:

Get-ADUser -Properties * -ldapFilter "(useraccountcontrol=514)"

गैर-समाप्त होने वाले पासवर्ड विकल्प वाले खातों की सूची:

Get-ADUser -Properties * -ldapFilter "(useraccountcontrol=66048)"

आप तालिका से आवश्यक बिट्स को जोड़ सकते हैं और कमांड का उपयोग करके AD ऑब्जेक्ट्स का चयन कर सकते हैं:

$UserAccountControl_hex= 0x10000 + 0x0080 + 0x200000
Get-ADUser -Filter {UserAccountControl -band$UserAccountControl_hex}

पावरशेल स्क्रिप्ट के साथ UserAccountControl मानों को डिकोड करना

इसे और सुविधाजनक बनाने के लिए, मैं UserAccountControl बिटमास्क के मान को मानव-पठनीय रूप में स्वचालित रूप से परिवर्तित करने के लिए एक टूल चाहता हूँ। आइए एक सरल पावरशेल फ़ंक्शन लिखने का प्रयास करें जो UserAccountControl विशेषता के दशमलव मान को लेता है और सक्षम खाता विकल्पों की सूची लौटाता है। चूंकि UserAccountControl एक बिटमास्क है, आप प्रत्येक बिट को एक टेक्स्ट विवरण असाइन कर सकते हैं।

मैंने UserAccountControl मान को पठनीय रूप में परिवर्तित करने के लिए DecodeUserAccountControl पावरशेल फ़ंक्शन लिखा:

Function DecodeUserAccountControl ([int]$UAC)
{
$UACPropertyFlags = @(
"SCRIPT",
"ACCOUNTDISABLE",
"RESERVED",
"HOMEDIR_REQUIRED",
"LOCKOUT",
"PASSWD_NOTREQD",
"PASSWD_CANT_CHANGE",
"ENCRYPTED_TEXT_PWD_ALLOWED",
"TEMP_DUPLICATE_ACCOUNT",
"NORMAL_ACCOUNT",
"RESERVED",
"INTERDOMAIN_TRUST_ACCOUNT",
"WORKSTATION_TRUST_ACCOUNT",
"SERVER_TRUST_ACCOUNT",
"RESERVED",
"RESERVED",
"DONT_EXPIRE_PASSWORD",
"MNS_LOGON_ACCOUNT",
"SMARTCARD_REQUIRED",
"TRUSTED_FOR_DELEGATION",
"NOT_DELEGATED",
"USE_DES_KEY_ONLY",
"DONT_REQ_PREAUTH",
"PASSWORD_EXPIRED",
"TRUSTED_TO_AUTH_FOR_DELEGATION",
"RESERVED",
"PARTIAL_SECRETS_ACCOUNT"
"RESERVED"
"RESERVED"
"RESERVED"
"RESERVED"
"RESERVED"
)
return (0..($UACPropertyFlags.Length) | ?{$UAC -bAnd [math]::Pow(2,$_)} | %{$UACPropertyFlags[$_]}) -join ” | ”
}

आइए जांचते हैं कि UserAccountControl का मान 66050 क्या दर्शाता है:

DecodeUserAccountControl 66050

जैसा कि आप देख सकते हैं, स्क्रिप्ट ने लौटाया कि इस उपयोगकर्ता के लिए निम्न फ्लैग्स सक्षम हैं:

ACCOUNTDISABLE | NORMAL_ACCOUNT | DONT_EXPIRE_PASSWORD

इसी स्क्रिप्ट का उपयोग Get-ADUser या Get-ADComputer cmdlets का उपयोग करके AD खातों के बारे में जानकारी प्राप्त करते समय UserAccountControl मानों को ऑन-द-फ्लाई डिकोड करने के लिए सुविधाजनक रूप में किया जा सकता है, उदाहरण के लिए:

get-aduser ms-pam -properties *|select @{n='UsrAcCtrl';e={DecodeUserAccountControl($_.userAccountControl)}}

ACCOUNTDISABLE | NORMAL_ACCOUNT | DONT_EXPIRE_PASSWORD

get-adcomputer rome-dc01 -properties *|select @{n='UsrAcCtrl';e={DecodeUserAccountControl($_.userAccountControl)}}

SERVER_TRUST_ACCOUNT | TRUSTED_FOR_DELEGATION

पावरशेल के साथ AD में UserAccountControl विशेषता कैसे सेट करें?

आप Set-ADUser और Set-ADComputer पावरशेल cmdlets का उपयोग करके एक्टिव डायरेक्टरी में UserAccountControl विशेषता के व्यक्तिगत विकल्पों को बदल सकते हैं। इन दोनों cmdlets के अलग-अलग विकल्प हैं, उदाहरण के लिए:

  • AccountNotDelegated
  • AllowReversiblePasswordEncryption
  • CannotChangePassword
  • ChangePasswordAtLogon
  • KerberosEncryptionType
  • PasswordNeverExpires
  • PasswordNotRequired
  • PrincipalsAllowedToDelegateToAccount

AD में कंप्यूटर खाता पासवर्ड कंप्यूटर और डोमेन के बीच विश्वास संबंध प्रदान करता है।

इसलिए, कुछ उपयोगकर्ता विकल्पों को बदलने के लिए, आपको निम्न कमांड का उपयोग करने की आवश्यकता है:

Set-ADUser jkelly –CannotChangePassword:$true -PasswordNeverExpires:$true

या आप सामान्य Set-UserAccountControl cmdlet का उपयोग कर सकते हैं:

Set-ADAccountControl -Identity jkelly -CannotChangePassword $True -PasswordNeverExpires $True

आप इन दोनों उपयोगकर्ता खाता विकल्पों को सीधे UserAccountControl विशेषता के माध्यम से सटीक मान सेट करके भी सक्षम कर सकते हैं:

Set-ADUser jkelly -Replace @{UserAccountControl= 66048}

  1. विंडोज 10 में उपयोगकर्ता स्विच करना सीखें: 6 प्रमाणित तकनीकें विंडोज 10 में उपयोगकर्ता स्विच करना सीखें: 6 प्रमाणित तकनीकें

    विंडोज 10 में फास्ट यूजर स्विचिंग क्या है? यदि आपके पीसी पर एक से अधिक उपयोगकर्ता खाते हैं तो फास्ट यूजर स्विचिंग का उपयोग करके आप किसी भी उपयोगकर्ता खाते से साइन आउट किए बिना विभिन्न उपयोगकर्ता खातों के बीच आसानी से स्विच कर सकते हैं। लेकिन ऐसा करने के लिए आपको विंडोज 10 में उपयोगकर्ता खातों के बीच

  1. Windows 10 पर Active Directory सक्षम करें: चरण-दर-चरण मार्गदर्शिका Windows 10 पर Active Directory सक्षम करें: चरण-दर-चरण मार्गदर्शिका

    Active Directory Windows Server Technical Preview का प्रबंधन करता है। यह एक ऐसा टूल है जिसका उपयोग प्रशासक नेटवर्क पर अनुमति देने और संसाधनों तक पहुंचने के लिए करते हैं। यह डिफ़ॉल्ट रूप से Windows PC पर इंस्टॉल नहीं होता है। हालांकि, आप इसे Microsoft की आधिकारिक वेबसाइट से ऑनलाइन प्राप्त कर सकते है

  1. एक्टिव डायरेक्ट्री में यूजर का अंतिम लॉगिन समय निर्धारित करें: चरण-दर-चरण गाइड एक्टिव डायरेक्ट्री में यूजर का अंतिम लॉगिन समय निर्धारित करें: चरण-दर-चरण गाइड

    यदि आप एक्टिव डायरेक्ट्री में किसी यूजर की अंतिम लॉगिन तिथि और समय देखना चाहते हैं, तो इस ट्यूटोरियल को पढ़ते रहें। इस ट्यूटोरियल में एक्टिव डायरेक्ट्री यूजर का अंतिम लॉगिन समय पता लगाने के दो तरीके हैं। हर बार जब कोई AD यूजर किसी भी वर्कस्टेशन से एक्टिव डायरेक्ट्री में लॉग ऑन करता है, तो सिस्टम लॉग