উইন্ডোজ অ্যাক্টিভ ডিরেক্টরি গ্রুপে ব্যবহারকারীদের তালিকা করতে কমান্ড লাইন?


136

কোনও সক্রিয় ডিরেক্টরি গোষ্ঠীর সমস্ত ব্যবহারকারীকে তালিকাভুক্ত করার জন্য কি কোনও কমান্ড লাইন উপায় আছে?

আমি কম্পিউটার -> স্থানীয় ব্যবহারকারী / গোষ্ঠী -> গোষ্ঠীগুলি পরিচালনা করে এবং গোষ্ঠীতে ডাবল ক্লিক করে গ্রুপে কে রয়েছি তা দেখতে পাচ্ছি ।

ডেটা পুনরুদ্ধার করার জন্য আমার কেবল একটি কমান্ড লাইন পদ্ধতি দরকার, যাতে আমি কিছু অন্যান্য স্বয়ংক্রিয় কাজ করতে পারি।

উত্তর:


37

চেষ্টা

dsget group "CN=GroupName,DC=domain,DC=name,DC=com" -members

1
নেস্টেড গ্রুপগুলিতে সদস্য এবং সদৃশ সদস্যদের সমাধান করার জন্য আপনার সম্ভবত আরও কিছু করা দরকার।
duffbeer703

1
dsget group "CN=GroupName,DC=domain,DC=name,DC=com" -members -expandএটি আপনাকে সদৃশ দলগুলিতে সদস্য দেয়, যদিও এটি সদৃশগুলিতে সহায়তা নাও করতে পারে এবং এটি আপনাকে কেবল তাদের সিএন নয়, সদস্যের জন্য পূর্ণ AD কোয়েরি স্ট্রিং দেয়।
jonnybot

2
উইন 7 এসপি 1-এ কমান্ড পাওয়া যায় নি। আমি অনুমান করছি আপনার আরএসএটি ইনস্টল করা দরকার?
ইসজি

11
'ডিজেট' কোনও অভ্যন্তরীণ বা বাহ্যিক কমান্ড ইত্যাদি হিসাবে স্বীকৃত নয়
অ্যাডল্ফ রসুন


237

কমান্ড প্রম্পট থেকে অন্য উপায় এখানে, কীভাবে স্বয়ংক্রিয় তা নিশ্চিত না যেহেতু আপনাকে আউটপুট পার্স করতে হবে:

গ্রুপটি যদি "বৈশ্বিক সুরক্ষা গোষ্ঠী" হয়:

net group <your_groupname> /domain

আপনি যদি "ডোমেন স্থানীয় সুরক্ষা গোষ্ঠী" খুঁজছেন:

net localgroup <your_groupname> /domain

23
কেন এটিকে নিম্নমানের করা হয়েছিল তা নিশ্চিত নই ... আউটপুটটির জন্য কিছু বিশ্লেষণের প্রয়োজন হতে পারে তবে এটি কেবল বেস উইন্ডোজ ইনস্টলের অংশ এমন ইউটিলিটিগুলির উপর নির্ভর করে সুবিধা অর্জন করতে পারে।
জি-উইজ

2
তবে কেটে যাওয়া গ্রুপের নামগুলির চারপাশে কোনও উপায় আছে?
deed02392

1
এটা অসাধারণ! একটি ট্রিট কাজ করেছেন।
ডব্লিউওপিআর

2
মনে রাখবেন যে এটি পুনরাবৃত্তিযোগ্য নয় এবং একটি গ্রুপে থাকা গ্রুপগুলির তালিকা করে না। আপনি নেস্টেড বা শ্রেণিবদ্ধ গোষ্ঠীগুলি থাকলে খুব বেশি সহায়ক নয়।
চিহ্নিত করুন

এটি আমার পক্ষে নিখুঁতভাবে কাজ করে (এবং সুন্দরভাবে হাতে চলে যায় net user /domain)। ধন্যবাদ!
xan

49

এখানে ডিএস কমান্ডের একটি সংস্করণ আমি আরও সাধারণভাবে দরকারী বলে মনে করি, বিশেষত যদি আপনার একটি জটিল OU কাঠামো থাকে এবং অগত্যা গ্রুপটির পুরো বিশিষ্ট নামটি জানেন না।

dsquery group -samid "Group_SAM_Account_Name" | dsget group -members -expand

অথবা আপনি যদি গ্রুপটির সিএন জানেন তবে সাধারণত শ্যাড আইডির সমান, নামটিতে শূন্যস্থান রয়েছে এমন ক্ষেত্রে উদ্ধৃত:

