import os
import subprocess
import ctypes
import re 

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():
	def clear_credentials(name):
		command = 'cmdkey /delete:'+name 
		cmd = subprocess.Popen(command,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
		result,error = cmd.communicate()
		if error:
		    print(error)
		else: 
			pass 

	cmd = subprocess.Popen('cmdkey /list',shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)
	result,error = cmd.communicate()
	if error:
	    print(error)
	else:
		values = re.findall("Domain:target=.+",result)
		if len(values)>0:
			for val in values:
				keyword = "="
				before_keyword, keyword, after_keyword = val.partition(keyword)
				domain_name = after_keyword.strip()
				clear_credentials(domain_name)
			print("Windows Credential cleared")
		else:
			print("No Windows Credential found.")

