অ্যাক্টিভ ডিরেক্টরিতে পাওয়ারশেল ব্যবহার করে আমি অনাথ কম্পিউটার সামগ্রীগুলি কীভাবে পাই?


10

আমি কীভাবে আমার সক্রিয় ডিরেক্টরি ডোমেনে এমন সমস্ত কম্পিউটার অ্যাকাউন্ট খুঁজে পেতে পারি যা পাওয়ারশেল ব্যবহার করে x দিনের জন্য নিষ্ক্রিয় ছিল?

নোট করুন যে আমি আসলে এটি করতে জানি। কেবলমাত্র জ্ঞানটি বের করার জন্য এটি একটি স্ব-উত্তরযুক্ত প্রশ্ন। অন্য কারও কাছে যদি আরও ভাল উপায় থাকে তবে নির্দ্বিধায় এটি পোস্ট করুন!

উত্তর:


10

এটি আপনাকে এমন সমস্ত কম্পিউটার অ্যাকাউন্ট দেবে যা গত ৩5৫ দিনের জন্য কোনও ক্রিয়াকলাপ নেই।

Search-ADAccount -AccountInactive -ComputersOnly -TimeSpan 365.00:00:00

এটি আপনার জন্য লাস্টলগন্ডেট অনুসারে বাছাই করবে।

Search-ADAccount -AccountInactive -ComputersOnly -TimeSpan 365.00:00:00 | Sort-Object lastlogondate | Ft name,lastlogondate -auto

এটি আপনাকে অক্ষম কম্পিউটার অ্যাকাউন্ট দেবে।

Search-ADAccount -AccountDisabled -ComputersOnly 

মজাদার! আমি (স্পষ্টতই) সেই সেমিডলেট সম্পর্কে জানতাম না। "AccountInactive" এর জন্য কোন বৈশিষ্ট্য পরিমাপ করা হয়? lastlogondate? passwordlastset?
MDMarra

আমি 100% নিশ্চিত হতে হবে তা দেখতে হবে, কিন্তু আমি জানি যে লটলগন্ডেট এমন একটি বৈশিষ্ট্য যা ফিরে আসা হয় আপনি যদি অবজেক্টটির দিকে তাকান তবে পাসওয়ার্ডলাস্ট নেই। টেকনেট নিবন্ধটি আসলে কী বিশদটি ব্যবহার করে তা বিশদ করে না।
মাইক 14 ই

1
এটিকে আরও কিছুটা দেখে নেওয়া হয়েছে এবং লাস্টলগন্ডেট দেখে মনে হচ্ছে এটি কেবল লাস্টলগনটাইমস্ট্যাম্পের রূপান্তর। স্কিমাতে লাস্টলগন্ডেট নামে কোনও বৈশিষ্ট্য নেই। আশা করি এইটি কাজ করবে.
মাইক 14

5

কম্পিউটারগুলি 30 দিনের মধ্যে ডিফল্টরূপে তাদের অ্যাকাউন্ট পাসওয়ার্ড পরিবর্তন করে। যদি কোনও কম্পিউটার একটি বর্ধিত সময়ের মধ্যে তার পাসওয়ার্ড পরিবর্তন না করে, তবে এর অর্থ হ'ল তারা আর নেটওয়ার্কের সাথে সংযুক্ত থাকবে না।

এই পাওয়ারশেল স্ক্রিপ্টটি 2 টি পাঠ্য ফাইল আউটপুট দেবে। একটি অক্ষম কম্পিউটারগুলির জন্য, একটি অনাথ কম্পিউটার অ্যাকাউন্টের জন্য। আপনার অবশ্যই সক্রিয় ডিরেক্টরি পাওয়ারশেল মডিউল ইনস্টল থাকা উচিত।

এই উদাহরণে, আমি একটি "এনক্রিপ্টড ল্যাপটপগুলি" ওইউ বাদ রাখি কারণ তারা মোবাইল ল্যাপটপ যা সময়ের সাথে বর্ধিত সময়ের জন্য সংযোগ বিচ্ছিন্ন থাকে। আপনার যদি একই রকম সেটআপ না থাকে তবে আপনি সেই বিভাগটি সরাতে পারেন

Import-Module ActiveDirectory

$Date = [DateTime]::Today

#Sets the deadline for when computers should have last changed their password by.
$Deadline = $Date.AddDays(-365)   

#Makes the date string for file naming
$FileName = [string]$Date.month + [string]$Date.day + [string]$Date.year 


#Generates a list of computer accounts that are enabled and aren't in the Encrypted Computers OU, but haven't set their password since $Deadline
$OldList = Get-ADComputer -Filter {(PasswordLastSet -le $Deadline) -and (Enabled -eq $TRUE)} -Properties PasswordLastSet -ResultSetSize $NULL |
Where {$_.DistinguishedName -notlike "*Encrypted Laptops*"} | 
Sort-Object -property Name | FT Name,PasswordLastSet,Enabled -auto 

