有需求必須透過 Windows 服務背景執行程式
收到指令時刪除 Windows 下的使用者
刪除使用者分為兩個部份
刪除使用者以及刪除使用者的資料(C:\Users\)
using System.DirectoryServices;
DirectoryEntry localMachine = new DirectoryEntry("WinNT://" + Environment.MachineName);
DirectoryEntries users = localMachine.Children;
DirectoryEntry user = users.Find(userName);
users.Remove(user);
透過 DirectoryEntry 能夠刪除使用者之後再透過 PowerShell 刪除該使用者資料
string userProfilePath = Path.Combine("C:\\Users", startupJobContent.Username);
string scriptText = $"Remove-Item -Path \"{userProfilePath}\" -Recurse -Force";
using Process process = new Process();
process.StartInfo = new ProcessStartInfo
{
FileName = "powershell.exe",
Arguments = $"-NoProfile -ExecutionPolicy Bypass -Command \"{scriptText}\"",
UseShellExecute = false,
CreateNoWindow = true
};
process.Start();
await process.WaitForExitAsync();
留言