Puncte:0

Se filtrează rezultatele pentru dată, dar se obține eroarea system.type

drapel jp

Încerc să filtrez certificatele pe computerul meu local și să elimin toate cele create înainte de 10.04.2021

PS C:\Users\juraj> $cert = Get-ChildItem Cert:\localMachine\My | Where-Object { $_.NotBefore -is [DateTime]::Today }
Nu se poate converti valoarea „14/10/2021 12:00:00 AM” pentru a tasta „System.Type”. Eroare: „Distribuire nevalidă de la „System.DateTime” la
'Tip de sistem'."
La linia:1 char:62
+ ... ocalMachine\My | Where-Object { $_.NotBefore -is [DateTime]::Today }
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo: NotSpecified: (:) [], RuntimeException
    + FullyQualifiedErrorId: RuntimeException

Deci, în prezent testez funcția, dar chiar și atunci când sunt convertite (Get-Date). ToString se termină cu o mare roșie similară de erori.

Cum fac asta?

PS 5.1 în W11

drapel br
există ceva în calea „Cert:\LocalMachine\My”? sistemul meu nu arata nimic acolo.
JurajB avatar
drapel jp
da, avem articole acolo.. pentru testare, puteți folosi calea certificat rădăcină Cert:\LocalMachine\CA
drapel br
ok... asta imi da un obiect. acum... **_DE CE testezi pentru a vedea dacă cele două obiecte sunt de același tip?_** și de ce testezi rezultatul metodei statice în loc de doar tipul? folosind `[datetime]` în loc de `[datetime]::today()` funcționează fără erori... [*grin*]
JurajB avatar
drapel jp
totuși nu pare să funcționeze pentru mine PS C:\Users\juraj> Get-ChildItem Cert:\localMachine\My | Where-Object { $_.NotBefore -is [DateTime]::Today() } Invocarea metodei a eșuat deoarece [System.DateTime] nu conține o metodă numită „Today”.
drapel br
ELIMINAȚI metoda statică stupidă din secțiunea dvs. `[datetime]`. _folosiți doar tipul... operatorul `-is` verifică un TYPE, nu o metodă statică. [*grimasă*]
JurajB avatar
drapel jp
puteți introduce comanda completă, deoarece fără operatorul „-is” încă nu funcționează pentru mine. Nu sunt sigur ce îmi lipsește
Puncte:0
drapel jp

L-am rezolvat - am convertit șirul în [datetime] și apoi l-am folosit ca filtru

$string='13.10.2021'
$string=[Datetime]::ParseExact($string, 'zz/LL/aaaa', $null)
Get-ChildItem -Recurse Cert:\localMachine\My | Unde { $_.NotBefore -lt $șir } | Eliminați-element
drapel br
excelent! [*rânjește*] că nu numai că _funcționează_... îți explică intenția. celălalt cod folosea `-is` în moduri care au făcut ca intenția să fie neclară pentru mine.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.