Score:2

Get-ADComputer พร้อมตัวกรองใด ๆ ไม่ทำงาน (โหลดโมดูลแล้ว)

ธง cn

ฉันใช้เวลาหลายชั่วโมงกับสิ่งนี้และว่าจ้างผู้คนจำนวนมากที่ฉันรู้จักว่าเป็นผู้เชี่ยวชาญ PowerShell โดยไม่มีโชคช่วย มันควรจะเรียบง่าย แต่คราวนี้มันไม่ได้ผลอย่างแน่นอน

วัตถุประสงค์:

  1. ฉันต้องการรับคอมพิวเตอร์ทุกเครื่องใน OU (คอมพิวเตอร์ใน OU จะมีการเปลี่ยนแปลง - ฉันเปิดให้ใช้รายการเซิร์ฟเวอร์ แต่ยังต้องเรียกใช้เพื่อรับคอมพิวเตอร์ใน OU ทุกวันและอัปเดตไฟล์ txt ก่อนดำเนินการต่อ เข้าสู่ภารกิจที่สอง - กำลังจะอธิบาย)
  2. จากนั้นฉันจะใช้คอมพิวเตอร์ที่พบใน OU เพื่อเรียกใช้ gpupdate (ไม่บังคับ มีเพียงนโยบายเดียวที่เชื่อมโยงในเวลา X ทุกวัน - สคริปต์ PS ชุดอื่นจัดการได้สำเร็จ) ฉันรู้ว่าสิ่งนี้สามารถทำได้ด้วยตนเองสำหรับ OU เพราะนั่นไม่ใช่วิธีที่เราต้องการ เรากำลังใช้เครื่องมือของบุคคลที่สามเพื่อเรียกใช้สคริปต์ PS ตามกำหนดเวลาไม่ได้ใช้ตัวกำหนดตารางเวลางานที่คอมพิวเตอร์เครื่องนี้เนื่องจากปัญหาที่ผ่านมาเกี่ยวกับการจัดการ แต่ไม่ว่าเครื่องมือของบุคคลที่สามจะไม่เป็นไร ปัญหาคือฉันไม่สามารถส่งคืนคอมพิวเตอร์ใน OU ได้

ฉันสามารถส่งคืนคอมพิวเตอร์ทุกเครื่องและคุณสมบัติพื้นฐานในโดเมนของฉันโดยใช้:

Get-ADComputer -ตัวกรอง *

อย่างไรก็ตาม ฉันประสบความสำเร็จ 0 ครั้งในการทำงานกับ "SearchBase" และตัวกรองใดๆ:

รับ ADComputer -SearchBase "OU=WVDTestEnvironment,DC=contoso,DC=com" -ตัวกรอง "*"

ฉันได้ลองย้ายตัวกรองไปที่ก่อนหน้า SearchBase, ลบเครื่องหมายคำพูดรอบ ๆ *, ใช้เครื่องหมายคำพูดเดี่ยว, ออกจากตัวกรองและป้อนเมื่อได้รับแจ้งเป็น *, เปลี่ยนตัวพิมพ์เล็กและใหญ่ในเกือบทุกคำ, ตรวจสอบชื่อ OU, โดเมน ฯลฯ เพิ่มช่องว่างระหว่าง OU และ DCs, เปลี่ยน OU เป็น CN, ตรวจสอบให้แน่ใจว่าโหลดโมดูลแล้ว (มันคือ)

แม้ว่าฉันจะทำให้ส่วนนี้ทำงานได้ ตัวอย่างของฉันยังคงทำ gpupdate หลังจากไพพ์ แต่ฉันได้ถอดมันออกอย่างสมบูรณ์เนื่องจากฉันไม่สามารถผ่านส่วนพื้นฐานนี้ไปรวบรวมคอมพิวเตอร์เพื่ออัปเดตได้

หมายเหตุเพิ่มเติม - สิ่งนี้ได้ลองบน Windows Server 2016 และ Windows Server 2019, 16 gb 4 cpus, 32 gb 8 cpus ตามลำดับ เพียงเพื่อแสดงแรงม้าที่มีอยู่ - ระบบปฏิบัติการอาจมีนัยสำคัญเนื่องจากฉันไม่ได้มีปัญหาใน ที่ผ่านมาบนเซิร์ฟเวอร์ปี 2012 และหน้าที่ฉันพบว่าสคริปต์จำนวนมากกำลังเรียกใช้สคริปต์นี้ใน R2 ปี 2012 ฉันเชื่อ

