diff options
Diffstat (limited to 'Software/Visual_Studio/Tango.SystemInfo/Connection.cs')
| -rw-r--r-- | Software/Visual_Studio/Tango.SystemInfo/Connection.cs | 83 |
1 files changed, 83 insertions, 0 deletions
diff --git a/Software/Visual_Studio/Tango.SystemInfo/Connection.cs b/Software/Visual_Studio/Tango.SystemInfo/Connection.cs new file mode 100644 index 000000000..3e4e1e73d --- /dev/null +++ b/Software/Visual_Studio/Tango.SystemInfo/Connection.cs @@ -0,0 +1,83 @@ +using System; +using System.Management; +using System.Collections.Generic; +using System.Text; + +//Tango.SystemInfo +namespace Tango.SystemInfo +{ + class Connection + { + ManagementScope connectionScope; + ConnectionOptions options; + + #region "properties" + public ManagementScope GetConnectionScope + { + get { return connectionScope; } + } + public ConnectionOptions GetOptions + { + get { return options; } + } + #endregion + + #region "static helpers" + public static ConnectionOptions SetConnectionOptions() + { + ConnectionOptions options = new ConnectionOptions(); + options.Impersonation = ImpersonationLevel.Impersonate; + options.Authentication = AuthenticationLevel.Default; + options.EnablePrivileges = true; + return options; + } + + public static ManagementScope SetConnectionScope(string machineName, + ConnectionOptions options) + { + ManagementScope connectScope = new ManagementScope(); + connectScope.Path = new ManagementPath(@"\\" + machineName + @"\root\CIMV2"); + connectScope.Options = options; + + try + { + connectScope.Connect(); + } + catch (ManagementException e) + { + Console.WriteLine("An Error Occurred: " + e.Message.ToString()); + } + return connectScope; + } + #endregion + + #region "constructors" + public Connection() + { + EstablishConnection(null, null, null, Environment.MachineName); + } + + public Connection(string userName, + string password, + string domain, + string machineName) + { + EstablishConnection(userName, password, domain, machineName); + } + #endregion + + #region "private helpers" + private void EstablishConnection(string userName, string password, string domain, string machineName) + { + options = Connection.SetConnectionOptions(); + if (domain != null || userName != null) + { + options.Username = domain + "\\" + userName; + options.Password = password; + } + connectionScope = Connection.SetConnectionScope(machineName, options); + } + #endregion + + } +} |
