Puncte:-1

Serverul a returnat următoarea eroare: context de enumerare nevalid

drapel cn

Aceasta este comanda pe care o folosesc... Ma poate ajuta cineva cu asta...

Get-ADComputer -Filter * -Searchbase "OU=IN0010,OU=BU-L04-Glass,OU=CIN,OU=L00-SGTS-USS,DC=zl,DC=if,DC=atcsg,DC=net" - Proprietăți * | Sortează LastLogon | Selectați Nume, LastLogonDate,@{Name='LastLogon';Expression={[DateTime]::FromFileTime($_.LastLogon)}} | export-csv -path c:\Temp\ADComputer.csv -NoTypeInformation

drapel cn
Câte computere produce prima comandă și toate au LastLogon?
Puncte:1
drapel cn

Să descompunem frumos asta:

  1. Ultima conectare nu este replicat între DC-uri - este un marcaj temporal unic per DC pentru acel cont. Dacă un computer nu s-a conectat niciodată la DC pe care îl atinge interogarea dvs., acea proprietate nu va fi populată. Dacă este în mare parte conectat la DC-uri diferite, data ar putea fi inexactă. În schimb, dacă doriți pur și simplu să știți dacă computerele s-au conectat „recent”, interogați LastLogonTimeStamp sau LastLogonDate - vezi nota de mai jos.

  2. Când doriți să înțelegeți ce face o interogare, nu o aruncați doar prin conductă și să ieșiți în CSV. Cu excepția cazului în care vă place să nu aveți idee despre ce se întâmplă și să deschideți un fișier CSV gol, executați mai întâi comenzi simple pentru a înțelege rezultatul și pentru a vă asigura că obțineți rezultatele corecte înainte de a le trimite în fișier. Vezi exemple de mai jos.

  3. Dacă tot ce ai nevoie este Ultima conectare sau LastLogonDate și numele computerului, Vă rog nu folosi -Proprietăți*. Interogarea dvs. va dura mult mai mult, deoarece trageți înapoi toate datele din contul de computer. Dacă aveți certificate stocate în obiecte computer în AD, acestea pot fi KB de date pentru fiecare obiect. Dacă aveți nevoie doar de două proprietăți, selectați-le: Get-ADComputer -filter '*' -properties Nume, LastlogonDate. Un exemplu de dimensiuni de date este la sfârșit.

LastLogonTimeStamp vs LastLogonDate

Spre deosebire de Ultima conectare, LastLogonTimeStamp este replicat printre toate DC, dar este precis doar cu până la 14 zile în urmă. LastLogonDate este la fel ca LastLogonTimeStamp, dar este un calculat [DateTime] proprietate (nu este stocată în LDAP, dar este calculată atunci când o interogați). Din moment ce este o [DateTime], Este mai ușor să sortați și să filtrați.

Dacă LastLogonTimeStamp are 14 sau mai puțin de zile, este posibil să existe unul mai nou Ultima conectare pentru acea mașină pe unul sau mai multe DC-uri. Dacă aveți nevoie de o oră mai precisă, va trebui să interogați toate DC-urile pentru Ultima conectare pe toate conturile de computer și apoi comparați care are cea mai recentă dată. Dar pentru scopuri tipice de raportare, cum ar fi dacă auditați conturi de mașini care ar putea fi „învechite”, LastLogonDate in general este bine.

A se referi la Acest articol pentru mai multe informatii.

Înțelegerea rezultatelor interogărilor AD/LDAP

Când nu sunteți sigur cum arată rezultatele dvs., nu le trimiteți în fișier. Pentru a înțelege ce fac comenzile dvs., încercați un filtru simplu și lăsați-l să iasă în consolă. Apoi rafinați interogarea după cum este necesar. Dacă trebuie să procesați datele după obținerea rezultatului, faceți un pas la un moment dat și verificați rezultatele înainte de a adăuga mai multe. Lucrez cu Powershell de 15 ani și încă încep așa - verific ce iese mai întâi înainte de a face următorul pas de filtrare și procesare a datelor.

Încercați următoarele exemple, înlocuind, evident, numele organizațiilor organizaționale și ale computerelor cu cele corecte din mediul dvs. (apropo, nu dezvăluiți nume reale în întrebările dvs.)

# Listați toate computerele din OU cu proprietăți implicite pe care le emite Get-AdComputer - aceasta nu include LastLogonDate etc.
# de exemplu. nume, nume distinctiv, activat, tip obiect etc... 
Get-ADComputer -Filter * -Searchbase „OU=MyOUPath,DC=example,DC=net”

# Afișați -toate- proprietățile de pe un computer numit „MyComputer”
Get-ADComputer -Filter 'nume -eq "Mycomputer"' -Searchbase "OU=MyOUPath,DC=example,DC=net" -proprietăți *

# Afișați numai anumite proprietăți de pe același computer
Get-ADComputer -Filter 'nume -eq "Mycomputer"' -Searchbase "OU=MyOUPath,DC=example,DC=net" -properties Name,LastLogonDate

# Listați toate computerele din OU numai cu nume și LastLogonDate
Get-ADComputer -Filter * -Searchbase "OU=MyOUPath,DC=example,DC=net" -properties Name,LastLogonDate

# Ca mai sus, folosind o expresie pentru a converti proprietatea LastLogon nereplicată în [datetime]
# Rețineți că este necesară o procesare suplimentară dacă trebuie să comparați această dată între mai multe DC
Get-ADComputer -Filter * -Searchbase "OU=MyOUPath,DC=example,DC=net" -properties Nume,LastLogon | Selectați Name, LogonDate,@{Name='LastLogon';Expression={[DateTime]::FromFileTime($_.LastLogon)}}

# Dacă rezultatele dvs. dintr-o comandă anterioară arată bine, acum puteți sorta și trimite în CSV
Get-ADComputer -Filter * -Searchbase "OU=MyOUPath,DC=example,DC=net" -properties Name,LastLogonDate | Sortează LastLogonDate | selectați Name,LastLogonDate | export-csv -path c:\Temp\ADComputer.csv -NoTypeInformation

Pentru ultimul exemplu, Selectați Name, LastLogonDate este de a exclude proprietățile implicite, cum ar fi Nume Distins și objectClass din exportul CSV. De asemenea, dacă nu vă place cum LastLogonDate este formatat, poate fi necesar să includeți o expresie pentru a o formata și acolo (similar cu conversia fișierului LogonDate timp de fișier).

Dimensiunea datelor de interogare LDAP

Lista de fișiere de mai jos arată diferența de dimensiunea datelor dacă returnez doar fișierul Nume și LastLogonDate a unui computer în „comp1.txt” vs TOATE proprietățile aceluiași computer în „comp2.txt”. Înmulțiți cu numărul de mașini care sunt interogate - este foarte ușor de văzut de ce o interogare va dura mult mai mult atunci când trage date inutile din AD și în rețea.

Mod LastWriteTime Lungime Nume
---- ------------- ------ ----
-a---- 2022-02-14 18:41 894 comp1.txt
-a---- 2022-02-14 18:42 69736 comp2.txt

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.