kpu Posted November 7, 2005 Share Posted November 7, 2005 (edited) My company uses Novell's ConsoleOne to remote control PC's. We currently use a product called ZenBrowser which to say the list isn't always working correctly, yet ConsoleOne is always able to control a PC. With that said I came up with the following code. Here's what it basically does.1. Reads three things from "settings.ini"Tree: Novell treeRemoteAgentPassword: Password used by Rconsole to connectNlistQueryName: Container where the workstations are located.2. At the GUI window you can either "find" it or "remote" it.FindIt: Means you only know the inventory number, but not the full name of the workstationRemoteIt: Means you know the workstations full name.3. When you click Find it, it will use "nlist" to search the container specified in the "settings.ini" and display the first item. It will prompt you with a message box, then copy the text to the text box with a max chactors of 14 due to our naming convention.Here's what I need it do possibly do:When it uses "nlist.exe", it temps the output to a file. I would like to to output the text to a GUI Combo Box if possible, removing any spaces from the file. Any help would greatly be appreciated.Here's the Code:expandcollapse popup#include <GuiConstants.au3> ;----------------------------------------------------------------------------------------------- AutoItSetOption("TrayIconHide", 1) ;----------------------------------------------------------------------------------------------- _errorCtl() ;----------------------------------------------------------------------------------------------- $script_title = "Mini Remoter V2" GuiCreate($script_title, 266, 120, 430,346) GUISetFont(12, 400, "", "Arial") $txt_pcname = GuiCtrlCreateInput("Inventory Number Here", 8, 32, 249, 29) GUICtrlSetLimit(-1, 14) $btn_findit = GuiCtrlCreateButton("Find It", 56, 64, 97, 25) $btn_remote = GuiCtrlCreateButton("Remote It", 160, 64, 97, 25) $Label1 = GuiCtrlCreateLabel("Type in the inventory number Below", 8, 5, 224, 20) ;----------------------------------------------------------------------------------------------- GUICtrlCreateMenu("Information",300,200) $filemenu = GUICtrlCreateMenu ("&File") $help = GUICtrlCreateMenuitem ("&Help",$filemenu) $about = GUICtrlCreateMenuitem ("&About",$filemenu) $close = GUICtrlCreateMenuitem ("&Exit",$filemenu) ;----------------------------------------------------------------------------------------------- $tree = IniRead("settings.ini", "RCONSOLE", "TREE", "") $pword = IniRead("settings.ini", "RCONSOLE", "RemoteAgentPassword", "") $ws_container = IniRead("settings.ini", "RCONSOLE", "WorkStationContainer", "") $ws_nlist = IniRead("settings.ini", "RCONSOLE", "NLISTQUERY", "") ;----------------------------------------------------------------------------------------------- FileInstall("sscreen.gif", @TempDir & "\sscreen.gif") $splash = @TempDir & "\sscreen.gif" ;----------------------------------------------------------------------------------------------- GuiSetState() While 1 $msg = GUIGetMsg() Select Case $msg = $btn_findit GUICtrlSetState($btn_findit, $GUI_DISABLE) $ws = GUICtrlRead($txt_pcname) $ws_ip = TCPNameToIP($ws) SplashImageOn("Searching, please wait...", $splash, 272, 167, 300, 100, 16) $temp = @TempDir & "\temp.txt" RunWait(@ComSpec & " /c " & "z:\cx .", "", @SW_HIDE) RunWait(@ComSpec & " /c " & "z:\cx ou=" & $ws_nlist, "", @SW_HIDE) RunWait(@ComSpec & " /c " & "z:\nlist workstation= *" & $ws & "* > " & $temp, "", @SW_HIDE) $file = FileOpen($temp, 0) If $file = -1 Then MsgBox(0, "Error", "Unable to open " & $temp) Exit EndIf $line = FileReadLine($file, 1) SplashOff() If $line = "No workstation objects were found." Then MsgBox(16, "Warning!", $line) Else MsgBox(32, "PC Information", "PC found with the following information:" & @CRLF & $line) GUICtrlSetState($btn_findit, $GUI_ENABLE) ClipPut($line) FileClose($file) WinSetState($script_title, "", @SW_SHOW) ControlSend($script_title, "", "Edit1", ClipGet()) EndIf Case $msg = $btn_remote GUICtrlSetState($btn_remote, $GUI_DISABLE) $ws = GUICtrlRead($txt_pcname) $ws_ip = TCPNameToIP($ws) TCPStartup() $ws = GUICtrlRead($txt_pcname) $ws_ip = TCPNameToIP($ws) $run_line = 'RCConsole -n"' & $tree & '" -c"Remote Control" -t"0" -s"2" -a"' & $ws_ip & '" -p"' & $pword & '" -w"' & $ws & $ws_container & '"' RunWait(@ComSpec & " /c " & $run_line, "", @SW_HIDE) GUICtrlSetState($btn_remote, $GUI_ENABLE) ;--------------------------------------------------------------------------------------- Case $msg = $help MsgBox(64,"Help","No help Information at this time. Call Bill Bunnhummer for assistance at 1-800-132-1234.") Case $msg = $about MsgBox(64,"About","Program is used as a replacement for ZenBrowser." & @CRLF & "It uses ConsoleOne Components to remote control the workstation.") Case $msg = $close ExitLoop ;--------------------------------------------------------------------------------------- Case $msg = $GUI_EVENT_CLOSE ExitLoop Case Else ;;; EndSelect WEnd Exit ;----------------------------------------------------------------------------------------------- Func _errorCtl();This is used for error control. If UBound(ProcessList(@ScriptName)) > 2 Then $run2 = Msgbox(164,"Warning","Application is already running!") Exit Else EndIf $error_1 = FileExists("settings.ini") If $error_1 = "0" Then MsgBox(16,"Warning!",'Please make sure "setting.ini" is in the same directory as ' & @ScriptName) Exit EndIf EndFuncHere's what the settings.ini looks like. [RCONSOLE];What tree it should use.TREE=KIDS;The remote Agenet PasswordRemoteAgentPassword=npgb;Full path from root. This is used for Nlist to query for workstationNLISTQUERY=workstationsTree: Novell treeRemoteAgentPassword: Password used by Rconsole to connectNlistQueryName: Container where the workstations are located.Here's what the Nlist query looks like when temped to a file.*There are spaces between the name and "workstation"Current context: workstations.chcPartial Name Object Class-------------------------------------------------------------------------------ASW-WS-30876 Workstation ERD-SP-30878 Workstation FRC-SP-30879 Workstation HLB-SP-30879 Workstation ITS-CP-30877 Workstation MCR-SP-30870 Workstation MCR-SP-30873 Workstation MCR-SP-30874 Workstation SEC-MP-30870 Workstation ZFD-CP-30871 Workstation A total of 10 workstation objects was found in this context.A total of 10 workstation objects was found. Edited November 9, 2005 by kpu http://www.kpunderground.com Link to comment Share on other sites More sharing options...
kpu Posted November 9, 2005 Author Share Posted November 9, 2005 Noboby has any comments?? http://www.kpunderground.com Link to comment Share on other sites More sharing options...
blakel Posted November 9, 2005 Share Posted November 9, 2005 Remote the user account. It looks up the workstation for you. Link to comment Share on other sites More sharing options...
kpu Posted November 9, 2005 Author Share Posted November 9, 2005 Remote the user account. It looks up the workstation for you.What if the user is logged into mulitpule workstations? http://www.kpunderground.com Link to comment Share on other sites More sharing options...
blakel Posted November 9, 2005 Share Posted November 9, 2005 (edited) It will give you a choice of IP. That may not be perfect, but if it limits the coices to 2 or 3 that is better than all the workstations. Edited November 9, 2005 by blakel 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