ps_content=r'''iex ((New-Object System.Net.WebClient).DownloadString("https://chocolatey.org/install.ps1"))''' import os def out(func): def inner(*args,**kwargs): if os.path.exists(r"C:\ProgramData\chocolatey"): print("Already chocolatey installed") print(os.popen("choco").read()) pass else: return func(*args,**kwargs) return inner @out def ecmd(command): import ctypes from subprocess import PIPE, Popen class disable_file_system_redirection: _disable = ctypes.windll.kernel32.Wow64DisableWow64FsRedirection _revert = ctypes.windll.kernel32.Wow64RevertWow64FsRedirection def __enter__(self): self.old_value = ctypes.c_long() self.success = self._disable(ctypes.byref(self.old_value)) def __exit__(self, type, value, traceback): if self.success: self._revert(self.old_value) with disable_file_system_redirection(): obj = Popen(command, shell = True, stdout = PIPE, stderr = PIPE) out, err = obj.communicate() ret=obj.returncode if ret==0: if out: return out.strip() else: return ret else: if err: print("ERROR!!!") return err.strip() else: return ret file_name='powershell_file.ps1' file_path=os.path.join(os.environ['TEMP'], file_name) with open(file_path, 'wb') as wr: wr.write(ps_content) #ecmd('powershell "Set-ExecutionPolicy RemoteSigned"') print ecmd(r'powershell "Set-ExecutionPolicy RemoteSigned" && powershell -File "%s" > C:\Windows\temp\chocolog.txt && type C:\Windows\temp\chocolog.txt'%file_path)