Jump to content

Recommended Posts

Posted (edited)

Hi AutoIt Programmers! :)

I've seen a code that gives Name of Group by writing it's group's SID, but this one response very slower than Windows Command-Line WMIC :(
 

Func _GetLocalGroupName($sSID = 'S-1-5-18')
    $objWMIService = ObjGet ("winmgmts:\\" & @ComputerName & "\root\cimv2")
    $colItems = $objWMIService.ExecQuery('SELECT Name FROM Win32_Group where SID="' & $sSID & '"')
    For $GroupNames in $colItems
        MsgBox (0,"",$GroupNames.Name)
        ExitLoop
    Next
EndFunc

I don't want call and use any third-party programs even CMD, i just want use from Windows API, netapi32.dll or AutoIt Functions (Standalone).
Do you have any idea to improve speed/performance of this code? I'll happy of your comments :)

 

 

 

====================== SOLOUTION by @Subz ======================

 

Edited by Colduction

Share this post


Link to post
Share on other sites
Posted (edited)
1 hour ago, argumentum said:

Thanks @argumentum, that code is very speedy. i measured and compared that with _GetLocalGroupName()  by calling 500 times and results was amazing!:

#Fastest Function: "netGetJoinInfo"

1) "_GetLocalGroupName" time elapsed: (8836.4114) ms
2) "netGetJoinInfo" time elapsed: (601.2863) ms

But it's not what i want, it's just similar, anyway thanks for your comment :)

Edited by Colduction

Share this post


Link to post
Share on other sites

Thanks to @Subz about his old comment on my blocked account :)

I measured his codes by calling 2000 times, it's faster than netapi32.dll and WMI objects:
 

#Fastest Function: "_GetAccountName"

1) "_GetAccountName" time elapsed: (359.1129) ms ; @Subz codes
2) "netGetJoinInfo" time elapsed: (2304.4145) ms

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By shital
      #Region ;**** Directives created by AutoIt3Wrapper_GUI **** #AutoIt3Wrapper_UseX64=y #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI **** RunAs(test", @ComputerName, "testinng",2,"wmic product where ""name= '%notepadexamples%'"" call uninstall", @SystemDir & "\wbem", @SW_MAXIMIZE)  it not working 
       
    • By jresine
      Hello, is it possible to know via a script or command, to have the percentage of disk usage of a process? thank you in advance.
      ps: see image

    • By Dwalfware
      HI
      Another head scratched
      Anyone solve how to get the IPV6 from WMI?
      I followed the usual SELECT * FROM Win32_NetworkAdapter WHERE NetConnectionID='" & GUICtrlRead($cboAdapters) & "'
      get the index 
      port it to 
      Local $query = $objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE Index = " & _GetSelectedNIC(), "WQL", 0x30 )
      All i can see is IPv4 addresses
      My question is is there another place the IPv6 information is hiding? I configured my LAN with IPV6 and my wireless with IPv4 so I can see what shows.
      Thanks in Advance.
      PS. I did try google
       
    • By Dwalfware
      Hi Folks
      Can not get my head around this one.
      This function gets the DNS object s
      If you have two DNS entries fine. but if you have only one! Trouble
      $objItem.DNSServerSearchOrder[0] = Primary DNS
      $objItem.DNSServerSearchOrder[1] = Secondry DNS not always there. I need a way to return 0 if not there or the IP if its there.
      Or is there a way to tell how many objects there are in the "[?]"
      I'm terrible at WMI errors, thanks for help in advance.
      Func _GETcurrentNICinfo2() $oErrors = ObjEvent("AutoIt.Error", "Error_Handle") Local $DnsSecondry Local $objWMIService = ObjGet( "winmgmts:\\" & @ComputerName & "\root\CIMV2" ) Local $query = $objWMIService.ExecQuery("SELECT DNSServerSearchOrder FROM Win32_NetworkAdapterConfiguration WHERE Index = " & _GetSelectedNIC(), "WQL", 0x30 ) If @error Then Return 0 If NOT IsObj($query) Then Return 0 Else For $objItem In $query Return $objItem.DNSServerSearchOrder[1] next Endif EndFunc  
    • By amin84
      Hello,
      I'm having trouble getting information from Win32_Processor:
      https://docs.microsoft.com/en-us/windows/desktop/CIMWin32Prov/win32-processor
      How does this WMI Query work? Let's say I need to query VMMonitorModeExtensions, Level, ProcessorId, and ProcessorType.
      How would this work?
      Thanks.
×
×
  • Create New...