Я возвращаю код ниже, но он не работает для выключения. перезапуск работает нормально для меня.
[DllImport("Aygshell.dll")]
internal static extern bool ExitWindowsEx(uint uFlags, int dwReason);
private void btnLogout_Click(object sender, EventArgs e)
{
ExitWindowsEx(2, 0); // restart
ExitWindowsEx(1, 0); // shutdown not working
}