ฉันได้ลองวิ่งแล้ว:

Get-ADComputer -Filter 'ชื่อเฉพาะ เช่น "CN=contoso,CN=com"'

ด้านบนไม่ส่งคืนข้อผิดพลาด แต่จะไม่ส่งคืนผลลัพธ์ แม้ว่าควรส่งคืนบัญชีคอมพิวเตอร์ทั้งหมดในโดเมนด้วย

ข้อผิดพลาดที่ฉันได้รับเมื่อพยายามเรียกใช้ข้อมูลโค้ดต้นฉบับของฉัน : รับ ADComputer -SearchBase "OU=WVDTestEnvironment,DC=contoso,DC=com" -ตัวกรอง "*" อยู่ด้านล่าง: รหัส Powershell และข้อผิดพลาดที่ส่งคืน

OU นี้ยังเป็น OU ย่อย/ย่อย ดังนั้นฉันจึงพยายามรวม OU ระดับบนสุดในฐานการค้นหาของฉันด้วย แต่ข้อผิดพลาดก็เหมือนเดิม (ไม่ใช่ภาพ)

รับ ADComputer -SearchBase "OU=TopLevelOUName,OU=WVDTestEnvironment,DC=contoso,DC=com" -ตัวกรอง "*"

ความช่วยเหลือหรือคำแนะนำใด ๆ ที่จะได้รับการชื่นชมมาก ฉันมั่นใจว่าฉันจะไม่มีปัญหากับคำสั่ง GPUpdate เมื่อฉันสามารถกู้คืนไฟล์ข้อความของคอมพิวเตอร์หรือคอมพิวเตอร์ที่อยู่ในหน่วยความจำและใช้คำสั่งหลังจากไปป์ในบรรทัด PowerShell เดียวกัน ถอดท่อเพิ่มเส้นใหม่อะไรก็ได้ตามต้องการ ฉันแค่ต้องการคืนบัญชีคอมพิวเตอร์เหล่านี้ เนื่องจาก OU นี้จะผันผวนอย่างมากเมื่อเวลาผ่านไป

เริ่มแรกพบข้อมูลโค้ด PowerShell นี้ที่ https://blog.thesysadmins.co.uk/group-policy-gpupdate-an-ou-of-computers.html (ดูวิธีที่ 2)

