Tôi có một chút mã mà trông như thế này:Kiểm tra sự tồn tại của một đối tượng AD; làm cách nào để tránh thông báo lỗi xấu?
if (Get-ADUser $DN -EA SilentlyContinue) {
# Exists
} else {
# Doesn't Exist
}
Thật không may, khi Get-ADUser DN thất bại trong việc tìm người dùng (trong đó là tốt, nó có nghĩa là tên đối tượng không được thực hiện), nó ném lên và phun ra một lỗi. Tôi biết nó sẽ thất bại, đó là tốt, đó là lý do tại sao tôi có một -ErrorAction
đến SilentlyContinue
. Thật không may nó dường như không làm gì cả ... Tôi vẫn nhận được barf trên đầu ra kịch bản. Mã hoạt động, nó chỉ là xấu xí do giao diện điều khiển phun ra lỗi.
- Có cách nào tốt hơn để tôi kiểm tra xem một đối tượng cụ thể có tồn tại không?
- Nếu không, có cách nào để ErrorAction hoạt động bình thường không?
NB: với thử ... bắt giải pháp bạn có thể cụ thể hơn; tức là bằng cách bắt các ngoại lệ có tên. 'try {Get-ADUser $ DN -EA Stop} bắt [Microsoft.ActiveDirectory.Management.ADIdentityNotFoundException] {" nice try "} catch {" không phải là vấn đề mong đợi "}' – JohnLBevan
'get-aduser -erroraction 'silentlycontinue'' dường như để hoạt động bình thường trong PowerShell-v4.0. –