Điểm:2

Get-ADComputer với BẤT KỲ bộ lọc nào không hoạt động (đã tải mô-đun)

lá cờ cn

Tôi đã dành nhiều giờ cho việc này và thu hút sự tham gia của một số người mà tôi biết là chuyên gia PowerShell mà không gặp may. Nó sẽ đơn giản nhưng nó chắc chắn không hoạt động theo cách đó lần này.

Khách quan:

  1. Tôi muốn nhận tất cả các máy tính trong một OU (các máy tính trong OU sẽ thay đổi - tôi sẵn sàng sử dụng danh sách máy chủ, nhưng nó vẫn cần chạy để nhận các máy tính trong OU hàng ngày và cập nhật tệp txt trước khi tiếp tục vào nhiệm vụ thứ hai - sắp giải thích).
  2. Sau đó, tôi sẽ sử dụng các máy tính có trong OU để chạy gpupdate (không bắt buộc, chỉ có một chính sách được liên kết vào thời gian X hàng ngày - điều này đang được xử lý thành công bởi một nhóm tập lệnh PS khác). Tôi biết điều này có thể được thực hiện thủ công đối với OU bởi đó không phải là cách chúng tôi muốn thực hiện. Chúng tôi đang sử dụng công cụ của bên thứ ba để chạy tập lệnh PS theo lịch trình.Trình lập lịch tác vụ không được sử dụng trên máy tính này do các sự cố quản lý trước đây, nhưng bất kể công cụ của bên thứ 3 nào cũng được. Vấn đề là tôi không thể trả lại các máy tính trong OU.

Tôi CÓ THỂ trả lại tất cả các máy tính và thuộc tính cơ bản của chúng trong miền của mình bằng cách sử dụng:

Get-ADComputer -Filter *

Tuy nhiên, tôi đã không thành công khi chạy với "SearchBase" và bất kỳ Bộ lọc nào:

Get-ADComputer -SearchBase "OU=WVDTestEnvironment,DC=contoso,DC=com" -Filter "*"

Tôi đã thử di chuyển Bộ lọc đến trước SearchBase, xóa dấu ngoặc kép xung quanh *, sử dụng dấu ngoặc đơn, bỏ bộ lọc và nhập bộ lọc khi được nhắc là *, thay đổi kiểu chữ trên hầu hết mọi từ, tên OU đã xác minh, tên miền, v.v., thêm dấu cách giữa các từ OU và DC, thay đổi OU thành CN, đảm bảo rằng mô-đun đã được tải (đúng vậy).

Ngay cả khi tôi làm cho phần này hoạt động, đoạn mã của tôi vẫn tiếp tục thực hiện gpupdate sau một đường ống, nhưng tôi đã tắt hoàn toàn phần đó vì tôi không thể vượt qua phần cơ bản này để thu thập máy tính để cập nhật.

Lưu ý bổ sung - điều này đã được thử trên Windows Server 2016 và Windows Server 2019, 16 gb 4 cpus, 32 gb 8 cpus, tương ứng, chỉ để hiển thị mã lực ở đó - các HĐH có thể quan trọng vì tôi chưa gặp sự cố trong Tôi tin rằng trên các máy chủ năm 2012 đã qua và trang tôi tìm thấy phần lớn tập lệnh đang chạy nó trên 2012 R2.

Tôi đã thử chạy:

Get-ADComputer -Filter 'DistinguishedName -like "CN=contoso,CN=com"'

Ở trên không trả về lỗi, nhưng nó không trả về kết quả. Mặc dù nó cũng sẽ trả về tất cả các tài khoản máy tính trong miền.

Lỗi tôi nhận được khi cố chạy đoạn mã gốc của mình: Get-ADComputer -SearchBase "OU=WVDTestEnvironment,DC=contoso,DC=com" -Filter "*" dưới đây: Mã Powershell và lỗi trả về

Đơn vị tổ chức này cũng là một đơn vị tổ chức con/phụ, vì vậy tôi cũng đã thử đưa đơn vị tổ chức cấp cao nhất vào cơ sở tìm kiếm của mình, nhưng lỗi vẫn như vậy (không có trong hình)

Get-ADComputer -SearchBase "OU=TopLevelOUName,OU=WVDTestEnvironment,DC=contoso,DC=com" -Filter "*"

Bất kỳ trợ giúp hoặc gợi ý nào sẽ được RẤT NHIỀU đánh giá cao. Tôi tự tin rằng mình sẽ không gặp bất kỳ sự cố nào với lệnh GPUpdate khi tôi có thể lấy lại tệp văn bản của máy tính hoặc máy tính được lưu trong bộ nhớ và sử dụng lệnh sau một đường ống trên cùng một dòng powershell. Tôi có thể loại bỏ đường ống, thêm một dòng mới, bất cứ điều gì cần thiết. Tôi chỉ cần lấy lại các tài khoản máy tính này vì OU này sẽ dao động rất nhiều theo thời gian.

