//---------------------------------------------------------------------------- // // Copyright (c) Intel Corporation, 2010-2014 All Rights Reserved. // //---------------------------------------------------------------------------- using System; using Intel.Manageability; using Intel.Manageability.Exceptions; using Intel.Manageability.KVM; using Common.Utils; using System.IO; using System.Security; namespace KVMSample { class Program { static void Main(string[] args) { IAMTInstance amt = null; ConnectionInfoEX ci = null; SecureString rfbPass = null; try { // Check if JSON path was provided as an argument. If not, default path would be used. try { ci = ProgramInput.DeserializeJsonToStruct(args.Length > 0 ? args[0] : null); } catch (IOException e) { Console.WriteLine($"Could not read argument file: {e.Message}"); return; } amt = AMTInstanceFactory.CreateEX(ci); } catch (ManageabilityException e) { ci?.Dispose(); Console.WriteLine(e.Message); return; } try { // Enable KVM interface KVMFunctionality.EnableKVMInterface(amt); // Set the RFB password Console.WriteLine("Setting new RFB Password \n"); rfbPass = ProgramInput.PasswordPrompt("new RFB"); try { KVMFunctionality.SetNewRFBPass(amt, rfbPass); } catch { rfbPass?.Dispose(); throw; } // Set the opt-in timeout KVMFunctionality.SetOptInTimeout(amt, 1000); // Set the KVM ports state KVMFunctionality.SetPortsState(amt, KVMPortsState.EnableAllPorts); // Set the TCP session timeout KVMFunctionality.SetTCPSessionTimeout(amt, 100); // Set the default monitor KVMFunctionality.SetDefaultMonitor(amt); // Get KVM capabilities KVMFunctionality.DisplayCapabilities(amt); } catch (Exception ex) { Console.WriteLine(ex.Message); } finally { rfbPass?.Dispose(); amt?.Dispose(); } } } }