This commit is contained in:
Shay Nehmad 2019-10-03 18:35:51 +03:00
parent 90be53e920
commit 46868e9996
4 changed files with 11 additions and 7 deletions

View File

@ -49,10 +49,8 @@ class CommunicateAsNewUser(PBA):
@staticmethod
def get_commandline_for_ping(domain=PING_TEST_DOMAIN, is_windows=is_windows_os()):
if is_windows:
return "{} {} {} {}".format("PING.exe", domain, "-n", "1")
else:
return "ping -c 1 {domain}".format(domain=PING_TEST_DOMAIN)
format_string = "PING.exe {domain} -n 1" if is_windows else "ping -c 1 {domain}"
format_string.format(domain=domain)
def send_ping_result_telemetry(self, exit_status, commandline, username):
"""

View File

@ -35,4 +35,8 @@ class AutoNewUser:
@abc.abstractmethod
def run_as(self, command):
"""
Run the given command as the new user that was created.
:param command: The command to run - give as shell commandline (e.g. "ping google.com -n 1")
"""
raise NotImplementedError()

View File

@ -55,4 +55,4 @@ class AutoNewLinuxUser(AutoNewUser):
# delete the user.
commands_to_delete_user = get_linux_commands_to_delete_user(self.username)
logger.debug("Trying to delete {} with commands {}".format(self.username, str(commands_to_delete_user)))
_ = subprocess.check_output(" ".join(commands_to_delete_user), stderr=subprocess.STDOUT, shell=True)
_ = subprocess.check_output(" ".join(commands_to_delete_user), stderr=subprocess.STDOUT, shell=True)

View File

@ -9,6 +9,7 @@ WAIT_TIMEOUT_IN_MILLISECONDS = 20 * 1000
logger = logging.getLogger(__name__)
def get_windows_commands_to_add_user(username, password, should_be_active=False):
windows_cmds = [
'net',
@ -41,6 +42,7 @@ class AutoNewWindowsUser(AutoNewUser):
"""
See AutoNewUser's documentation for details.
"""
def __init__(self, username, password):
"""
Creates a user with the username + password.
@ -64,7 +66,7 @@ class AutoNewWindowsUser(AutoNewUser):
".", # Use current domain.
self.password,
win32con.LOGON32_LOGON_INTERACTIVE, # Logon type - interactive (normal user). Need this to open ping
# using a shell.
# using a shell.
win32con.LOGON32_PROVIDER_DEFAULT) # Which logon provider to use - whatever Windows offers.
except Exception as err:
raise NewUserError("Can't logon as {}. Error: {}".format(self.username, str(err)))
@ -150,4 +152,4 @@ class AutoNewWindowsUser(AutoNewUser):
_ = subprocess.check_output(
commands_to_delete_user, stderr=subprocess.STDOUT, shell=True)
except Exception as err:
raise NewUserError("Can't delete user {}. Info: {}".format(self.username, err))
raise NewUserError("Can't delete user {}. Info: {}".format(self.username, err))