blumi Posted March 16, 2012 Share Posted March 16, 2012 Found a nice command line which I want to use in an autoit script, but don't know how.Don't know if it is possible or not, who can help?WMIC /node:%computername% /namespace:\\root\ccm path sms_client CALL TriggerSchedule "{00000000-0000-0000-0000-000000000003}" /NOINTERACTIVE More info about WMIChttp://technet.microsoft.com/en-us/library/bb742610.aspx Link to comment Share on other sites More sharing options...
water Posted March 16, 2012 Share Posted March 16, 2012 Do you just want to run the command (in this case use Shellexecute) or do you want to process the returned data? My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
hawkair Posted March 16, 2012 Share Posted March 16, 2012 Hi, I think this is what you need, snatched straight from helpfile: #include <Constants.au3> ;~ Local $foo = Run(@ComSpec & " /c dir foo.bar", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD) $Cmd = 'WMIC useraccount list brief' Local $foo = Run('WMIC useraccount list brief', @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD) Local $line = "STDOUT read:" & @CRLF While 1 $line = $line & StdoutRead($foo) & @CRLF If @error Then ExitLoop MsgBox(0, "STDOUT read:", $line) WEnd $line = $line & @CRLF & "STDERR read:" & @CRLF While 1 $line = $line & StderrRead($foo) If @error Then ExitLoop MsgBox(0, "STDERR read:", $line) WEnd MsgBox(0, "Command Output", " " & $line) Exit But Can somebody tell me why if I quote out the first 2 MsgBoxes the 3rd MsgBox appears tiny in the bottom of my screen? Link to comment Share on other sites More sharing options...
water Posted March 16, 2012 Share Posted March 16, 2012 Make sure that you check This script creates AutoIt code and uses COM to access WMI. No need to use STDOUT/STDERR to get the results. My UDFs and Tutorials: Spoiler UDFs:Active Directory (NEW 2022-02-19 - Version 1.6.1.0) - Download - General Help & Support - Example Scripts - WikiExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example ScriptsOutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - WikiOutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - DownloadOutlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - WikiPowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - WikiTask Scheduler (NEW 2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs:Excel - Example Scripts - WikiWord - Wiki Tutorials:ADO - WikiWebDriver - Wiki Link to comment Share on other sites More sharing options...
blumi Posted March 16, 2012 Author Share Posted March 16, 2012 @waterNo return data is needed just want to run this code with Shellexecute seems to out of date, I get a lot of errors when I want to run the script. (Variable used before declared)@hawkairThank you hawkair I will try your code and take a look. Link to comment Share on other sites More sharing options...
hawkair Posted March 16, 2012 Share Posted March 16, 2012 @blumi You're welcome If you don't need any data returned then simply Run('WMIC useraccount list brief', @SystemDir, @SW_HIDE) will do the job I figured why the previous didnt work: the result had to many blank lines so the following works OK #include <Constants.au3> #include <Array.au3> ;~ Local $foo = Run(@ComSpec & " /c dir foo.bar", @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD) $Cmd = 'WMIC useraccount list brief' Local $foo = Run('WMIC useraccount list brief', @SystemDir, @SW_HIDE, $STDERR_CHILD + $STDOUT_CHILD) Local $line = "" While 1 $line = $line & StdoutRead($foo) If @error Then ExitLoop WEnd While 1 $line = $line & StderrRead($foo) If @error Then ExitLoop WEnd $msg = StringRegExp ($line, "[^rn]+", 3) ;remove empty lines MsgBox(0, "Command Output", _ArrayToString ($msg, @CRLF)) Exit For the Scriptomatic to work just add this line at the top #include <WindowsConstants.au3> 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