dsquery group -name "Group Account Name" | dsget group -members -expand

মন্তব্যে যেমন বলা হয়েছে, ডিফল্টরূপে ds * কমান্ডগুলি (dsquery, dsget, dsadd, dsrm) কেবলমাত্র একটি ডোমেন নিয়ামককে উপলভ্য। তবে আপনি উইন্ডোজ সার্ভার ইনস্টলেশন মিডিয়াতে সমর্থন সরঞ্জামগুলি থেকে অ্যাডমিন সরঞ্জাম প্যাকটি ইনস্টল করতে পারেন বা মাইক্রোসফ্ট ডাউনলোড সাইট থেকে ডাউনলোড করতে পারেন

আপনি পাওয়ারশেল ব্যবহার করে এই প্রশ্নগুলিও সম্পাদন করতে পারেন। পাওয়ারশেল সার্ভার ২০০৮, ২০০৮ আর ২, এবং উইন্ডোজ for এর জন্য ইনস্টলযোগ্য বৈশিষ্ট্য হিসাবে ইতিমধ্যে উপলব্ধ, তবে এটি আপনাকে এক্সপি বা ভিস্টায় ইনস্টল করার জন্য উইনআরএম ফ্রেমওয়ার্কটি ডাউনলোড করতে হবে।

PowerShell কোনো খ্রি-নির্দিষ্ট cmdlets অ্যাক্সেস পেতে আপনি হবে করাও নিম্নলিখিত ইনস্টল হওয়া অন্তত একটি সঞ্চালন করা প্রয়োজন:


আমি প্রথম জিজ্ঞাসাটি সমস্ত সময় ব্যবহার করি
জিম বি

1
সাবধান থাকুন যে আপনাকে এই কমান্ডটি ডোমেন কনট্রোলারে চালাতে হবে।
স্কোলিমা

9
আপনাকে এই কমান্ডটি কোনও ডোমেন নিয়ামকটিতে চালাতে হবে না । যাইহোক, যদি আপনি না এডমিন সাপোর্ট প্যাক .msi যা উইন্ডোস 2003 সার্ভার সিডিরম সমর্থন সরঞ্জামসমূহ মধ্যে অন্তর্ভুক্ত করা হয় ইনস্টল করা আছে করতে হবে। অথবা এটি মাইক্রোসফ্ট
রায়ান ফিশার

24

এমন পাওয়ারশেল সমাধানের জন্য যা কোয়েস্ট এডি অ্যাড-ইনের প্রয়োজন হয় না, নিম্নলিখিতটি চেষ্টা করে দেখুন

Import-Module ActiveDirectory

Get-ADGroupMember "Domain Admins" -recursive | Select-Object name

এটি নেস্টেড গ্রুপগুলিও গণনা করবে। আপনি যদি এটি করতে ইচ্ছুক না হন তবে -আরক্রসিভ স্যুইচটি সরিয়ে দিন ।


6
আপনি ঠিক করেছেন যে অ্যাক্টিডিরেক্টরি মডিউলটির জন্য কোয়েস্ট অ্যাক্টিভোলস এডি স্ন্যাপ-ইনের প্রয়োজন নেই, তবে এটির দরকার নেই যে আপনার কাছে আরএসএটি সরঞ্জাম ইনস্টল করা আছে এবং আপনার এডিটির কমপক্ষে একটি ডিসি রয়েছে অ্যাক্টিভ ডিরেক্টরি ওয়েব সার্ভিসের সাথে (২০০৮-এর জন্য) আর 2) বা অ্যাক্টিভ ডিরেক্টরি ম্যানেজমেন্ট গেটওয়ে পরিষেবা (2003, 2008 ডিসি) ইনস্টল করা আছে। বিশদ এবং লিঙ্কগুলির জন্য আমার উত্তরটি উপরে দেখুন।
রায়ান ফিশার

16

একটি খুব সহজ উপায় যা সার্ভার এবং ক্লায়েন্টগুলিতে কাজ করে:

NET GROUP "YOURGROUPNAME" /DOMAIN | find /I /C "%USERNAME%"

ব্যবহারকারী YOURGROUPNAME গ্রুপে থাকলে 1 প্রদান করে, অন্যথায় 0 আসবে

তারপরে আপনি% ERRORLEVEL% মান (0 টি গ্রুপে ব্যবহারকারী, 1 যদি না থাকে) পছন্দ করতে পারেন

