मेरे पास ई-मेल पतों की एक CSV फ़ाइल है। CSV फ़ाइल में हेडर name वाला एक कॉलम होता है। मैं एक विशिष्ट समूह से इन पतों से जुड़े सक्रिय निर्देशिका उपयोगकर्ताओं को हटाना चाहता हूं।

यह रहा मेरा प्रयास, लेकिन ऐसा लगता है कि $user पॉप्युलेट नहीं हो रहा है।

$data = import-csv -Path C:\Users\39415\Desktop\remove1.csv
ForEach ($name in $data)
{
   $user = Get-ADUser -Filter {mail -eq "$_"} | Select SamAccountName
   Remove-ADGroupMember -Identity "group name" -Members $user.SamAccountName -Confirm:$false
}

कृपया मुझे बताएं कि मैं क्या गलत कर रहा हूं।

1
Piseth Chhoeuy 21 सितंबर 2020, 21:26

1 उत्तर

सबसे बढ़िया उत्तर

सबसे बड़ा मुद्दा जो मुझे तुरंत दिखाई दे रहा है, वह यह है कि आप अपने फ़ोरैच लूप में एक नामित चर का उपयोग कर रहे हैं लेकिन फिर स्वचालित चर $_

नामित चर का उपयोग करने के लिए, में बदलें

$data = import-csv -Path C:\Users\39415\Desktop\remove1.csv
ForEach ($name in $data.name)
{
   $user = Get-ADUser -Filter "mail -eq '$name'" | Select SamAccountName
   Remove-ADGroupMember -Identity "group name" -Members $user.SamAccountName -WhatIf
}

स्वचालित चर का उपयोग करने के लिए, Foreach-Object में बदलें (अभी भी foreach को छोटा किया जा सकता है लेकिन पूर्व को "foreach कथन" के रूप में जाना जाता है

$data = import-csv -Path C:\Users\39415\Desktop\remove1.csv
$data.name | foreach {
   $user = Get-ADUser -Filter "mail -eq '$_'" | Select SamAccountName
   Remove-ADGroupMember -Identity "group name" -Members $user.SamAccountName -WhatIf
}

जैसा कि मैंने दिखाया है कि आपको वास्तव में $data चर की नाम संपत्ति को संदर्भित करने की आवश्यकता है।

1
Doug Maurer 21 सितंबर 2020, 18:36