অ্যাক্টিভ ডিরেক্টরি ব্যবহারকারী এবং কম্পিউটারগুলির দ্বারা নির্বাচিত ডিফল্ট ইউপিএন প্রত্যয়টি পরিবর্তন করতে আমি সচেতন এমন কোনও নথিভুক্ত প্রক্রিয়া নেই। আমি বিশ্বাস করি যে আপনার বনভূমিতে "সিএন = পার্টিশন, সিএন = কনফিগারেশন, ..." এ নির্দিষ্ট করা ডোমেনের জন্য "ক্রোনারিফ" অবজেক্টে সংজ্ঞায়িত "ক্যানোনিকালনেম" অ্যাট্রিবিউটের প্রথম অংশটি গ্রহণ করা সরঞ্জামটি শক্ত-ওয়্যার্ড।
এডি ব্যবহারকারী এবং কম্পিউটারগুলি কেবল এটির জন্য কঠোর ওয়্যার্ড হতে পারে। আপনি যদি অন্য উপায়ে ব্যবহারকারীর অ্যাকাউন্টগুলি তৈরি করেন (উদাহরণস্বরূপ "নেট ব্যবহারকারী ... / যোগ করুন") তবে কোনও ব্যবহারকারীর প্রিন্সিপাল নেম বৈশিষ্ট্যটি অ্যাকাউন্টে বরাদ্দ করা হবে না। ডিফল্ট ইউপিএন প্রত্যয়টি সত্যই এডি ব্যবহারকারী এবং কম্পিউটারে কেবলমাত্র একটি ডিফল্ট, ডিরেক্টরি সার্ভিসের নিজস্ব কোনও ডিফল্ট নয়।
আপনি যদি মাইক্রোসফ্ট কে বি নিবন্ধের কোনও স্ক্রিপ্ট সহ চালনা করেন যা আপনাকে প্রোগ্রামালিকভাবে ডিফল্ট ইউপিএন প্রত্যয় ( http://support.microsoft.com/default.aspx?scid=kb ; en-us ; Q269441 ) কীভাবে প্রাপ্ত করবেন তা দেখায় , সাবধান থাকুন যে স্ক্রিপ্টটিতে বেশ কয়েকটি সিনট্যাক্স ত্রুটি রয়েছে (17 এবং 32 লাইনগুলি ত্রুটিযুক্ত এবং 32 লাইনে srrNamingContext উচিত strNamingContext)। আমি এই পোস্টের শেষে একটি সামান্য উন্নতি সহ একটি স্থির সংস্করণ অন্তর্ভুক্ত করব (এটি আপনাকে পৃথক ওউগুলির নাম দেখায় যেখানে অতিরিক্ত ইউপিএন প্রত্যয় সংজ্ঞায়িত করা যেতে পারে)।
আমি আমার চেয়ে আরও "জ্ঞাত" কারও দ্বারা সংশোধন করতে চাই তবে এডি ব্যবহারকারী এবং কম্পিউটারকে অন্যরকমভাবে কাজ করার কোনও উপায় দেখছি না।
' --- Get the naming contexts ----
Set RootDSE = GetObject("LDAP://RootDSE")
strNamingContext = RootDSE.Get("defaultNamingContext")
strConfigContext = RootDSE.Get("configurationNamingContext")
' -- Get the current domain name --
Set oDomain = GetObject("LDAP://" + strNamingContext)
strDomainName = oDomain.Get("name")
Set oPartition = GetObject("LDAP://CN=Partitions," & strConfigContext)
'-- Get the DNS name of the domain --
oDomain.GetInfoEx Array("canonicalName"), 0
strCanonical = oDomain.Get("canonicalName")
strDNSName = Left(strCanonical, Len(strCanonical) - 1) 'clip off "/"
'-- Display the default UPN suffix
wscript.echo strDNSName
'-- Get the defined upnSuffixes --
suffixes = oPartition.GetEx("UPNSuffixes")
For Each upnSuffix In suffixes
wscript.echo upnSuffix
Next
Set RootDSE = Nothing
Set oDomain =Nothing
Set oPartition = Nothing
' -- Get the upnsuffixes defined on organizational units --
Set ADOconn = CreateObject("ADODB.Connection")
Set ADOcom = CreateObject("ADODB.Command")
ADOconn.Provider = "ADsDSOObject"
bstrADOQueryString = "<LDAP://" + strNamingContext + ">;(objectcategory=organizationalUnit);upnsuffixes,ADsPath;subtree"
wscript.echo bstrADOQueryString
ADOconn.Open
ADOcom.ActiveConnection = ADOconn
ADOcom.CommandText = bstrADOQueryString
ADOcom.Properties("Page Size") = 99
Set objRS = ADOcom.Execute
While Not objRS.EOF
If Not IsNull(objRS.Fields("upnSuffixes")) Then
upnsuffixes = objRS.Fields("upnSuffixes")
For Each upnsuffix In upnsuffixes
wscript.echo objRS.Fields("adsPath") & " - Suffix: " & upnsuffix
Next
End If
objRS.MoveNext
Wend
Set objRS = Nothing
Set ADOcom = Nothing
Set ADOconn = Nothing