Baboo85

Send multiple commands line in a CMD window

3 posts in this topic

#1 ·  Posted (edited)

Hi all,

I need to start a script that include:

- admin privileges

- multiple cmd commands

- no bat, no exe, no tmp files created anywhere (especially in the user temp folder)

In a bat file it would be simple, but users shouldn't see what commands I'm sending.

Example of the script:

echo off
cls
echo.
echo I AM A TOOL
echo.
echo NOTE:
echo - note 1
echo - note 2
echo - etc
set USER1=0
set COMPUTER1=0
if /i %username% equ user.user (
set USER1=1
set COMPUTER1=1 )
if /i %username% equ another.user set USER1=1
if /i %computername% equ notebook set COMPUTER1=1
if %USER1% EQU 1 ( 
if %COMPUTER1% EQU 1 (
reg delete "HKLM\SOFTWARE\blablabla" /f
) else ( echo Computer not authorized. Contact assistance.)
) else ( echo User not authorized. Contact assistance.)
echo.
pause
exit

With the send("") is a disaster.

I'm a noob here, so what can I do?

 

EDIT: OR ELSE I explain the situation and what I need, so if there is a simple solution I can use that.

 

SITUATION: our domain users have Users rights on the machine. Some of them need administrator rights.

We create a local user with administrator rights, so that the users must insert username and password when asked to run something with administrator rights.

We have an internal domain group policy that blocks EXE, BAT, COM, TMP files from the user local temp directory, for a security reason (malware). That also blocks most software installation.

But some users are often out of office, away from workplace and in another country, they need a complete control on their computers.

 

WHAT I NEED: I need to check the username and the computer name. If the username is the one with local administrator rights and the computer name is a computer that is qualified to temporary remove the policy, then I need to execute a REG DELETE command with administrator rights.

 

I hope I explained myself.

 

Thank you very much.

Edited by Baboo85

Share this post


Link to post
Share on other sites

Maybe something like:

;~ AdminInfo.ini
;~ [UserName]
;~ Username = Firstname Lastname
;~ [ComputerName]
;~ ComputerName = Domain

#NoTrayIcon
#include <Array.au3>
Global $bUserName = False, $bComputerName = False
Global $sErrorMsg = ""
Global $sAdminInfo = @ScriptDir & "\AdminInfo.ini"
    If FileExists($sAdminInfo) = 0 Then Exit

Global $aUserName = IniReadSection($sAdminInfo, "UserName")
    If @error Then Exit
If _ArraySearch($aUserName, @UserName, 0, 0, 0, 0, 1, 0) > 0 Then $bUserName = True

Global $aComputerName = IniReadSection($sAdminInfo, "ComputerName")
    If @error Then Exit
If _ArraySearch($aComputerName, @ComputerName, 0, 0, 0, 0, 1, 0) > 0 Then $bComputerName = True

MsgBox(0,'', "Username: " & $bUserName & @CRLF & "ComputerName: " & $bComputerName)

If $bComputerName And $bUserName Then
    MsgBox(0,'', 'test')
    RegDelete("HKLM\SOFTWARE\blahblabla", "RegValue")
Else
    If $bComputerName = False Then $sErrorMsg &= @ComputerName & " is not authorised" & @CRLF
    If $bComputerName = False Then $sErrorMsg &= @UserName & " is not authorised"
    MsgBox(4096, "Error", $sErrorMsg)
EndIf

 

Share this post


Link to post
Share on other sites

#3 ·  Posted (edited)

RegDelete("HKLM\SOFTWARE\blahblabla", "RegValue")

So this is the command to remove a key from the registry? Nice.

Thank you, I'll try this and I'll let you know, because I can't add files (AdminInfo.ini), I need to keep all into the exe file. I need an array.

It's inconvenient, but users shouldn't see anything.

Also I'll add the #RequireAdmin command

Edited by Baboo85

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

  • Similar Content

    • Simpel
      By Simpel
      Hi.
      Thanks to this post (https://www.autoitscript.com/forum/topic/189553-writing-to-cmd/?do=findComment&comment=1361142) I can now write a helpfile to the cmd when for instance passing parameter -h or -help at cmd. But then cmd is blocked by the script (I had to free it with CTRL+BREAK):
      #include <WinAPI.au3> _WinAPI_AttachConsole() $hConsole = _WinAPI_GetStdHandle(1) _WinAPI_WriteConsole($hConsole, "Print helpfile................" & @CRLF) Inside MSDN Library then I found this sentence: A process can use the FreeConsole function to detach itself from its console.
      But I don't find something like _WinAPI_FreeConsole(). How can I do it in another way?
      Regards, Conrad
    • TheAutomator
      By TheAutomator
      A fullscreen console with custom commands!

      Introduction:
      Hi everyone!
      This funny project started as a question in the help section:
      https://www.autoitscript.com/forum/topic/174404-edit-detect-key-before-updating-content/
      I'd like to share this script with everyone that is interested. 
       
      Why would I want it?
      You like the old style fullscreen console (like in the old day's), You can add custom commands, You can customize the font a lot more compared to cmd.exe, You can share ideas or add tweaks to the script.  
      Still to do:
      Write a simple custom programming language to implement this tool. Writing a little help file / pdf to describe my little programming language. Add little sound effects like a beep if there is a syntax error (optional). Clean up and modify Console.Au3 content. Add an option to have to type a login password (optional). Make an optional installer that also gives scripts for this tool a custom icon and open with command. ...Call Neo?  
      Thanks to:
      xxaviarxx: debugging, some ideas. jguinch: debugging, adding a bunch of tweaks and ideas. kylomas: debugging, new ideas.  
      Edits and updates:
      Added usage of tab key in edit control Edit has focus now on startup I'm currently rewriting a simple custom programming language to implement this tool.  
      UDF download: Console.au3
       
      Regards
      TheAutomator
    • BlazerV60
      By BlazerV60
      Hello all,
      I've written the code below which launches chrome in incognito mode and then proceeds to go to the autoit website.
      From my understanding, the Run() command is also supposed to output the PID number related to the application that got launched from the Run command.
      However when I run the below lines, it outputs a PID number that is different from the newly launched chrome browser's PID number, does anyone know why and possibly explain how I could retrieve the accurate PID number associated with the newly launched browser?
      Global $iPid = Run(@ComSpec & ' /c start chrome.exe https://www.autoitscript.com/forum/ -incognito' ,"", "") msgbox(0,"",$iPid) Thank you,
      Brian
    • badcoder123
      By badcoder123
      Anyone know how to access the information circled in the photo?
       

    • AndreyS
      By AndreyS
      Dear developers and creators of the language, please explain to me why when pressing the combination Crtl + Shift + C from the 5th or the 10th time "sticks / sinks" Ctrl or Shift? And then you need to press Ctrl or Shift again to reset their triggering. I only need to use hot keys like in the example!
      The code is a small example. Its essence is that when a user in the editor selects any number and presses a combination, then it increases by 1. 
      Dim $x HotKeySet("+^c","Calc") While 1 Sleep(10000) WEnd Func Calc() Send("^c") Sleep(50) $x=ClipGet()+1 ClipPut($x) Send("^v") EndFunc I thought that in my program some kind of glitch was searching for a reason for a long time. And it turned out that apparently somehow the work of some functions used in the example is not compatible. 
      Tell me, please, what is the problem?