Điểm:0

Lọc kết quả theo ngày nhưng gặp lỗi system.type

lá cờ jp

Tôi đang cố gắng lọc các chứng chỉ trên máy cục bộ của mình và xóa tất cả các chứng chỉ được tạo trước ngày 10/4/2021

PS C:\Users\juraj> $cert = Get-ChildItem Chứng chỉ:\localMachine\My | Đối tượng ở đâu { $_.Not Before -is [DateTime]::Today }
Không thể chuyển đổi giá trị "14/10/2021 12:00:00 AM" thành loại "System.Type". Lỗi: "Truyền không hợp lệ từ 'System.DateTime' sang
'Loại hệ thống'."
Tại dòng: 1 ký tự: 62
+ ... ocalMachine\My | Đối tượng ở đâu { $_.Not Before -is [DateTime]::Today }
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo : NotSpecified: (:) [], RuntimeException
    + FullQualifiedErrorId : RuntimeException

Vì vậy, hiện tại tôi đang thử nghiệm chức năng nhưng ngay cả khi được chuyển đổi (Get-Date).ToString, nó vẫn kết thúc với biển lỗi màu đỏ tương tự.

Làm thế nào để tôi đi về điều này?

PS 5.1 trong W11

lá cờ br
có gì trong đường dẫn `Cert:\LocalMachine\My` không? hệ thống của tôi không hiển thị gì ở đó.
JurajB avatar
lá cờ jp
vâng, chúng tôi có các mục ở đó.. để thử nghiệm, bạn có thể sử dụng đường dẫn chứng chỉ gốc Chứng chỉ:\LocalMachine\CA
lá cờ br
ok ... điều đó mang lại cho tôi một đối tượng. bây giờ ... **_TẠI SAO bạn đang kiểm tra xem hai đối tượng có cùng loại không?_** và tại sao bạn lại kiểm tra kết quả của phương thức tĩnh thay vì chỉ loại? sử dụng `[datetime]` thay vì `[datetime]::today()` hoạt động mà không có bất kỳ lỗi nào ... [*grin*]
JurajB avatar
lá cờ jp
dường như không làm việc cho tôi mặc dù PS C:\Users\juraj> Chứng nhận Get-ChildItem:\localMachine\My | Đối tượng ở đâu { $_.Not Before -is [DateTime]::Today() } Yêu cầu phương thức không thành công vì [System.DateTime] không chứa phương thức có tên 'Hôm nay'.
lá cờ br
LOẠI BỎ phương thức tĩnh ngớ ngẩn khỏi phần `[datetime]` của bạn. _chỉ sử dụng loại ... toán tử `-is` kiểm tra TYPE, không phải phương thức tĩnh. [*cười toe toét*]
JurajB avatar
lá cờ jp
bạn có thể đặt toàn bộ lệnh vào không vì nếu không có toán tử '-is' thì nó vẫn không hoạt động đối với tôi. Không chắc chắn những gì tôi đang thiếu
Điểm:0
lá cờ jp

Tôi đã giải quyết xong - Tôi đã chuyển đổi chuỗi thành [datetime] rồi sử dụng nó làm bộ lọc

$string='13/10/2021'
$string=[Datetime]::ParseExact($string, 'dd/MM/yyyy', $null)
Get-ChildItem -Recurse Chứng chỉ:\localMachine\My | Ở đâu { $_.Not Before -lt $string } | Loại bỏ mục
lá cờ br
Xuất sắc! [*cười toe toét*] điều đó không chỉ _hoạt động_ ... mà còn làm rõ ý định của bạn. đoạn mã kia đang sử dụng `-is` theo cách khiến tôi không rõ ý định.

Đă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.