मैं एक AD क्लीनअप स्क्रिप्ट पर काम कर रहा हूं, लेकिन इसे सही तरीके से काम करने में परेशानी हो रही है। मैं जिन मापदंडों को पूरा करने का प्रयास कर रहा हूं, वे उपयोगकर्ता पिछले 90 दिनों से लॉग इन नहीं हुए हैं और 90 दिन पहले बनाए गए थे। समस्या यह है कि यह उन उपयोगकर्ताओं को मिल रहा है जो पिछले 90 दिनों के भीतर बनाए गए थे। यहां वह स्क्रिप्ट है जिस पर मैं काम कर रहा हूं:
Import-Module ActiveDirectory
$OU="ou=Users,ou=middle,ou=top,dc=contoso,dc=com"
$CSV_USERS=""
foreach ($x in $OU) {
$USERS=Search-ADAccount -AccountInactive -Timespan 90.00:00:00 -Searchbase $x | Where {$_.whenCreated -le ((Get-Date).AddDays(-90).toFileTime())}
if ($USERS) {
$CSV_USERS=$CSV_USERS + $USERS
}
}
$date=Get-Date -Format "dMy"
$path="C:\Scripts\TestScript_disable_users_"+$date+".csv"
if($CSV_USERS) {
Out-File -FilePath $path -InputObject $CSV_USERS
}
एक बार स्क्रिप्ट ठीक से काम करने के बाद मैं $ CSV_USERS = $ CSV_USERS + $ USERS के तहत निम्न पंक्तियाँ जोड़ूंगा
$USERS | Disable-AdAccount
$USERS | Move-AdObject -TargetPath "OU=Inactive employees,dc=contoso,dc=com"
क्या कोई मुझे यह पता लगाने में मदद कर सकता है कि मेरे लिए "" कहाँ "पैरामीटर काम नहीं कर रहा है?"
whenCreated
संपत्ति नहीं है। और यह भी समझ में नहीं आता है। यदिsearch-adaccount -accountinactive -timespan 90
उपयोगकर्ता लौटाते हैं, तो इन उपयोगकर्ताओं को 90 दिनों से अधिक समय पहले बनाया जाना होगा, अन्यथा यह समय के कारण उन्हें नहीं लौटाएगा। ताकि आप अपने की जरूरत नहीं हैwhere
।90
इसके बजाय अपने समय को बदलें90.00:00:00
और इसे ठीक से काम करना चाहिए