#To define a particular parameter, replace the 'parameterName' inside itsm.getParameter('parameterName') with that parameter's name
import os
import subprocess as sp
user=itsm.getParameter('parameterName')
os.mkdir(os.environ['TEMP']+'\\powershell')

def powershellfile():
	from subprocess import PIPE, Popen
	print user
	file_name='powershell_file'+user+'.ps1'
	file_path=os.path.join(os.environ['TEMP']+'\\powershell', file_name)
	ps_content="""
	$p=Get-WmiObject Win32_UserProfile -computer CLIENT -filter "localpath='C:\\\Users\\\%s'"
	$p.Delete()"""%user
	with open(file_path, 'wb') as wr:
		wr.write(ps_content)
	path=os.path.join(os.environ['TEMP']+'\\powershell')
	files = []
	# r=root, d=directories, f = files
	for r, d, f in os.walk(path):
		for file in f:
			if '.ps1' in file:
				files.append(os.path.join(r, file))
	print "Powershell files created"
	return files

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()
	print out
	print err
	ret=obj.returncode
	if ret==0:
		if out:
			return out.strip()
		else:
			return ret
	else:
		if err:
			return err.strip()
		else:
			return ret
print powershellfile()
file=powershellfile()
for f in file:
	#print f
	ecmd('powershell "Set-ExecutionPolicy RemoteSigned"')
	print ecmd('powershell "%s"'%f)

name=user
try:
	print os.popen('net user '+name+" /delete").read()
except Exception as e:
	print e
	print sys.exc_type
	