Ban đầu tìm thấy đoạn mã PowerShell này tại https://blog.thesysadmins.co.uk/group-policy-gpupdate-an-ou-of-computers.html (xem cách 2)

lá cờ cn
Không thể truy vấn tên phân biệt bằng ký tự đại diện. https://social.technet.microsoft.com/wiki/contents/articles/5392.active-directory-ldap-syntax-filters.aspx . Sẽ hữu ích nếu bạn xác nhận rằng truy vấn hoạt động bên ngoài PowerShell. Bạn có thể chạy truy vấn tùy chỉnh trong tìm kiếm nâng cao Người dùng và Máy tính AD.
Semicolon avatar
lá cờ jo
Xin lưu ý, trong ảnh chụp màn hình (và có thể ở bất kỳ nơi nào khác trong lịch sử của bạn), bạn đã nhập một trong các thành phần miền là ...DC-... thay vì ...DC=. đánh máy; bạn đã có một dấu trừ khi nó phải là một dấu bằng. Không biết bao nhiêu trong số đó là để đổ lỗi. Nhưng nó chắc chắn là nguyên nhân gây ra lỗi ảnh chụp màn hình của bạn.
Semicolon avatar
lá cờ jo
Dưới đây là một số lưu ý: Get-ADComputer -Filter * -SearchBase "OU=Blah,DC=blah,dc=domain,dc=com" Sẽ trả lại 100% bất kỳ đối tượng máy tính nào trong đường dẫn đó. Nếu bạn không nhận được kết quả và không có lỗi, thì không có gì trong đường dẫn đó. Nếu bạn gặp lỗi nhưng không có kết quả - hãy đọc lỗi, "Không tìm thấy đối tượng thư mục" có nghĩa là bạn có một OU không hợp lệ trong cơ sở tìm kiếm của mình -- có thể nghĩa là bạn đã nhập sai DN cho OU mà bạn đang nhập. tìm kiếm. Hệ điều hành-> không quan trọng/thứ tự bộ lọc-tìm kiếm -> Không quan trọng/Viết hoa -> Không phải mAttEr/Gọi-GPUpdate -> thực sự? ừm.
lá cờ br
[1] khi bạn sử dụng `-Filter` ... bạn sẽ CHỈ gặp lỗi nếu có lỗi cú pháp. nếu bộ lọc không trả về gì ... thì đó là phản hồi hợp lệ và bạn sẽ KHÔNG thấy bất kỳ lỗi nào. ///// [2] nội dung `-Filter *` gần như vô nghĩa. đừng làm vậy - nó làm tăng thêm sự phức tạp trong khi hoàn toàn không có tác dụng gì.
tangled_cables avatar
lá cờ cn
@Dấu chấm phẩy Tốt, vâng, đó chắc chắn là một lỗi đánh máy, nhưng thật không may, đó chỉ là một trong số nhiều lần chạy. Tôi tin rằng tôi đã chạy nó chỉ cho bài đăng này trên thực tế. Các lần chạy khác, tôi tự tin vì tôi đang sử dụng tệp ps1 có dấu = không gặp sự cố đó. Nhưng bắt cú pháp tuyệt vời. Cũng liên quan đến lựa chọn sử dụng Invoke-GPUpdate của tôi... không phải là lựa chọn của tôi, công ty mới thành lập, họ không thể làm cho nó hoạt động, vì vậy chúng tôi ở đây. Các tác vụ theo lịch trình giống như bị cấm ở đây vì vậy đó là không. Và tập lệnh này là một trong 3, nó chỉ áp dụng các thay đổi đối với GPO cho các máy tính OU, sau đó khi GPO được hủy liên kết, nó sẽ chạy lại.
tangled_cables avatar
lá cờ cn
@GregAskew Tôi đánh giá cao phản hồi, trước đây tôi không biết gì về tên phân biệt. Tôi chắc chắn cũng sẽ sử dụng GUI để kiểm tra vào lần tới khi tôi gặp sự cố với các tập lệnh sử dụng mô-đun AD.
Điểm:1
lá cờ cn

Thật kỳ lạ, điều này đã được giải quyết bằng cách thêm một biến để giữ các máy tính và chạy trong một vòng lặp cho mỗi: (ngoài ra, tôi đã sai thứ tự đơn vị tổ chức, nhưng điều đó không giải thích được các thử nghiệm khác mà tôi đã thực hiện với các đơn vị tổ chức cấp cao nhất đều không thành công.)

$computers = Get-ADComputer - Filter * - SearchBase "OU=WVDTestEnvironment,OU=TopLevelOU,DC=contoso,DC=com"

foreach ($máy tính trong $computers) {

Gọi-GPUpdate -Máy tính $computer.Name -RandomDelayInMinutes 0

}

cám ơn sự giúp đỡ từ mọi người. Có lẽ điều này sẽ giúp người khác trong tương lai là tốt.

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.