potitpanda Posted March 11, 2009 Share Posted March 11, 2009 Hi I Want to select a domain as a default domain, but i want to get the list of domains available from local computers and select a default domain by applying some criters of choice ... How can I do it ??? Thx Link to comment Share on other sites More sharing options...
Danny35d Posted March 11, 2009 Share Posted March 11, 2009 Example from amel27expandcollapse popup#include <Array.au3> Global Const $SV_TYPE_WORKSTATION = 0x1 Global Const $SV_TYPE_SERVER = 0x2 Global Const $SV_TYPE_SQLSERVER = 0x4 Global Const $SV_TYPE_DOMAIN_CTRL = 0x8 Global Const $SV_TYPE_DOMAIN_BAKCTRL = 0x10 Global Const $SV_TYPE_TIME_SOURCE = 0x20 Global Const $SV_TYPE_AFP = 0x40 Global Const $SV_TYPE_NOVELL = 0x80 Global Const $SV_TYPE_DOMAIN_MEMBER = 0x100 Global Const $SV_TYPE_PRINTQ_SERVER = 0x200 Global Const $SV_TYPE_DIALIN_SERVER = 0x400 Global Const $SV_TYPE_XENIX_SERVER = 0x800 Global Const $SV_TYPE_NT = 0x1000 Global Const $SV_TYPE_WFW = 0x2000 Global Const $SV_TYPE_SERVER_MFPN = 0x4000 Global Const $SV_TYPE_SERVER_NT = 0x8000 Global Const $SV_TYPE_POTENTIAL_BROWSER = 0x10000 Global Const $SV_TYPE_BACKUP_BROWSER = 0x20000 Global Const $SV_TYPE_MASTER_BROWSER = 0x40000 Global Const $SV_TYPE_DOMAIN_MASTER = 0x80000 Global Const $SV_TYPE_WINDOWS = 0x400000 Global Const $SV_TYPE_CLUSTER_NT = 0x1000000 Global Const $SV_TYPE_TERMINALSERVER = 0x2000000 Global Const $SV_TYPE_CLUSTER_VS_NT = 0x4000000 Global Const $SV_TYPE_LOCAL_LIST_ONLY = 0x40000000 Global Const $SV_TYPE_DOMAIN_ENUM = 0x80000000 Global Const $SV_TYPE_ALL = 0xFFFFFFFF $aCompList = _NetServerEnum($SV_TYPE_DOMAIN_ENUM) _ArrayDisplay($aCompList) Func _NetServerEnum ($iSrvType = -1, $sDomain = '') Local $uBufPtr = DllStructCreate("ptr;int;int"), $res[1]=[0], $i Local $uRecord = DllStructCreate("dword;ptr"), $iRecLen = DllStructGetSize($uRecord) Local $uString = DllStructCreate("char[16]") Local $uDomain = DllStructCreate("byte[32]"), $pDomain = 0 If Not ($sDomain='' Or $sDomain='*') Then DllStructSetData($uDomain, 1, StringToBinary($sDomain,2)) $pDomain = DllStructGetPtr($uDomain) EndIf Local $ret = DllCall ("netapi32.dll", "int", "NetServerEnum", _ "ptr", 0, "int", 100, _ "ptr", DllStructGetPtr($uBufPtr,1), "int", -1, _ "ptr", DllStructGetPtr($uBufPtr,2), _ "ptr", DllStructGetPtr($uBufPtr,3), _ "int", $iSrvType, "ptr", $pDomain, "int", 0 ) If $ret[0] Then Return SetError(1, $ret[0], '') Local $res[DllStructGetData($uBufPtr,3)+1]=[DllStructGetData($uBufPtr,3)] For $i=1 To DllStructGetData($uBufPtr,3) Local $uRecord = DllStructCreate("dword;ptr", DllStructGetData($uBufPtr,1)+($i-1)*$iRecLen) Local $sNBName = DllStructCreate("byte[32]", DllStructGetData($uRecord,2)) DllStructSetData($uString,1,BinaryToString(DllStructGetData($sNBName,1),2)) $res[$i] = DllStructGetData($uString,1) Next $ret = DllCall ("netapi32.dll", "int", "NetApiBufferFree", "ptr", DllStructGetData($uBufPtr,1)) Return $res EndFunc AutoIt Scripts:NetPrinter - Network Printer UtilityRobocopyGUI - GUI interface for M$ robocopy command line Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now