有需求必須透過 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();

分類於:

標籤:

, ,