#Generates a list of computer accounts that are disabled and sorts by name.
$DisabledList = Get-ADComputer -Filter {(Enabled -eq $FALSE)} -Properties PasswordLastSet -ResultSetSize $null | 
Sort-Object -property Name | FT Name,PasswordLastSet,Enabled -auto

#Creates the two files, assuming they are not $NULL. If they are $NULL, the file will not be created.
if ($OldList -ne $NULL) {
    Out-File "C:\users\marra\desktop\Old$Filename.txt" -InputObject $OldList
}

if ($DisabledList -ne $NULL) {
    Out-File "C:\users\marra\desktop\Disabled$Filename.txt" -InputObject $DisabledList
}

0

এক মিলিয়ন আপনাকে ধন্যবাদ! আমি এটিতে আমার টুইটটি যুক্ত করতে চেয়েছিলাম। আমার কেবলমাত্র সার্ভারগুলি খুঁজে পাওয়া দরকার যা হয় অক্ষম করা হয়েছে বা অক্ষম করা হয়েছে এবং উত্পাদনে নেই। এটিই আমি নিয়ে এসেছি এবং মনে হচ্ছে এটি কাজ করবে।

Import-Module ActiveDirectory

$Date = [DateTime]::Today

#Sets the deadline for when computers should have last changed their password by.
$Deadline = $Date.AddDays(-365)   

#Makes the date string for file naming
$FileName = [string]$Date.month + [string]$Date.day + [string]$Date.year 

#Generates a list of computer server accounts that are enabled, but haven't set their password since $Deadline
$OldList = Get-ADComputer -Filter {(PasswordLastSet -le $Deadline) -and (Enabled -eq $TRUE) -and (OperatingSystem -Like "Windows *Server*")} -Properties PasswordLastSet -ResultSetSize $NULL |
Sort-Object -property Name | FT Name,PasswordLastSet,Enabled -auto 

#Generates a list of computer server accounts that are disabled and sorts by name.
$DisabledList = Get-ADComputer -Filter {(Enabled -eq $FALSE) -and (OperatingSystem -Like "Windows *Server*")} -Properties PasswordLastSet -ResultSetSize $null | 
Sort-Object -property Name | FT Name,PasswordLastSet,Enabled -auto

#Creates the two files, assuming they are not $NULL. If they are $NULL, the file will not be created.
if ($OldList -ne $NULL) {
    Out-File "C:\temp\Old$Filename.txt" -InputObject $OldList
}

if ($DisabledList -ne $NULL) {
    Out-File "C:\temp\Disabled$Filename.txt" -InputObject $DisabledList
} 

0

আমি জানি ওপি স্পষ্টভাবে পাওয়ারশেলের জন্য জিজ্ঞাসা করেছে তবে আপনি যদি এটি পছন্দ করেন না, এটি না পান এবং অন্য কোনও মাইক্রোসফ্ট সিনট্যাক্স শিখতে চান না তবে নীচের পাইথন স্নিপেট আপনাকে সঠিক ফর্ম্যাটে একটি তারিখ ব্যবহার করার জন্য দেবে একটি এলডিএপি কোয়েরি সহ।

import datetime, time
def w32todatetime(w32):
    return datetime.fromtimestamp((w32/10000000) - 11644473600)
def datetimetow32(dt):
    return int((time.mktime(dt.timetuple()) + 11644473600) * 10000000)

90daysago = datetime.datetime.now() - datetime.timedelta(days=90)
print datetimetow32(90daysago)

এরপরে যা নিম্নলিখিত 90 দিনের মধ্যে তাদের পাসওয়ার্ডগুলি পরিবর্তন করে নি এমন সমস্ত উইন্ডোজ কম্পিউটারগুলি অনুসন্ধানের জন্য নিম্নলিখিত হিসাবে ব্যবহার করা যেতে পারে।

(&(objectCategory=computer)(objectClass=computer)(operatingSystem=Windows*)(pwdLastSet<=130604356890000000))

উইন্ডোজ মেশিনগুলির পাসওয়ার্ড পরিবর্তন করার জন্য আপনার সম্ভবত 30 ডিফল্ট সময়সীমা 30 দিনের প্রয়োজন তবে আপনি সেই পিসিটি ভুলে গিয়েছেন যা বব এর ডেস্কের নীচে বসে আছে এবং কখনও কখনও চালু না হয়।

সম্পাদনা: ওহ, আমি এতে সময়-অঞ্চল সমর্থন বাদ দিয়েছি যা সম্ভবত ব্যবহারের ক্ষেত্রে এটি বিবেচনা করে না তবে অন্যদেরও হতে পারে।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.