webForumDet fria alternativet

Prestanda i VB-script

0 svar · 290 visningar · startad av colione

colioneMedlem sedan juni 20014 421 inlägg
#1

Hej

Jag sitter och filar lite på ett Active Directory script med ADO-förfrågan. Nu har jag stött på en fråga som grubblar mig lite angående prestanda och hur förfrågan bör vara utformad. Det är så att jag ska ta reda på vilken Organizational Unit en dator står i (eller rättare sagt 200+ datorer) och har utformat en fråga för det.
Nu tänkte jag bolla lite idéer på hur man ska få exekveringen så snabb som möjlig och använda så lite systemresurser som möjligt. De olika alternativen som jag har kommit på att använda är:

Gör en reqest mot hela adt och ta ut alla datorer som bor där. Filtrera därefter reulstaten 200+ gånger med hjälp av filter-funktionen i ado.

Gör en request mot hela adt 200+ gånger (1 gång per datornamn)

Gör en request mot hela adt och loopa igenom resultatet med en for loop 200+ gånger.

Set AdConn = CreateObject("ADODB.Connection")
AdConn.Provider = "ADsDSOObject"
AdConn.Open "Active Directory Provider"

Set AdComm = CreateObject("ADODB.Command")
AdComm.ActiveConnection = AdConn
AdComm.Properties("SearchScope") = 2 'sök i hela adt (subtree), måste ha denna då jag inte vet vilket OU datorn ligger i från början

defaultNC = GetObject("LDAP://RootDSE").Get("DefaultNamingContext")

AdQuery = "SELECT canonicalName " & _
" FROM 'LDAP://" & defaultNC & "'" & _
" WHERE objectCategory='computer'" ' Lägg till följande för sökning på datornamn: AND Name='"&strName&"'"

Jag har inget tillfälle att prova detta själv den närmaste veckan. Är det någon som har någon idé eller tips angående detta?

123 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
121 ms — hämta tråd, inlägg och bilagor (db)