সম্পাদনা # 3: রেফারেন্স ডকুমেন্টেশন আপডেট করা।
সম্পাদনা # 2: আরও একবার সম্পাদনা করা হচ্ছে কারণ আপনি যা করার চেষ্টা করছেন ঠিক তা করতে PS তে কিছু লিখেছিলাম। এটি নীচে।
আমি এগিয়ে যাচ্ছি এবং জোর দিয়ে যাচ্ছি যে বর্তমানে এটি করার কোনও পাওয়ারশেল ফ্রেন্ডলি (টিএম) উপায় নেই। তবে অবশ্যই আপনি যদি এখনও চান তবে এই অপশনগুলি দেখতে এলডিএপি ক্যোয়ারিকে প্রয়োজনীয় করতে পাওয়ারশেল ব্যবহার করতে পারেন। কোনও এডি সাইটের সাথে সম্পর্কিত প্রতিটি সার্ভারের অবজেক্টের options
বৈশিষ্ট্যটি পরীক্ষা করে দেখুন NTDS Settings
:
এটি হ'ল সঠিক গুণ, যা একটি বিটমাস্ক, যা repadmin.exe কাজ করে। Repadmin.exe এর কোডটিতে একটি বন্ধুত্বপূর্ণ বিটমাস্ক অনুবাদক রয়েছে। যেমন ADSIEdit এমএমসি স্ন্যাপ ইন। তবে আপনাকে পাওয়ারশেলের সেই বিটমাস্ক অনুবাদককে পুনরায় তৈরি করতে হবে।
উদাহরণস্বরূপ, Repadmin /options <DC> [{+|-} IS_GC]
একটি বৈধ কমান্ড, এবং এখন আমরা ঠিক জানি যে এটি কোন বিটটি পরিচালনা করে।
এখানে options
বৈশিষ্ট্যটির তুলনামূলকভাবে কৃপণ এমএসডিএন ডকুমেন্টেশন রয়েছে ।
options
বৈশিষ্ট্যে আরও ভাল এমএসডিএন ডকুমেন্টেশন ।
বিকল্প বৈশিষ্ট্য
একটি বিটফিল্ড, যেখানে বিটের অর্থ অবজেক্টক্লাস থেকে অবজেক্ট ক্লাসে পরিবর্তিত হয়। আন্তঃ সাইট-পরিবহন, এনটিডিএস-সংযোগ, এনটিডিএস-ডিএসএ, এনটিডিএস-সাইট-সেটিংস এবং সাইট লিঙ্ক অবজেক্টে ঘটতে পারে।
এবং এখানে পুরানো-স্কুল ম্যাচিং নিয়ম অপারেটরগুলি ব্যবহার করে বিকল্পগুলির সন্ধানের একটি উদাহরণ রয়েছে:
(&(objectCategory=nTDSDSA)(options:1.2.840.113556.1.4.803:=1))
এই ফিল্টারটি LDAP_MATCHING_RULE_BIT_AND ম্যাচিং রুল অপারেটর (1.2.840.113556.1.4.803) ব্যবহার করে বিকল্পগুলির বৈশিষ্ট্যের বিটমাস্কে লো-অর্ডার বিট রয়েছে এমন এনটিডিএসডিএসএ অবজেক্টগুলি সন্ধান করতে। নিম্ন-অর্ডার বিট, যা NtdDSAPA.h এ সংজ্ঞায়িত NTDSDSA_OPT_IS_GC ধ্রুবকের সাথে সম্পর্কিত, একটি গ্লোবাল ক্যাটালগ সার্ভারের nTDSDSA অবজেক্টটি সনাক্ত করে। মিলের বিধি সম্পর্কে আরও তথ্যের জন্য, ফিল্টার সিন্ট্যাক্স অনুসন্ধান করুন।
ওহ ছেলে কি মজা করে!
বিটমাস্কের জন্য কিছু অন্যান্য মান:
সুতরাং এর সাথে আপনার নিজের Get-ADSiteOptions
সিএমডলেটটি রোল করার পর্যাপ্ত তথ্য থাকা উচিত ... আপনি যদি চান তবে আমি আপনার জন্য একটি লিখতে চাই, খুব বিনয়ের জন্য ...;)
সম্পাদনা: এখানে মাইক্রোসফট লিঙ্ক, হয় বিশেষজ্ঞদের জন্য Repadmin , যা মধ্যে পার্থক্য বিস্তারিত options
এবং siteoptions
repadmin এর subcommands:
সাইটোপশনস সাবকম্যান্ড ব্যবহার করে আমরা এনটিডিএস সাইট সেটিংস অবজেক্টে সঞ্চিত বিকল্পগুলির বৈশিষ্ট্যটি পরিবর্তন করতে পারি।
যে বিটম্যাপ হিসাবে? এটি কি নথিভুক্ত? নিশ্চিত না. যদি আপনি FORCE_KCC_WHISTLER_BEHAVIOR
কোনও সাক্ষাত্কারের অর্থ বলতে পারেন তবে আমি আপনাকে ঘটনাস্থলে নিয়োগ দেব। আপনি এমডিমার, এমন শো অফ। ;)
সুতরাং কেবল সংক্ষেপে, প্রতিটি ডোমেন নিয়ামকের জন্য অবজেক্টের options
অ্যাট্রিবিউটটি CN=NTDS Settings
ডিসি-নির্দিষ্ট বিকল্পগুলির সাথে মিলিত হয়, অর্থাত্ repadmin <DC> /options
, যেখানে প্রতিটি সাইটের অধীনে options
থাকা CN=NTDS Site Settings
অবজেক্টের বৈশিষ্ট্য repadmin /siteoptions
।
সুতরাং, অবশেষে আপনার প্রশ্নের উত্তর দিতে। ডিসি বিকল্প নয়, বিশেষত সাইটের বিকল্পগুলি পাওয়া:
ForEach($Site In (Get-ADObject -Filter 'objectClass -eq "site"' -Searchbase (Get-ADRootDSE).ConfigurationNamingContext))
{
Get-ADObject "CN=NTDS Site Settings,$($Site.DistinguishedName)" -Properties Options
}
যদি কোনও সাইট অপশন সেট না করা থাকে তবে পাওয়ারশেল সেগুলি ফিরিয়ে দেবে না। আপনি সম্ভবত উপরের কোডটি কিছুটা সহজ করতে পারেন তবে আপনি যে পার্লেন্সটি শুরু করেছিলেন তা ব্যবহার করছে। অনেক বেশি অনুসন্ধানের পরে, অবশেষে আমি সাইট বিকল্পগুলি বিটমাস্কে ডকুমেন্টেশনটি পেয়েছি :
তাই জন্য IS_INTER_SITE_AUTO_TOPOLOGY_DISABLED
আপনি একটি উদাহরণ হিসাবে দিয়েছেন, তোমাদের মধ্যে একটি মান খুঁজছেন করা চাই 0x00000010
জন্য options
অ্যাট্রিবিউট।
এবং পাওয়ারশেল স্নিপেট চালানো থেকে:
সম্পাদনা # 2: আমি আপনাকে আজ কিছু লিখেছি:
#Require -Version 3
#Require -Module ActiveDirectory
Function Get-ADSiteOptions
{
<#
.SYNOPSIS
This Cmdlet gets Active Directory Site Options.
.DESCRIPTION
This Cmdlet gets Active Directory Site Options.
We can fill out the rest of this comment-based help later.
.LINK
http://myotherpcisacloud.com
.NOTES
Written by Ryan Ries, October 2013. ryanries09@gmail.com.
#>
[CmdletBinding()]
Param()
BEGIN
{
Set-StrictMode -Version Latest
# This enum comes from NtDsAPI.h in the Windows SDK.
# Also thanks to Jason Scott for pointing it out to me. http://serverfault.com/users/23067/jscott
Add-Type -TypeDefinition @"
[System.Flags]
public enum nTDSSiteSettingsFlags {
NTDSSETTINGS_OPT_IS_AUTO_TOPOLOGY_DISABLED = 0x00000001,
NTDSSETTINGS_OPT_IS_TOPL_CLEANUP_DISABLED = 0x00000002,
NTDSSETTINGS_OPT_IS_TOPL_MIN_HOPS_DISABLED = 0x00000004,
NTDSSETTINGS_OPT_IS_TOPL_DETECT_STALE_DISABLED = 0x00000008,
NTDSSETTINGS_OPT_IS_INTER_SITE_AUTO_TOPOLOGY_DISABLED = 0x00000010,
NTDSSETTINGS_OPT_IS_GROUP_CACHING_ENABLED = 0x00000020,
NTDSSETTINGS_OPT_FORCE_KCC_WHISTLER_BEHAVIOR = 0x00000040,
NTDSSETTINGS_OPT_FORCE_KCC_W2K_ELECTION = 0x00000080,
NTDSSETTINGS_OPT_IS_RAND_BH_SELECTION_DISABLED = 0x00000100,
NTDSSETTINGS_OPT_IS_SCHEDULE_HASHING_ENABLED = 0x00000200,
NTDSSETTINGS_OPT_IS_REDUNDANT_SERVER_TOPOLOGY_ENABLED = 0x00000400,
NTDSSETTINGS_OPT_W2K3_IGNORE_SCHEDULES = 0x00000800,
NTDSSETTINGS_OPT_W2K3_BRIDGES_REQUIRED = 0x00001000 }
"@
ForEach($Site In (Get-ADObject -Filter 'objectClass -eq "site"' -Searchbase (Get-ADRootDSE).ConfigurationNamingContext))
{
$SiteSettings = Get-ADObject "CN=NTDS Site Settings,$($Site.DistinguishedName)" -Properties Options
If(!$SiteSettings.PSObject.Properties.Match('Options').Count -OR $SiteSettings.Options -EQ 0)
{
# I went with '(none)' here to give it a more classic repadmin.exe feel.
# You could also go with $Null, or omit the property altogether for a more modern, Powershell feel.
[PSCustomObject]@{SiteName=$Site.Name; DistinguishedName=$Site.DistinguishedName; SiteOptions='(none)'}
}
Else
{
[PSCustomObject]@{SiteName=$Site.Name; DistinguishedName=$Site.DistinguishedName; SiteOptions=[Enum]::Parse('nTDSSiteSettingsFlags', $SiteSettings.Options)}
}
}
}
}
এবং এখানে এটি কার্যকর হয়: