//Rename the computer and remove it from active directory private void RenameComputer(Response response) { Log.Entry(Name, "Checking Hostname"); if (!response.IsFieldValid("#hostname")) { Log.Error(Name, "Hostname is not specified"); return; } if (Environment.MachineName.ToLower().Equals(response.GetField("#hostname").ToLower())) { Log.Entry(Name, "Hostname is correct"); return; } //First unjoin it from active directory UnRegisterComputer(response); if (Power.ShuttingDown || Power.Requested) return; Log.Entry(Name, $"Renaming host to {response.GetField("#hostname")}"); try { _instance.RenameComputer(response.GetField("#hostname")); } catch (Exception ex) { Log.Error(Name, ex); } Power.Restart(Settings.Get("Company") + " needs to rename your computer", Power.ShutdownOptions.Delay); }
//Active a computer with a product key private void ActivateComputer(Response response) { if (!response.IsFieldValid("#Key")) return; try { _instance.ActivateComputer(response.GetField("#Key")); } catch (Exception ex) { Log.Error(Name, ex); } }
//Remove the host from active directory private void UnRegisterComputer(Response response) { Log.Entry(Name, "Removing host from active directory"); if (!response.IsFieldValid("#ADUser") || !response.IsFieldValid("#ADPass")) { Log.Error(Name, "Required Domain information is missing"); return; } try { _instance.UnRegisterComputer(response); } catch (Exception ex) { Log.Error(Name, ex); } }
//Add a host to active directory private void RegisterComputer(Response response) { if (response.GetField("#AD") != "1") return; if (!response.IsFieldValid("#ADDom") || !response.IsFieldValid("#ADUser") || !response.IsFieldValid("#ADPass")) { Log.Error(Name, "Required Domain Joining information is missing"); return; } try { if (_instance.RegisterComputer(response)) Power.Restart("Host joined to Active Directory, restart required", Power.ShutdownOptions.Delay); } catch (Exception ex) { Log.Error(Name, ex); } }
private int SandBoxParse(Response response, string setting, int min, int max, int fallback) { if (response.IsFieldValid(setting)) { int value; var success = int.TryParse(response.GetField(setting), out value); if (success && value >= min && value <= max) { return value; } else { Log.Error(Name, $"Invalid {setting}, using default"); return fallback; } } else { Log.Error(Name, $"Invalid {setting}, using default"); return fallback; } }
//Active a computer with a product key private void ActivateComputer(Response response) { if (!response.IsFieldValid("#Key")) return; Log.Entry(Name, "Activing host with product key"); try { _instance.ActivateComputer(response.GetField("#Key")); } catch (Exception ex) { Log.Error(Name, ex); } }