Chris86 Posted August 9, 2008 Share Posted August 9, 2008 Hi, How get a script to list all users on the network i am on? Im trying to make a script that allows me to remote shutdown my servers, i can do this by type this in Commandline: shutdown -m \\Computername But how can i find all my server names? this is a shared network but i can't see the servers in share files, but i can shut them down with this shutdown -m \\Computername how can i list all the servers? I have searched around in the forums and i didn't find anything useful Link to comment Share on other sites More sharing options...
BrettF Posted August 9, 2008 Share Posted August 9, 2008 Could you do an IP search, then _TCPIpToName? Vist my blog!UDFs: Opens The Default Mail Client | _LoginBox | Convert Reg to AU3 | BASS.au3 (BASS.dll) (Includes various BASS Libraries) | MultiLang.au3 (Multi-Language GUIs!)Example Scripts: Computer Info Telnet Server | "Secure" HTTP Server (Based on Manadar's Server)Software: AAMP- Advanced AutoIt Media Player | WorldCam | AYTU - Youtube Uploader Tutorials: Learning to Script with AutoIt V3Projects (Hardware + AutoIt): ArduinoUseful Links: AutoIt 1-2-3 | The AutoIt Downloads Section: | SciTE4AutoIt3 Full Version! Link to comment Share on other sites More sharing options...
Legacy99 Posted August 9, 2008 Share Posted August 9, 2008 What is your DHCP server? Query it with a NETSH command if it's a Windows server to see all the IP leases. Just a thought. (This assumes you are using Windows DHCP and are admin to the box) Link to comment Share on other sites More sharing options...
spudw2k Posted August 9, 2008 Share Posted August 9, 2008 you could also try "net view" from a cmd line Spoiler Things I've Made: Always On Top Tool ◊ AU History ◊ Deck of Cards ◊ HideIt ◊ ICU ◊ Icon Freezer ◊ Ipod Ejector ◊ Junos Configuration Explorer ◊ Link Downloader ◊ MD5 Folder Enumerator ◊ PassGen ◊ Ping Tool ◊ Quick NIC ◊ Read OCR ◊ RemoteIT ◊ SchTasksGui ◊ SpyCam ◊ System Scan Report Tool ◊ System UpTime ◊ Transparency Machine ◊ VMWare ESX BuilderMisc Code Snippets: ADODB Example ◊ CheckHover ◊ Detect SafeMode ◊ DynEnumArray ◊ GetNetStatData ◊ HashArray ◊ IsBetweenDates ◊ Local Admins ◊ Make Choice ◊ Recursive File List ◊ Remove Sizebox Style ◊ Retrieve PNPDeviceID ◊ Retreive SysListView32 Contents ◊ Set IE Homepage ◊ Tickle Expired Password ◊ Transpose ArrayProjects: Drive Space Usage GUI ◊ LEDkIT ◊ Plasma_kIt ◊ Scan Engine Builder ◊ SpeeDBurner ◊ SubnetCalcCool Stuff: AutoItObject UDF ◊ Extract Icon From Proc ◊ GuiCtrlFontRotate ◊ Hex Edit Funcs ◊ Run binary ◊ Service_UDF Link to comment Share on other sites More sharing options...
Juppie7 Posted August 9, 2008 Share Posted August 9, 2008 (edited) Look up help docs on StdoutRead(...) and StderrRead(...) in conjunction with: $c="net view" Local $p=Run(@ComSpec&" /c "&$c,@SystemDir,@SW_HIDE,$STDERR_CHILD+$STDOUT_CHILD) Then parse the returned string set in $p. That's it. Will list everyone within your domain, you parse it to... an array for example, then output into your GUI edit box control or w/e. Additionally, if you only want the list to be comprised of those whom are actually running your "server", I would recommend that you first grab all of these node names using the above method, and then run a TCP connection to each node w/ a timeout in the script("after x many iterations w/ sleep(500) set, break loop"). If the connection is successfull (as returned by TCPConnect), then you can flag that node as being one whom is running your server. Yet again, do this in array for ease of use... a 2 dimensional array. One element for a string parsed from above method, and another for it's true/false flag of whether or not it's running a server. And if you want to speed things up, you can throw a Ping(...) command in there to preface each nodes TCPConnect(...) test. That way if the node shutdown before the TCPConnect was attempted, you can automatically assume from Ping's result that you won't need to TCPConnect with a timeout, flag it false, and continue to next array index. Then you'll have a composite list of all servers on your network(whom are running your server), displayable through a GUI or even a File. Edited August 9, 2008 by Juppie7 Link to comment Share on other sites More sharing options...
rasim Posted August 9, 2008 Share Posted August 9, 2008 Chris86Try this:Global Const $SV_TYPE_WORKSTATION = 0x1 $aServers = _NetServerEnum($SV_TYPE_WORKSTATION) If $aServers[0] = 0 Then Exit For $i = 1 To $aServers[0] RunWait(@ComSpec & " /c shutdown -s -t 3 -m " & $aServers[$i], @SystemDir, @SW_HIDE) Next 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 Link to comment Share on other sites More sharing options...
ChrisL Posted August 9, 2008 Share Posted August 9, 2008 Chris86 Try this: Global Const $SV_TYPE_WORKSTATION = 0x1 $aServers = _NetServerEnum($SV_TYPE_WORKSTATION) If $aServers[0] = 0 Then Exit For $i = 1 To $aServers[0] RunWait(@ComSpec & " /c shutdown -s -t 3 -m " & $aServers[$i], @SystemDir, @SW_HIDE) Next 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 EndFuncoÝ÷ Ûú®¢×Ǻܨ»eÈn·*.®Ç¥}Ú0}ÀÒ-)äʧyçt÷m=Ù·¢·éÚ殶sdvÆö&Â6öç7Bb33cµ5eõEUõtõ$µ5DDôâÒ ¢b33c¶6W'fW'2ÒôæWE6W'fW$VçVÒb33cµ5eõEUõtõ$µ5DDôâ ¤bb33c¶6W'fW'5³ÒÒFVâW@ ¤f÷"b33c¶ÒFòb33c¶6W'fW'5³Ð bb33c¶6W'fW'5²b33c¶ÒfÇC²fwC²6ö×WFW&æÖRFVâ'VåvB6öÕ7V2fײgV÷C²ö26WFF÷vâ×2×B2ÖÒb3#²b3#²gV÷C²fײb33c¶6W'fW'5²b33c¶ÒÂ77FVÔF"Â5uôDR¤æW@ ¤gVæ2ôæWE6W'fW$VçVÒb33c¶7'eGRÒÓÂb33c·4FöÖâÒb33²b33²¢Æö6Âb33c·T'VeG"ÒFÆÅ7G'V7D7&VFRgV÷C·G#¶çC¶çBgV÷C²Âb33c·&W5³ÓÕ³ÒÂb33c¶¢Æö6Âb33c·U&V6÷&BÒFÆÅ7G'V7D7&VFRgV÷C¶Gv÷&C·G"gV÷C²Âb33c¶&V4ÆVâÒFÆÅ7G'V7DvWE6¦Rb33c·U&V6÷&B¢Æö6Âb33c·U7G&ærÒFÆÅ7G'V7D7&VFRgV÷C¶6%³eÒgV÷C²¢Æö6Âb33c·TFöÖâÒFÆÅ7G'V7D7&VFRgV÷C¶'FU³3%ÒgV÷C²Âb33c·FöÖâÒ¢bæ÷Bb33c·4FöÖãÒb33²b33²÷"b33c·4FöÖãÒb33²¢b33²FVà¢FÆÅ7G'V7E6WDFFb33c·TFöÖâÂÂ7G&æuFô&æ'b33c·4FöÖâÃ"¢b33c·FöÖâÒFÆÅ7G'V7DvWEG"b33c·TFöÖâ¢VæD`¢Æö6Âb33c·&WBÒFÆÄ6ÆÂgV÷C¶æWF3"æFÆÂgV÷C²ÂgV÷C¶çBgV÷C²ÂgV÷C´æWE6W'fW$VçVÒgV÷C²Âð¢gV÷C·G"gV÷C²ÂÂgV÷C¶çBgV÷C²ÂÂð¢gV÷C·G"gV÷C²ÂFÆÅ7G'V7DvWEG"b33c·T'VeG"ÃÂgV÷C¶çBgV÷C²ÂÓÂð¢gV÷C·G"gV÷C²ÂFÆÅ7G'V7DvWEG"b33c·T'VeG"Ã"Âð¢gV÷C·G"gV÷C²ÂFÆÅ7G'V7DvWEG"b33c·T'VeG"Ã2Âð¢gV÷C¶çBgV÷C²Âb33c¶7'eGRÂgV÷C·G"gV÷C²Âb33c·FöÖâÂgV÷C¶çBgV÷C²Â¢bb33c·&WE³ÒFVâ&WGW&â6WDW'&÷"Âb33c·&WE³ÒÂb33²b33²¢Æö6Âb33c·&W5´FÆÅ7G'V7DvWDFFb33c·T'VeG"Ã2³ÓÕ´FÆÅ7G'V7DvWDFFb33c·T'VeG"Ã2Тf÷"b33c¶ÓFòFÆÅ7G'V7DvWDFFb33c·T'VeG"Ã2¢Æö6Âb33c·U&V6÷&BÒFÆÅ7G'V7D7&VFRgV÷C¶Gv÷&C·G"gV÷C²ÂFÆÅ7G'V7DvWDFFb33c·T'VeG"òb33c¶Ó¢b33c¶&V4ÆVâ¢Æö6Âb33c·4ä$æÖRÒFÆÅ7G'V7D7&VFRgV÷C¶'FU³3%ÒgV÷C²ÂFÆÅ7G'V7DvWDFFb33c·U&V6÷&BÃ"¢FÆÅ7G'V7E6WDFFb33c·U7G&ærÃÄ&æ'Fõ7G&ærFÆÅ7G'V7DvWDFFb33c·4ä$æÖRÃÃ"¢b33c·&W5²b33c¶ÒÒFÆÅ7G'V7DvWDFFb33c·U7G&ærâæW@¢b33c·&WBÒFÆÄ6ÆÂgV÷C¶æWF3"æFÆÂgV÷C²ÂgV÷C¶çBgV÷C²ÂgV÷C´æWD'VffW$g&VRgV÷C²ÂgV÷C·G"gV÷C²ÂFÆÅ7G'V7DvWDFFb33c·T'VeG"â&WGW&âb33c·&W0¤VæDgVæ0 [u]Scripts[/u]Minimize gui to systray _ Fail safe source recoveryMsgbox UDF _ _procwatch() Stop your app from being closedLicensed/Trial software system _ Buffering Hotkeys_SQL.au3 ADODB.Connection _ Search 2d Arrays_SplashTextWithGraphicOn() _ Adjust Screen GammaTransparent Controls _ Eventlogs without the crap_GuiCtrlCreateFlash() _ Simple Interscript communication[u]Websites[/u]Curious Campers VW Hightops Lambert Plant Hire Link to comment Share on other sites More sharing options...
rasim Posted August 9, 2008 Share Posted August 9, 2008 ChrisLbut you'll shut yourself down! And I think you need \\ before the name Yes, you are right! Thanks for corrections Link to comment Share on other sites More sharing options...
Chris86 Posted August 9, 2008 Author Share Posted August 9, 2008 What is your DHCP server? Query it with a NETSH command if it's a Windows server to see all the IP leases. Just a thought. (This assumes you are using Windows DHCP and are admin to the box)Im not sure :S this is s project on school, all the servers are normal computers running ftp server, and all student computers and teacher computers are connected somehow, so i can turn them off using the shutdown -m \\Computername in cmd to shut them off Link to comment Share on other sites More sharing options...
2words4uready Posted August 9, 2008 Share Posted August 9, 2008 Im not sure :S this is s project on school, all the servers are normal computers running ftp server, and all student computers and teacher computers are connected somehow, so i can turn them off using the shutdown -m \\Computername in cmd to shut them offSo you are trying to shutdown any computer you want to in school(Sounds fishy) Link to comment Share on other sites More sharing options...
BrettF Posted August 9, 2008 Share Posted August 9, 2008 Im not sure :S this is s project on school, all the servers are normal computers running ftp server, and all student computers and teacher computers are connected somehow, so i can turn them off using the shutdown -m \\Computername in cmd to shut them offYou might have trouble doing that... My school blocked it somehow.... Vist my blog!UDFs: Opens The Default Mail Client | _LoginBox | Convert Reg to AU3 | BASS.au3 (BASS.dll) (Includes various BASS Libraries) | MultiLang.au3 (Multi-Language GUIs!)Example Scripts: Computer Info Telnet Server | "Secure" HTTP Server (Based on Manadar's Server)Software: AAMP- Advanced AutoIt Media Player | WorldCam | AYTU - Youtube Uploader Tutorials: Learning to Script with AutoIt V3Projects (Hardware + AutoIt): ArduinoUseful Links: AutoIt 1-2-3 | The AutoIt Downloads Section: | SciTE4AutoIt3 Full Version! Link to comment Share on other sites More sharing options...
Chris86 Posted August 9, 2008 Author Share Posted August 9, 2008 Well, our school hasn't i have tested it Link to comment Share on other sites More sharing options...
Chris86 Posted August 9, 2008 Author Share Posted August 9, 2008 So you are trying to shutdown any computer you want to in school (Sounds fishy)No, i just don't want to learn other people at school how to shutdown computers by using commandline, my script will also have a filter, all students pcs names has the two characters of the student name in it, like me, Christian Cock, would be Chco-[Computernumber](those would be filtered) and the servers would just have server1, server2. 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