Powershell - ลบ-ADGroupMember

ฉันกำลังพยายามลบกลุ่มออกจากผู้ใช้ในโดเมนอื่น

ตัวอย่าง: ฉันในฐานะผู้ดูแลระบบต้องการปิดการใช้งานผู้ใช้และลบกลุ่มของเขาในโดเมนอื่น

ปัญหาคือฉันไม่รู้วิธีใช้ Remove-ADGroupMember -Server ใน Foreach ลูป หากไม่ใช้ Foreach ฉันสามารถใช้ตัวเลือก -Server ได้

ข้อผิดพลาดของ Remove-ADGroupmember:
ข้อผิดพลาดของ Remove-ADGroupmember

ฉันจะได้รับทรัพย์สิน -Server ภายใน Foreach ได้อย่างไร?

$groups = (Get-Aduser -server ServerY -Identity manusys -Properties MemberOf).memberof

Foreach ($group in $groups) {
    Remove-ADGroupMember -identity $group -Members manusys -Confirm:$false -ErrorAction:SilentlyContinue
}

บัญชีผู้ใช้ Manusys มีกลุ่มเหล่านี้:

CN=NO_CamerasAlertMGR,OU=Ordinary Distribution Lists,OU=Distribution Lists,DC=test,DC=com
CN=NO_CamerasAlertCM,OU=Ordinary Distribution Lists,OU=Distribution Lists,DC=test,DC=com
CN=NO_CamerasReport,OU=Ordinary Distribution Lists,OU=Distribution Lists,DC=test,DC=com
CN=NO_CamerasReport_CM,OU=Ordinary Distribution Lists,OU=Distribution Lists,DC=test,DC=com
CN=NO_CamerasReport_MGR,OU=Ordinary Distribution Lists,OU=Distribution Lists,DC=test,DC=com

person jjquintero245    schedule 29.10.2018    source แหล่งที่มา
comment
ทำไมคุณไม่สามารถเพิ่ม -server ลงในคำสั่งที่มีอยู่ได้? Remove-ADGroupMember -server ServerY -identity $group [...]   -  person James C.    schedule 29.10.2018
comment
ไม่มีตัวเลือกเซิร์ฟเวอร์ที่ใช้คำสั่งนี้ใน Foreach ใน Powershell ISE   -  person jjquintero245    schedule 29.10.2018
comment
ISE แสดงไม่ถูกต้องแล้ว... คุณสามารถทดสอบได้โดย -- บนบรรทัดใหม่ประเภท Remove-ADGroupMember -Ser จากนั้นกด Tab   -  person James C.    schedule 29.10.2018
comment
คุณพูดถูก ขออภัยในความสับสนของฉัน   -  person jjquintero245    schedule 29.10.2018
comment
ไม่จำเป็นต้องขอโทษ ทุกคนเคยติดโค้ดมาก่อน! :)   -  person James C.    schedule 29.10.2018


คำตอบ (1)


พารามิเตอร์ Server สามารถใช้ได้กับ Remove-ADGroupMember การใช้ภายใน foreach จะไม่เปลี่ยนแปลงสิ่งนี้

อย่าพึ่งพรอมต์อัตโนมัติของ ISE โดยอ้างอิงถึงเอกสารประกอบ (Remove-adgroupmember) จะแสดงให้คุณเห็นว่ามีพารามิเตอร์ใดบ้าง

ปัญหาที่คุณเห็นจริงๆ คือ ISE จะไม่พร้อมท์/แสดงพารามิเตอร์คำสั่งอีกต่อไปเมื่อคุณใช้ พารามิเตอร์ทั่วไป (Confirm & ErrorAction ในโค้ดของคุณ แต่มีอย่างอื่นอยู่)...

คุณสามารถเห็นสิ่งนี้ได้ด้วยคำสั่งของมันเอง - มันจะแจ้งให้ป้อนพารามิเตอร์ต่อไป:

Remove-ADGroupMember -identity $group -Members manusys

แต่เพิ่ม CommonParam และมันจะไม่มีพารามิเตอร์ของตัวเองอีกต่อไป:

Remove-ADGroupMember -identity $group -Members manusys -Confirm:$false

ดังนั้น เพื่อแก้ไขปัญหาเดิมของคุณ ให้เพิ่มพารามิเตอร์ Server ไปที่ Remove-ADGroupMember:

$groups = (Get-Aduser -server ServerY -Identity manusys -Properties MemberOf).memberof

Foreach ($group in $groups) {
    Remove-ADGroupMember -server ServerY -identity $group -Members manusys -Confirm:$false -ErrorAction:SilentlyContinue
}
person James C.    schedule 29.10.2018