cn flag
ไม่สามารถสอบถามชื่อที่แตกต่างด้วยสัญลักษณ์แทน https://social.technet.microsoft.com/wiki/contents/articles/5392.active-directory-ldap-syntax-filters.aspx จะช่วยได้ถ้าคุณยืนยันว่าคิวรีทำงานนอก PowerShell คุณสามารถเรียกใช้แบบสอบถามที่กำหนดเองในการค้นหาขั้นสูงของผู้ใช้ AD และคอมพิวเตอร์
Semicolon avatar
jo flag
โปรดทราบว่าในภาพหน้าจอ (และอาจอยู่ที่อื่นในประวัติของคุณด้วย) คุณพิมพ์องค์ประกอบโดเมนอย่างใดอย่างหนึ่งเป็น ...DC-... แทนที่จะเป็น ...DC=. พิมพ์ผิด; คุณมีเครื่องหมายลบทั้งที่มันควรจะเป็นเครื่องหมายเท่ากับ ไม่รู้ว่ามีความผิดมากน้อยเพียงใด แต่มันก็เป็นสาเหตุของข้อผิดพลาดภาพหน้าจอของคุณ
Semicolon avatar
jo flag
นี่คือบันทึกบางส่วน: Get-ADComputer -Filter * -SearchBase "OU=Blah,DC=blah,dc=domain,dc=com" จะส่งคืนวัตถุคอมพิวเตอร์ใด ๆ ในเส้นทางนั้น 100% หากคุณไม่ได้รับผลลัพธ์และไม่มีข้อผิดพลาด แสดงว่าไม่มีอะไรในเส้นทางนั้น หากคุณได้รับข้อผิดพลาดและไม่มีผลลัพธ์ - อ่านข้อผิดพลาด "ไม่พบวัตถุไดเรกทอรี" หมายความว่าคุณมี OU ที่ไม่ดีในฐานการค้นหาของคุณ ซึ่งน่าจะหมายความว่าคุณป้อน DN ผิดสำหรับ OU ที่คุณอยู่ กำลังมองหา. OS-> ไม่สำคัญ / ลำดับตัวกรองฐานการค้นหา -> ไม่สำคัญ / การใช้อักษรตัวพิมพ์ใหญ่ -> ไม่ mAttEr / Invoke-GPUpdate -> จริงเหรอ อิ๊ก
br flag
[1] เมื่อคุณใช้ `-Filter` ... คุณจะได้รับข้อผิดพลาดก็ต่อเมื่อมีข้อผิดพลาดทางไวยากรณ์เท่านั้น หากตัวกรองไม่ส่งคืนสิ่งใด ... นั่นคือคำตอบที่ถูกต้องและคุณจะไม่เห็นข้อผิดพลาดใดๆ ///// [2] สิ่งที่ `-Filter *` แทบไม่มีความหมาย อย่าทำเช่นนั้น - มันเพิ่มความซับซ้อนในขณะที่ทำสิ่งที่ไม่ดีอย่างแน่นอน
tangled_cables avatar
cn flag
@Semicolon ทำได้ดีใช่นั่นเป็นการพิมพ์ผิดอย่างแน่นอน แต่น่าเสียดายที่มีเพียงหนึ่งในหลาย ๆ รัน ฉันเชื่อว่าฉันวิ่งเพื่อโพสต์นี้จริง ๆ การทำงานอื่น ๆ ฉันมั่นใจเพราะฉันใช้ไฟล์ ps1 ที่มีเครื่องหมาย = ไม่มีปัญหานั้น แต่การจับไวยากรณ์ที่ยอดเยี่ยม นอกจากนี้ เกี่ยวกับการเลือกใช้ Invoke-GPUpdate ของฉันก็ดี... ไม่ใช่ตัวเลือกของฉัน เป็นบริษัทใหม่ พวกเขาใช้งานไม่ได้ ดังนั้นเราอยู่ที่นี่ งานที่จัดกำหนดการเหมือนถูกแบนที่นี่ ดังนั้นนั่นไม่ใช่ และสคริปต์นี้เป็นหนึ่งใน 3 สคริปต์ สคริปต์นี้เพิ่งใช้การเปลี่ยนแปลงกับ GPO กับคอมพิวเตอร์ OU จากนั้นเมื่อ GPO ถูกยกเลิกการเชื่อมโยงในภายหลัง สคริปต์จะทำงานอีกครั้ง
tangled_cables avatar
cn flag
@GregAskew ฉันขอขอบคุณข้อเสนอแนะ ฉันไม่เคยรู้เกี่ยวกับชื่อที่โดดเด่นมาก่อน ฉันจะใช้ GUI อย่างแน่นอนเพื่อทดสอบในครั้งต่อไปที่ฉันพบปัญหาเกี่ยวกับสคริปต์ที่ใช้โมดูล AD
Score:1
ธง cn

สิ่งนี้ได้รับการแก้ไขโดยการเพิ่มตัวแปรเพื่อเก็บคอมพิวเตอร์และทำงานใน a สำหรับแต่ละลูป: (นอกจากนี้ ฉันมีคำสั่ง OU ผิด แต่นั่นไม่ได้อธิบายการทดสอบอื่นๆ ที่ฉันใช้กับ OU ระดับบนสุดที่ล้มเหลว)

$computers = Get-ADComputer - ตัวกรอง * - SearchBase "OU=WVDTestEnvironment,OU=TopLevelOU,DC=contoso,DC=com"

foreach (คอมพิวเตอร์ $ ใน $ คอมพิวเตอร์) {

เรียกใช้ GPUpdate -คอมพิวเตอร์ $computer.Name -RandomDelayInMinutes 0

}

ขอบคุณทุกคนสำหรับความช่วยเหลือของคุณ บางทีนี่อาจช่วยคนอื่นในอนาคตเช่นกัน

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา