#To define a particular parameter, replace the 'parameterName' inside itsm.getParameter('parameterName') with that parameter's name
#The network share file path
Folderpath=itsm.getParameter('Folderpath')
#provide filename with extension
filename=itsm.getParameter('filename')
# Provide the user name for the shared system
share_user=itsm.getParameter('share_user')
# Provide the password for the shared system
share_pass=itsm.getParameter('share_pass')


Filepath=r""+Folderpath+'\\'+filename
print(Filepath)
import os
import shutil
import ctypes
import subprocess
import re

dirPath = []
cmd = subprocess.Popen("net users",shell=True,stdout=subprocess.PIPE,stdin=subprocess.PIPE)
r,e=cmd.communicate()
if e:
    print(e)
else:
    value = re.findall("The command.+",r)
    for i in value :
        val = r.replace(i,"")
    keyword = "-------------------------------------------------------------------------------"
    before_keyword, keyword, after_keyword = (val.strip()).partition(keyword)
    val_list = after_keyword.split()
    for i in val_list:
        if i.strip() == "Administrator" or i.strip() == "DefaultAccount" or i.strip() == "Guest" or i.strip() == "WDAGUtilityAccount" :
            pass 
        else:
            path = "C:\\Users\\"+i.strip()+"\\Desktop"
            dirPath.append(path)


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)

def login(cmd,Filepath):    
    
    with disable_file_system_redirection():        
        print('Login to network share')
        print(os.popen(cmd).read())
        for i in dirPath:
            print('Copying files to local machine....')
            print(i)
            print(Filepath)
            shutil.copy(Filepath,i)
            print("copied successfully")
            path=i+"\\"+filename
            print(path)

cmd= 'NET USE "'+Folderpath+'" /USER:'+share_user+'  "'+share_pass+'"'
login(cmd,Filepath)