IF %ERRORLEVEL%==0 NET USE %LOGONSERVER%\YOURGROUPSHARE

1
"নেট গ্রুপ" কমান্ডটি কেবলমাত্র ডোমেন (বা ডোমেন ট্রি) অনুসন্ধান করে যেখানে কম্পিউটারে যুক্ত হয়েছে। আরও আধুনিক বিকল্প হ'ল: whoami /groups | find /I /C "YOURGROUPNAME"
ডেভিসএনটি

10

অ্যাক্টিভ ডিরেক্টরিতে পাওয়ারশেল এবং কোয়েস্ট সফ্টওয়্যারের বিনামূল্যে অ্যাক্টিভরলস ম্যানেজমেন্ট শেল ব্যবহার করে আপনি এটি ব্যবহার করতে পারেন:

(গেট-কিএডিগ্রুপ "গ্রুপনাম") Members সদস্যরা

http://www.quest.com/powershell/activeroles-server.aspx


এছাড়াও: গেট-কিএডিগ্রুপমেমবার 'গ্রুপের নাম'
গর্ডন বেল

7

এখানে ব্যবহার করা উত্তরগুলি dsgetএবং dsqueryকেবল উইন্ডোজের সার্ভার সংস্করণগুলিতে কাজ করবে কারণ এই কমান্ডগুলি উইন্ডোজের অন্যান্য সংস্করণে (যেমন উইন্ডোজ 7) প্রেরণ করা হয় না। এই আদেশগুলি ছাড়াই মেশিনগুলিতে আপনি অ্যাডফাইন্ড কমান্ডটি ব্যবহার করতে চান এমন তথ্য পেতে পারেন ।

গোষ্ঠী সদস্যপদ পাওয়ার জন্য এখানে উদাহরণ উদাহরণ রয়েছে:

AdFind.exe -default -f name="Domain Admins" member -list

4
ADFind.exe একটি তৃতীয় পক্ষের সরঞ্জাম যা আপনাকে যে কোনও উপায়ে ইনস্টল করতে হবে। ডিএস * কমান্ডগুলি অ্যাডমিন সরঞ্জাম প্যাকের মাধ্যমে ইনস্টলযোগ্য।
রায়ান ফিশার

4

স্থানীয় গ্রুপ এবং ব্যবহারকারীদের তালিকাভুক্ত করবেন কীভাবে?

স্থানীয় গোষ্ঠী এবং সেই গোষ্ঠীর সদস্যদের তালিকা তৈরি করতে নিম্নলিখিত পাওয়ারশেল স্ক্রিপ্টটি ব্যবহার করুন।

$server="YourServerName"
$computer = [ADSI]"WinNT://$server,computer"

$computer.psbase.children | where { 

$_.psbase.schemaClassName -eq 'group' } | foreach {
    write-host $_.name
    write-host "------"
    $group =[ADSI]$_.psbase.Path
    $group.psbase.Invoke("Members") | foreach {
$_.GetType().InvokeMember("Name", 'GetProperty', 

$null, $_, $null)}
    write-host
}

নোটপ্যাডে উপরের পাঠ্যটি অনুলিপি করুন এবং সংরক্ষণ করুন filename.ps1। তারপরে ফাইলটি চালান। আমার প্রতিটি গ্রুপে গ্রুপ এবং ব্যবহারকারীদের প্রদর্শিত হওয়া উচিত, বা আপনি এটিকে পাওয়ারশেল থেকে চালাতে পারেন।


আমি পেয়েছি cmdlet ForEach-Object at command pipeline position 1. Supply values for the following parameters:এবং তারপরে ইনপুট Process[0]
মাইক এস

3

UserGroup1চেষ্টা চেষ্টা সদস্যদের জন্য :

dsquery group -name UserGroup1 | dsget group -members | dsget user -display

1
আপনি এটিতে কী সি এল এল ইউটিলিটি ব্যবহার করবেন তা উল্লেখ করতে চাই I আমি মনে করি না যে cmdকোনও কারণে এটি খুব ভাল কাজ করবে ।
আশাহীন N00b

@ হোপলেস এন
পিট

@ পেট নিউপ! dsget failed:'Target object for this command' is missing.
আশাহীন N00b

@ হোপলেস এন 100 বি: আমি যদি ইউজারগ্রুপ 1 উপস্থিত না থাকি তবে আমি ত্রুটি পেয়েছি, "অ্যাকাউন্টিং *" এর মতো কিছু চেষ্টা করুন
পিট
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.