Note:
Run As local system user
1) Provide user names at parameters ("excepUser") which you dont want to remove data type should be string
example 1) : Robert
Type
String
Endpoint Manager Label
excepUser
Default Value
Robert
________________________________________________________________
example 2) if you dont want to remove more then one user use comma
Type
String
Endpoint Manager Label
excepUser
Default Value
Robert,Banner (no spaces between comma)
Warning before running the script make sure the users are signed out
import subprocess
import os
import ctypes
import socket
excepUser = itsm.getParameter('excepUser').split(',')
excepLst = ['Administrator', 'DefaultAccount', 'Guest', 'WDAGUtilityAccount']
excepLst.extend(excepUser)
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 ExecuteCmd(cmd):
with disable_file_system_redirection():
obj = subprocess.Popen(["powershell", cmd], shell=True, stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = obj.communicate()
return out, err
def remUser(accountName):
CMD = "net user " + accountName + " /delete"
delUser = ExecuteCmd(CMD)[0]
if "successfully" in delUser:
try:
path = "C:\\Users\\" + accountName
if os.path.exists(path):
Rcmd = 'rm "%s" -r -force' % path
ExecuteCmd(Rcmd)
Cmnd = r'Get-CimInstance -Class Win32_UserProfile | Where-Object { $_.LocalPath.split("\")[' \
r'-1] -eq "%s" } | Remove-CimInstance ' % accountName
ExecuteCmd(Cmnd)
print "User Removed " + accountName
except Exception as e:
print e
pass
else:
print "Error deleting User: " + accountName
UserList = ExecuteCmd("(Get-LocalUser).name")[0].strip().split("\r\n")
if len(UserList) > 0:
UWFlag = False
for i in UserList:
if i not in excepLst:
remUser(i)
UWFlag = True
if not UWFlag:
print "unwanted user does not exists at " + socket.gethostname()
else:
print "Error getting user name"
Comments