পাওয়ারশেল ব্যবহার করে, কীভাবে আমি বর্তমানে অ্যাক্টিড ডিরেক্টরী মডিউলটির প্রয়োজন ছাড়াই ডোমেন ব্যবহারকারীর পুরো নাম (কেবল তার ব্যবহারকারীর নাম নয়) লগইন করব?
পাওয়ারশেল ব্যবহার করে, কীভাবে আমি বর্তমানে অ্যাক্টিড ডিরেক্টরী মডিউলটির প্রয়োজন ছাড়াই ডোমেন ব্যবহারকারীর পুরো নাম (কেবল তার ব্যবহারকারীর নাম নয়) লগইন করব?
উত্তর:
$dom = $env:userdomain
$usr = $env:username
([adsi]"WinNT://$dom/$usr,user").fullname
রিটার্নস:
John Doe
কিছু অন্যান্য (বেশিরভাগ) অস্পষ্ট বৈশিষ্ট্যও উপলব্ধ। কয়েকটি দরকারী:
চেষ্টা করুন:
[adsi]"WinNT://$dom/$usr,user" | select *
আমি গৃহীত উত্তরটি পছন্দ করি, তবে কেবল আমি নিজেরাই এটি চেষ্টা করতে চেয়েছিলাম:
$user = whoami
Get-WMIObject Win32_UserAccount | where caption -eq $user | select FullName
আয়:
FullName
--------
TheCleaner
অথবা আপনি যদি শিরোনামের তথ্য এবং কেবল ফলাফল না পেতে চান:
$user = whoami
Get-WMIObject Win32_UserAccount | where caption -eq $user | select FullName | ft -hide
পাওয়ারশেল 3.0 ব্যবহার করে একটি লাইনার:
gwmi win32_useraccount | where {$_.caption -match $env:USERNAME} | select fullname | ft -HideTableHeaders
ক্রেগ 620 এর গৃহীত উত্তরের উপর আপনার মন্তব্যের ভিত্তিতে,
এই কমান্ডটি চালানোর জন্য আমার কি ডোমেন প্রশাসনের অধিকার দরকার? অথবা ডোমেন ব্যবহারকারী নিজেই এই আদেশটি চালাতে পারবেন?
দেখে মনে হচ্ছে আপনি ব্যবহারকারী ওয়ার্কস্টেশনগুলিতে পাওয়ারশেল মডিউলগুলি ইনস্টল করার চেষ্টা করছেন, হ্যাঁ, তবে এটিও না, এডি তে আপনার নিজের নাম সন্ধান করার জন্য আপনাকে কোনও ডোমেন প্রশাসক হওয়ার দরকার নেই। মানক ব্যবহারকারী হিসাবে পুরো নাম সহ আউটলুকের জিএল-তে প্রদর্শিত যে কোনও তথ্য আপনি বেশ সন্ধান করতে পারেন।
আপনি AD এর মানক ব্যবহারকারী হিসাবে অন্য ব্যক্তির পূর্ণ নামও সন্ধান করতে পারেন ( Get-WmiObject Win32_userAccount
যদি আপনি AD মডিউলগুলি এড়াতে চান তবে ব্যবহার করুন )। পরিষেবা অ্যাকাউন্টগুলি যা এডি (ভাল, পরিচালিত পরিষেবা অ্যাকাউন্টগুলির পূর্বে ) কে প্রায়শই স্ট্যান্ডার্ড, অবাঞ্ছিত এডি ব্যবহারকারী।
ম্যাচ ব্যবহার করা ভাল পছন্দ নয় কারণ "এড" এর একটি $ env: USERNAME "ফ্রেড" এবং "এডিথ" মিলবে। পরিবর্তে একটি নির্ভুল ম্যাচের জন্য -q ব্যবহার করুন এবং প্রয়োজনে ডোমেনে যুক্ত করুন। আমি একটি শীর্ষস্থানীয় এবং ট্রেলিং করা নতুন লাইন প্রিন্ট করে "পূর্ণ নাম নির্বাচন করুন | ফুট -হাইডেবল হেইডারস" এর বিকল্প হিসাবে সমস্ত অগ্রণী ট্রেলিং হোয়াইটস্পেসটি সরিয়ে ফেলার জন্য আমি শেষে একটি ফোরচ লুপ ব্যবহার করি।
gwmi win32_useraccount | where {$_.caption -eq $("domain\" + $env:USERNAME)} | foreach {$_.fullname}
যদি আপনি সর্বদা পেয়ে থাকেন। নেট 3.5.৫ বা তার বেশি (যা আপনার পাওয়ারশেল v4.0 এবং উচ্চতর হওয়া উচিত):
Add-Type -AssemblyName System.DirectoryServices.AccountManagement;
$DisplayName = [System.DirectoryServices.AccountManagement.UserPrincipal]::Current.DisplayName;
এই শ্রেণিটি সমস্ত সাধারণ LDAP বৈশিষ্ট্যে খুব সহজ অ্যাক্সেস সরবরাহ করে, সুতরাং আপনার দু'বার অনুসন্ধান করার দরকার নেই (একবার উইনটিটি দিয়ে এবং আবার এলডিএপি দিয়েছিলেন) বা [ADSISearcher]
যদি আপনি এমন কিছু বর্ধিত বৈশিষ্ট্য চান যা উইনএনটি বাস্তবায়ন করে না ।
আপনি যদি সক্রিয় ডিরেক্টরি মডিউলটি ব্যবহার করতে না চান তবে আপনি পারবেন না; আপনি যদি আরও গভীরে যেতে চান না এবং কোনও ডোমেন নিয়ামকের বিরুদ্ধে একটি আসল এলডিএপি কোয়েরি করতে না চান।
ব্যবহারকারীর নাম ব্যতীত যে কোনও ব্যবহারকারীর তথ্য অ্যাক্টিভ ডিরেক্টরিতে সঞ্চিত রয়েছে এবং এটি সেখানে পুনরুদ্ধার করতে হবে।
[ADSI]
ইন্টারফেসটি AD মডিউলগুলির চেয়ে অনেক বেশি দীর্ঘ ছিল এবং গ্রহণযোগ্য উত্তর শোগুলির মতো সত্যই এতটা জটিল নয়।