//private char NULL_VALUE = char(0); public static ProcessReturnCode Run(string machineName, string commandLine, string args, string currentDirectory) { var connOptions = new ConnectionOptions { EnablePrivileges = true }; var scope = new ManagementScope(@"\\{0}\root\cimv2".FormatWith(machineName), connOptions); scope.Connect(); var managementPath = new ManagementPath(CLASSNAME); using (var processClass = new ManagementClass(scope, managementPath, new ObjectGetOptions())) { var inParams = processClass.GetMethodParameters("Create"); commandLine = System.IO.Path.Combine(currentDirectory, commandLine); inParams["CommandLine"] = "{0} {1}".FormatWith(commandLine, args); var outParams = processClass.InvokeMethod("Create", inParams, null); var rtn = Convert.ToUInt32(outParams["returnValue"]); var pid = Convert.ToUInt32(outParams["processId"]); if (pid != 0) { WaitForPidToDie(machineName, pid); } return (ProcessReturnCode)rtn; } }
static void Main(string[] args) { ConnectionOptions conn = new ConnectionOptions(); conn.Username = "******";//登入远端电脑的账户 conn.Password = "******";//登入远端电脑的密码 ManagementPath path = new ManagementPath(); //其中root\cimv2是固定写法 path.Path = @"\\10.0.1.36\root\cimv2"; ManagementScope ms = new ManagementScope(); ms.Options = conn; ms.Path = path; ms.Connect(); //这里的例子读取文件的最后修改日期 ObjectQuery query = new ObjectQuery("SELECT * FROM CIM_DataFile WHERE Name = 'C:\\\\KVOffice.txt'"); ManagementObjectSearcher searcher = new ManagementObjectSearcher(ms,query); ManagementObjectCollection collection = searcher.Get(); string time = ""; foreach (ManagementObject obj in collection) { time = obj.Properties["LastModified"].Value.ToString().Substring(0,14); } Console.WriteLine("测试dev"); Console.WriteLine(time); Console.ReadLine(); }
public void AddARecord(string hostName, string zone, string iPAddress, string dnsServerName) { /*ConnectionOptions connOptions = new ConnectionOptions(); connOptions.Impersonation = ImpersonationLevel.Impersonate; connOptions.EnablePrivileges = true; connOptions.Username = "******"; connOptions.Password = "******"; */ ManagementScope scope = new ManagementScope(@"\\" + dnsServerName + "\\root\\MicrosoftDNS"); //,connOptions); scope.Connect(); ManagementClass wmiClass = new ManagementClass(scope, new ManagementPath("MicrosoftDNS_AType"), null); ManagementBaseObject inParams = wmiClass.GetMethodParameters("CreateInstanceFromPropertyData"); inParams["DnsServerName"] = dnsServerName; inParams["ContainerName"] = zone; inParams["OwnerName"] = hostName + "." + zone; inParams["IPAddress"] = iPAddress; wmiClass.InvokeMethod("CreateInstanceFromPropertyData", inParams, null); }
public static void StartService(string service) { string msg = string.Format("starting up service begins: {0}", service); Singleton<ReportMediator>.UniqueInstance.ReportStatus(msg); string objPath = string.Format("Win32_Service.Name='{0}'", service); try { ConnectionOptions connectionOptions = new ConnectionOptions(); connectionOptions.Authentication = AuthenticationLevel.Packet; connectionOptions.EnablePrivileges = true; connectionOptions.Username = Singleton<Constants>.UniqueInstance.UserName; connectionOptions.Password = Singleton<Constants>.UniqueInstance.PassWord; connectionOptions.Impersonation = ImpersonationLevel.Impersonate; ManagementScope scope = new ManagementScope(string.Format(@"\\{0}\root\cimv2", Singleton<Constants>.UniqueInstance.MachineName), connectionOptions); scope.Connect(); using (ManagementObject serviceObj = new ManagementObject(scope, new ManagementPath(objPath), null)) { ManagementBaseObject outParams = serviceObj.InvokeMethod("StartService", null, null); uint returnValue = (uint)outParams["ReturnValue"]; msg = string.Format("starting up result for service {0} is {1}", service, returnValue); Singleton<ReportMediator>.UniqueInstance.ReportStatus(msg, LogLevel.Warning); } } catch (Exception ex) { msg = string.Format("error starting up service: {0}, {1}", service, ex); Singleton<ReportMediator>.UniqueInstance.ReportStatus(msg, LogLevel.Warning); } msg = string.Format("starting up service ends: {0}", service); Singleton<ReportMediator>.UniqueInstance.ReportStatus(msg); }
protected override void OnCommitted(IDictionary savedState) { base.OnCommitted (savedState); // Setting the "Allow Interact with Desktop" option for this service. ConnectionOptions connOpt = new ConnectionOptions(); connOpt.Impersonation = ImpersonationLevel.Impersonate; ManagementScope mgmtScope = new ManagementScope(@"root\CIMv2", connOpt); mgmtScope.Connect(); ManagementObject wmiService = new ManagementObject("Win32_Service.Name='" + ReflectorMgr.ReflectorServiceName + "'"); ManagementBaseObject inParam = wmiService.GetMethodParameters("Change"); inParam["DesktopInteract"] = true; ManagementBaseObject outParam = wmiService.InvokeMethod("Change", inParam, null); #region Start the reflector service immediately try { ServiceController sc = new ServiceController("ConferenceXP Reflector Service"); sc.Start(); } catch (Exception ex) { // Don't except - that would cause a rollback. Instead, just tell the user. RtlAwareMessageBox.Show(null, string.Format(CultureInfo.CurrentCulture, Strings.ServiceStartFailureText, ex.ToString()), Strings.ServiceStartFailureTitle, MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, (MessageBoxOptions)0); } #endregion }
public static List<Object[]> checkAntiVirus() { List<Object[]> av = new List<Object[]>(); ConnectionOptions _connectionOptions = new ConnectionOptions(); _connectionOptions.EnablePrivileges = true; _connectionOptions.Impersonation = ImpersonationLevel.Impersonate; ManagementScope _managementScope = new ManagementScope(string.Format("\\\\{0}\\root\\SecurityCenter2", "localhost"), _connectionOptions); _managementScope.Connect(); ObjectQuery _objectQuery = new ObjectQuery("SELECT * FROM AntivirusProduct"); ManagementObjectSearcher _managementObjectSearcher = new ManagementObjectSearcher(_managementScope, _objectQuery); ManagementObjectCollection _managementObjectCollection = _managementObjectSearcher.Get(); if (_managementObjectCollection.Count > 0) { Boolean updated = false; foreach (ManagementObject item in _managementObjectCollection) { updated = (item["productState"].ToString() == "266240" || item["productState"].ToString() == "262144"); av.Add(new Object[] { item["displayName"].ToString(), updated }); } } return av; }
///<summary> ///Uses System.Management wmi services to retrieve the user profile on the server and delete method of ManagementObject ///</summary> ///<param name="server">string</param> ///<param name="sid">string</param> ///<returns>SortedList</returns> ///<remarks>No data returned</remarks> public void DeleteUser(string server, string sid) { try { ManagementScope scope = new ManagementScope("\\\\" + server + "\\root\\cimv2"); scope.Connect(); ObjectQuery query = new ObjectQuery(String.Format("SELECT * from win32_UserProfile WHERE SID LIKE '%{0}%'", sid)); ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query); ManagementObjectCollection queryCollection = searcher.Get(); foreach (ManagementObject m in queryCollection) { string lp = (string)m.GetPropertyValue("LocalPath"); string mess = "Are you sure that you want to remove " + lp + " user profile from server " + server + "?"; const string caption = "Confirm Delete"; var result = MessageBox.Show(mess, caption, MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.Yes) { try { m.Delete(); } catch (Exception e) { //re-throw exception for main calling throw new Exception("WMIPropertiesHelper", e); } } } } catch (Exception e) { //re-throw exception for main calling throw new Exception("WMIPropertiesHelper", e); } }
private static void ReportNow() { Logger.Write("Sending ReportNow."); try { ConnectionOptions connectoptions = new ConnectionOptions(); System.Management.ManagementScope mgmtScope = new System.Management.ManagementScope(@"\\.\ROOT\CIMV2", connectoptions); mgmtScope.Connect(); System.Management.ObjectGetOptions objectGetOptions = new System.Management.ObjectGetOptions(); System.Management.ManagementPath mgmtPath = new System.Management.ManagementPath("Win32_Process"); System.Management.ManagementClass processClass = new System.Management.ManagementClass(mgmtScope, mgmtPath, objectGetOptions); System.Management.ManagementBaseObject inParams = processClass.GetMethodParameters("Create"); ManagementClass startupInfo = new ManagementClass("Win32_ProcessStartup"); startupInfo.Properties["ShowWindow"].Value = 0; inParams["CommandLine"] = "WuAuClt.exe /ReportNow"; inParams["ProcessStartupInformation"] = startupInfo; processClass.InvokeMethod("Create", inParams, null); } catch (Exception ex) { Logger.Write("Problem when doing ReportNow. " + ex.Message); } Logger.Write("ReportNow done."); }
public static String[] getComputerInfos(string computername) { String[] computerInfos = new String[2]; ConnectionOptions connOptions = new ConnectionOptions(); ObjectGetOptions objectGetOptions = new ObjectGetOptions(); ManagementPath managementPath = new ManagementPath("Win32_Process"); //To use caller credential connOptions.Impersonation = ImpersonationLevel.Impersonate; connOptions.EnablePrivileges = true; ManagementScope manScope = new ManagementScope(String.Format(@"\\{0}\ROOT\CIMV2", computername), connOptions); manScope.Connect(); ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_OperatingSystem"); ManagementObjectSearcher searcher = new ManagementObjectSearcher(manScope, query); ManagementObjectCollection queryCollection = searcher.Get(); foreach (ManagementObject m in queryCollection){ computerInfos[0] = Convert.ToString(m["Caption"]); computerInfos[1] = Convert.ToString(m["Status"]); } return computerInfos; }
public List<Process> FindProcess(string name, string remotemachine) { if ( String.IsNullOrEmpty(remotemachine)) { return FindProcessOnLocalMachine(name); } ManagementScope scope = new ManagementScope("\\\\" + remotemachine + "\\root\\cimv2"); scope.Connect(); var result = new List<Process>(); string wmiQuery = string.Format("select ProcessId, CommandLine from Win32_Process where Name='{0}'", name); ObjectQuery query = new ObjectQuery(wmiQuery); ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query); ManagementObjectCollection retObjectCollection = searcher.Get(); foreach (ManagementObject retObject in retObjectCollection) { string commandline = retObject["CommandLine"] as string; string[] cols = commandline.Split('-'); var pid = retObject["ProcessId"]; var p = new Process() { Pid = (uint)retObject["ProcessId"], Name = cols[1].Substring(3).Replace('"',' ' ) }; result.Add(p); } return result; }
public override Process[] Start(ProcessStartInfo psi) { List<Process> processes = new List<Process>(); ConnectionOptions options = GetConnectionOptions(); foreach (string comp in _computers) { _scope = GetScope(comp, options); _scope.Connect(); try { Process process = CreateProcess(psi); if (process != null) { processes.Add(process); } } finally { _scope = null; } } return processes.ToArray(); }
private static void CallWmiShutdown(int flags) { // 実行前にガベージコレクトを行っておく GC.Collect(); System.Threading.Thread.CurrentThread.Join(0); GC.WaitForPendingFinalizers(); GC.Collect(); //ユーザー特権を有効にするための設定を作成 ConnectionOptions co = new ConnectionOptions(); co.Impersonation = ImpersonationLevel.Impersonate; co.EnablePrivileges = true; //ManagementScopeを作成 ManagementScope sc = new ManagementScope("\\ROOT\\CIMV2", co); //接続 sc.Connect(); ObjectQuery oq = new ObjectQuery("select * from Win32_OperatingSystem"); using (ManagementObjectSearcher mos = new ManagementObjectSearcher(sc, oq)) { //Shutdownメソッドを呼び出す foreach (ManagementObject mo in mos.Get()) { //パラメータを指定 ManagementBaseObject inParams = mo.GetMethodParameters("Win32Shutdown"); inParams["Flags"] = flags; inParams["Reserved"] = 0; //Win32Shutdownメソッドを呼び出す ManagementBaseObject outParams = mo.InvokeMethod("Win32Shutdown", inParams, null); } } }
private bool SendCommand(string command, string username, string password) { Logger.EnteringMethod(command); try { ConnectionOptions connectoptions = new ConnectionOptions(); if (username != null && password != null && this.Name.ToLower() != GetFullyQualifiedDomainName().ToLower()) { connectoptions.Username = username; connectoptions.Password = password; } connectoptions.Impersonation = System.Management.ImpersonationLevel.Impersonate; System.Management.ManagementScope mgmtScope = new System.Management.ManagementScope(String.Format(@"\\{0}\ROOT\CIMV2", this.Name), connectoptions); mgmtScope.Connect(); System.Management.ObjectGetOptions objectGetOptions = new System.Management.ObjectGetOptions(); System.Management.ManagementPath mgmtPath = new System.Management.ManagementPath("Win32_Process"); System.Management.ManagementClass processClass = new System.Management.ManagementClass(mgmtScope, mgmtPath, objectGetOptions); System.Management.ManagementBaseObject inParams = processClass.GetMethodParameters("Create"); ManagementClass startupInfo = new ManagementClass("Win32_ProcessStartup"); startupInfo.Properties["ShowWindow"].Value = 0; inParams["CommandLine"] = command; inParams["ProcessStartupInformation"] = startupInfo; processClass.InvokeMethod("Create", inParams, null); Logger.Write("Command Sent Successfuly on : " + this.Name); } catch (Exception ex) { Logger.Write("**** " + ex.Message); return(false); } return(true); }
private ManagementScope ConnectToClient(string hostname) { ManagementPath oPath = new ManagementPath(string.Format("\\\\{0}\\ROOT\\CCM", hostname)); ConnectionOptions oCon = new ConnectionOptions(); oCon.Impersonation = ImpersonationLevel.Impersonate; oCon.EnablePrivileges = true; ManagementScope oMs = new ManagementScope(oPath, oCon); try { oMs.Connect(); } catch (System.UnauthorizedAccessException ex) { return null; } catch (Exception e) { return null; } finally { GC.Collect(); } return oMs; }
public void Bob() { var connOptions = new ConnectionOptions { EnablePrivileges = true, //Username = "******", //Password = "******" }; string server = "SrvTestWeb01"; ManagementScope manScope = new ManagementScope(String.Format(@"\\{0}\ROOT\CIMV2", server), connOptions); manScope.Connect(); var managementPath = new ManagementPath("Win32_Process"); var processClass = new ManagementClass(manScope, managementPath, new ObjectGetOptions()); var inParams = processClass.GetMethodParameters("Create"); inParams["CommandLine"] = @"C:\Temp\dropkick.remote\dropkick.remote.exe create_queue msmq://localhost/dk_test"; var outParams = processClass.InvokeMethod("Create", inParams, null); var rtn = System.Convert.ToUInt32(outParams["returnValue"]); var processID = System.Convert.ToUInt32(outParams["processId"]); }
private void serviceInstaller_YakSysServer_AfterInstall(object sender, InstallEventArgs e) { #region Allow Desktop Interact Mode ConnectionOptions connectionOptions_obj = new ConnectionOptions(); connectionOptions_obj.Impersonation = ImpersonationLevel.Impersonate; ManagementScope managementScope_obj = new System.Management.ManagementScope(@"root\CIMV2", connectionOptions_obj); managementScope_obj.Connect(); ManagementObject managementObject_obj = new ManagementObject("Win32_Service.Name='" + serviceController_YakSysServer.ServiceName + "'"); ManagementBaseObject managementBaseObject_DesktopInteract = managementObject_obj.GetMethodParameters("Change"); managementBaseObject_DesktopInteract["DesktopInteract"] = true; managementObject_obj.InvokeMethod("Change", managementBaseObject_DesktopInteract, null); #endregion managementObject_obj.InvokeMethod("ChangeStartMode", new object[1] { "Automatic" }); serviceController_YakSysServer.Start(); }
public ManagementClass GetManagementClass(string scopeString, string classString, IPHostEntry hostEntry, string username, string password) { SetHost(hostEntry); ValidateHost(); var connectionOptions = new ConnectionOptions() { Impersonation = ImpersonationLevel.Impersonate, EnablePrivileges = true, Username = username, Password = password }; var managementScope = new ManagementScope(String.Format(@"\\{0}\{1}", _host, scopeString), connectionOptions); var managementClass = new ManagementClass(managementScope, new ManagementPath(classString), new ObjectGetOptions()); managementScope.Connect(); if (!managementScope.IsConnected) { throw new InstrumentationException(ExceptionMessages.ScopeConnectFail); } return managementClass; }
public static bool ConnectWMIScope(string RemoteServer, string UserName, String Password) { bool retval = true; try { ConnectionOptions options = new ConnectionOptions(); options.EnablePrivileges = true; options.Impersonation = ImpersonationLevel.Impersonate; options.Authentication = AuthenticationLevel.Packet; options.Username = UserName; options.Password = Password; options.Timeout = TimeSpan.FromSeconds(2); string ConnectionString = string.Format("\\\\{0}\\root\\cimv2", RemoteServer); ManagementScope scope = new ManagementScope(ConnectionString, options); scope.Connect(); } catch (Exception ex) { MessageBox.Show(ex.Message); retval = false; return retval; } return retval; }
/// <summary> /// Checks whether configured printer is connected to computer or not and return status /// </summary> /// <returns>CONNECTED if printer is online or else message</returns> public static string PrinterStatus(string printerName) { // Set management scope ManagementScope scope = new ManagementScope(@"\root\cimv2"); scope.Connect(); string result = string.Empty; // Select Printers from WMI Object Collections ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Printer"); foreach (ManagementObject printer in searcher.Get()) { printerName = printer["Name"].ToString().ToLower(); if (printerName.Equals(printerName)) { if (printer["WorkOffline"].ToString().ToLower().Equals("true")) { // printer is offline by user result = "Your Plug-N-Play printer is not connected."; break; } else { // printer is not offline result = "CONNECTED"; break; } } } return result; }
public void SetServicePermission(string serviceName) { Console.WriteLine("--- Set Service Permission ---"); try { ConnectionOptions coOptions = new ConnectionOptions(); coOptions.Impersonation = ImpersonationLevel.Impersonate; ManagementScope mgmtScope = new System.Management.ManagementScope(@"root\CIMV2", coOptions); mgmtScope.Connect(); ManagementObject wmiService = new ManagementObject("Win32_Service.Name='" + serviceName + "'"); ManagementBaseObject InParam = wmiService.GetMethodParameters("Change"); InParam["DesktopInteract"] = true; ManagementBaseObject OutParam = wmiService.InvokeMethod("Change", InParam, null); Console.WriteLine("Set DesktopInteract Permission succeeded"); } catch (Exception err) { Console.WriteLine(err); } Console.WriteLine("------------------------------"); }
/// <summary> /// 指定されたパスのWin32OperatingSystem WMIオブジェクトを作成します. /// </summary> /// <param name="path"></param> public Win32OperatingSystem(string path) { ConnectionOptions = new ConnectionOptions(); ConnectionOptions.Impersonation = ImpersonationLevel.Impersonate; ConnectionOptions.EnablePrivileges = true; ManagementScope = new ManagementScope(path, ConnectionOptions); ManagementScope.Connect(); }
public static ManagementScope ConnectionScope(string machineName, ConnectionOptions options, string path) { ManagementScope connectScope = new ManagementScope(); connectScope.Path = new ManagementPath(@"\\" + machineName + path); connectScope.Options = options; connectScope.Connect(); return connectScope; }
private void btnSelect_Click(object sender, EventArgs e) { dgvDnsARecords.Rows.Clear(); if (cmbZones.Text == "") { MessageBox.Show("Please select zone."); } else { ObjectQuery query = new ObjectQuery(); ManagementScope ms = new ManagementScope("\\\\" + txtDnsServer.Text + "\\root\\microsoftdns"); ms.Connect(); query = new ObjectQuery("Select * from MicrosoftDNS_AType where ContainerName = '" + cmbZones.Text + "'"); try { ManagementObjectSearcher searcher = new ManagementObjectSearcher(ms, query); ManagementObjectCollection coll = searcher.Get(); Cursor.Current = Cursors.WaitCursor; foreach (ManagementObject m in coll) { double hours = Convert.ToDouble(m["TimeStamp"]); string timestamp; if (hours == 0) timestamp = "Static"; else { DateTime ts = new DateTime(); ts = Convert.ToDateTime("1/1/1601 01:00:00 AM"); ts = ts.AddHours(hours); timestamp = ts.ToString(); } if (txtFilter.Text == "") dgvDnsARecords.Rows.Add(m["IPAddress"], m["OwnerName"], m["DnsServerName"], timestamp, m["TTL"]); else { string name = m["OwnerName"].ToString(); int dotLocation = name.IndexOf("."); name = name.Substring(0, dotLocation); if (name.IndexOf(txtFilter.Text) > -1) dgvDnsARecords.Rows.Add(m["IPAddress"], m["OwnerName"], m["DnsServerName"], timestamp, m["TTL"]); } } } catch { MessageBox.Show("A wrong query statement was entered. Please revise and try again."); } Cursor.Current = Cursors.Default; } }
public static ManagementScope Connect(string machineName) { ConnectionOptions options = new ConnectionOptions(); string path = string.Format("\\\\{0}\\root\\cimv2", machineName); ManagementScope scope = new ManagementScope(path, options); scope.Connect(); return scope; }
public void CheckReg() { try { int i = 1; while (i < 4) { Label[] lray = { label6, label7, label8, label9 }; foreach (Label label in lray) { string ServerName = ConfigurationManager.AppSettings.Get("A" + i); string regKeyToGet = @"SOFTWARE\Wow6432Node\Memjet\Aspen\Controller"; string keyToRead = "StitchOverlapMicrons"; // Connection Login if needed ConnectionOptions oConn = new ConnectionOptions(); //oConn.Username = "******"; //oConn.Password = "******"; System.Management.ManagementScope scope = new System.Management.ManagementScope(@"\\" + ServerName + @"\root\default", oConn); scope.Options.EnablePrivileges = true; scope.Connect(); ManagementClass registry = new ManagementClass(scope, new ManagementPath("StdRegProv"), null); ManagementBaseObject inParams = registry.GetMethodParameters("GetStringValue"); inParams["sSubKeyName"] = regKeyToGet; inParams["sValueName"] = keyToRead; ManagementBaseObject outParams = registry.InvokeMethod("GetStringValue", inParams, null); // MessageBox.Show(outParams["sValue"].ToString()); label.Text = outParams["sValue"].ToString(); i++; } } string aspen1 = label6.Text; string aspen2 = label7.Text; string aspen3 = label8.Text; string aspen4 = label9.Text; if (aspen1 == "0" && aspen2 == "0" && aspen3 == "0" && aspen4 == "0") { button1.Text = "Enable Stitching"; } else { button1.Text = "Disable Stitching"; } } catch (Exception exception) { MessageBox.Show(exception.Message, exception.GetType().ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error); } }
internal void GetServers() { StringBuilder sb2 = new StringBuilder(); string serversStr = "CP1002"; string sqlServerServiceName = "SQLExpress"; string[] servers = serversStr.Split(','); string path; StringBuilder sb = new StringBuilder(DateTime.Now + "\nThe following system(s) status was recorded:\n\n"); bool reportNeeded = false; sb = new StringBuilder(DateTime.Now + "\nThe following system(s) status was recorded:\n\n"); buildServerMap(); if (isThreadEnabled()) { foreach (string sqlServer in servers) { if (serverFound(sqlServer)) { sb2.Append(sqlServer + " SQL Server - FOUND\n"); } else { sb2.Append(sqlServer + " SQL Server - UNVERIFIABLE\n"); } try { path = @"\\" + sqlServer + @"\root\cimv2"; ManagementScope ms = new ManagementScope(path); ms.Connect(); ManagementObjectSearcher searcher = new ManagementObjectSearcher("SELECT * FROM Win32_Service WHERE Started = TRUE AND DisplayName='" + sqlServerServiceName + "'"); searcher.Scope = ms; if (searcher != null && searcher.Get() != null) { foreach (ManagementObject service in searcher.Get()) { sb.Append(sqlServer + " SQL Server service - RUNNING\n"); } } } catch (Exception e) { sb.Append(sqlServer + " SQL Server service - UNVERIFIABLE\n"); reportNeeded = true; } } } }
/// <summary> /// Service - host/username/password /// </summary> /// <param name="host"></param> /// <param name="username"></param> /// <param name="password"></param> public ServiceManager(string host, string username, string password) { ConnectionOptions connoptions = new ConnectionOptions(); connoptions.Username = username; connoptions.Password = password; connoptions.Impersonation = ImpersonationLevel.Impersonate; m_scope = new ManagementScope(@"\\" + host + @"\root\cimv2",connoptions); m_scope.Connect(); }
public static ManagementScope ConnectionScope(string machineName, ConnectionOptions options, string path) { ManagementScope connectScope = new ManagementScope() { Path = new ManagementPath(String.Format(@"\\{0}{1}", machineName, path)), Options = options }; connectScope.Connect(); return connectScope; }
public void Connect() { _scope = new ManagementScope(new ManagementPath { Server = _configuration.FetchServer(), NamespacePath = _configuration.FetchNamespacePath() }, Options); _scope.Connect(); }
public static SecurityIdentifier GetVMnameSid(string VMName) { ManagementObjectCollection queryCollection; SecurityIdentifier sid = null; try { ManagementScope scope = new ManagementScope(@"\\.\root\virtualization\v2"); scope.Connect(); string querystr = "SELECT * FROM Msvm_ComputerSystem where ElementName=\"" + VMName + "\""; ObjectQuery query = new ObjectQuery(querystr); ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query); queryCollection = searcher.Get(); } catch (Exception e) { Console.WriteLine(e.ToString()); return null; } //Console.WriteLine("Name,GUID,PID"); try { foreach (ManagementObject vm in queryCollection) { try { // display VM details //Console.WriteLine("{0},{1},{2}", vm["ElementName"].ToString(), // vm["Name"].ToString(), vm["ProcessID"].ToString()); string concat = "NT VIRTUAL MACHINE\\" + vm["Name"].ToString(); NTAccount ntaccount = new NTAccount(concat); sid = (SecurityIdentifier)ntaccount.Translate(typeof(SecurityIdentifier)); Console.WriteLine("{0},{1},{2},{3}", vm["ElementName"].ToString(), vm["Name"].ToString(), vm["ProcessID"].ToString(), sid.ToString()); } catch (Exception /*e*/) { // don't print anything, some entries might miss fields like process id, ignore and move on //Console.WriteLine(e.ToString()); continue; } } } catch (Exception e) { Console.WriteLine(e.ToString()); return null; } return sid; }
private List<String> RemoteComputerInfo(string Username, string Password, string IP, string sWin32class) { List<String> resultList = new List<String>(); ConnectionOptions options = new ConnectionOptions(); options.Username = Username; options.Password = Password; options.Impersonation = ImpersonationLevel.Impersonate; options.EnablePrivileges = true; try { ManagementScope mgtScope = new ManagementScope(string.Format("\\\\{0}\\root\\cimv2", IP), options); mgtScope.Connect(); ObjectGetOptions objectGetOptions = new ObjectGetOptions(); ManagementPath mgtPath = new ManagementPath(sWin32class); ManagementClass mgtClass = new ManagementClass(mgtScope, mgtPath, objectGetOptions); PropertyDataCollection prptyDataCollection = mgtClass.Properties; foreach (ManagementObject mgtObject in mgtClass.GetInstances()) { foreach (PropertyData property in prptyDataCollection) { try { string mobjvalue = ""; if (mgtObject.Properties[property.Name].Value == null) { mobjvalue = "null"; } else { mobjvalue = mgtObject.Properties[property.Name].Value.ToString(); } if (ShouldInclude(property.Name)) { resultList.Add(string.Format(property.Name + ": " + mobjvalue)); } } catch (Exception ex) { System.Diagnostics.Debug.WriteLine(ex.Message); } } } } catch (Exception ex) { resultList.Add(string.Format("Can't Connect to Server: {0}\n{1}", IP, ex.Message)); } return resultList; }
private void LoginButton_Click(object sender, EventArgs e) { bool success = false; if (this.MachineNameTextBox.Text == string.Empty) { this.MachineNameTextBox.Text = @"\\localhost\root\cimv2"; } else { if (!this.MachineNameTextBox.Text.StartsWith(@"\\")) this.MachineNameTextBox.Text = @"\\" + this.MachineNameTextBox.Text; } if (!this.MachineNameTextBox.Text.StartsWith(@"\\localhost")) { if (this.UsernameTextBox.Text != string.Empty && this.PasswordTextBox.Text != string.Empty && this.MachineNameTextBox.Text != string.Empty) { try { ConnectionOptions oConn = new ConnectionOptions { Username = this.UsernameTextBox.Text, Password = this.PasswordTextBox.Text, Impersonation = ImpersonationLevel.Impersonate, Authentication = AuthenticationLevel.Connect }; //oConn.Authority = this.MachineNameTextBox.Text; ManagementScope oMs = new ManagementScope(this.MachineNameTextBox.Text, oConn) { Path = new ManagementPath (this.MachineNameTextBox.Text) }; oMs.Connect(); success = oMs.IsConnected; } catch (Exception exc) { Log.Info("The login failed.", exc); MessageBox.Show("The login failed."); } if (success) { this.Cancelled = false; this.Visible = false; } } } else { this.Cancelled = false; this.Visible = false; } }
private void SetServiceDesktopInsteract(string serviceName) { ConnectionOptions coOptions = new ConnectionOptions(); coOptions.Impersonation = ImpersonationLevel.Impersonate; ManagementScope mgmtScope = new System.Management.ManagementScope(@"root\CIMV2", coOptions); mgmtScope.Connect(); ManagementObject wmiService = new ManagementObject(string.Format("Win32_Service.Name='{0}'", serviceName)); ManagementBaseObject changeMethod = wmiService.GetMethodParameters("Change"); changeMethod["DesktopInteract"] = true; ManagementBaseObject OutParam = wmiService.InvokeMethod("Change", changeMethod, null); }
public override void DownloadFolder(string plcFolderPath, string localFolderPath) { ConnectionOptions co = new ConnectionOptions(); co.Username = m_UserName; co.Password = m_Password; co.Authority = m_Authority; ManagementScope scope = new ManagementScope("\\\\" + IP + "\\root", co); scope.Connect(); DirectoryInfo source = Directory.CreateDirectory(string.Format(@"\\{1}\{2}\{3}",IP,RootFolderPath,plcFolderPath)); source.CopyTo(localFolderPath); }
private void serviceInstaller1_Committed(object sender, InstallEventArgs e) { ConnectionOptions options = new ConnectionOptions(); options.Impersonation = ImpersonationLevel.Impersonate; ManagementScope scope = new ManagementScope(@"root\CIMV2", options); scope.Connect(); ManagementObject wmi = new ManagementObject("Win32_Service.Name='" + serviceInstaller1.ServiceName + "'"); ManagementBaseObject inParam = wmi.GetMethodParameters("Change"); inParam["DesktopInteract"] = true; ManagementBaseObject outParam = wmi.InvokeMethod("Change", inParam, null); }
public static bool CreateUncShare(string shareName, string localPath) { ManagementScope scope = new System.Management.ManagementScope(@"root\CIMV2"); scope.Connect(); using (ManagementClass wmiShare = new ManagementClass(scope, new ManagementPath("Win32_Share"), null)) { SecurityIdentifier worldSid = new SecurityIdentifier(WellKnownSidType.WorldSid, null); byte[] worldSidBytes = new byte[worldSid.BinaryLength]; worldSid.GetBinaryForm(worldSidBytes, 0); using (ManagementObject wmiTrustee = new ManagementClass(scope, new ManagementPath("Win32_Trustee"), null).CreateInstance()) { wmiTrustee["SID"] = worldSidBytes; using (ManagementObject wmiAce = new ManagementClass(scope, new ManagementPath("Win32_ACE"), null).CreateInstance()) { wmiAce["AccessMask"] = 0x0200A9; // 0x1F01FF; wmiAce["AceFlags"] = 3; wmiAce["AceType"] = 0; wmiAce["Trustee"] = wmiTrustee; using (ManagementObject secDescriptor = new ManagementClass(scope, new ManagementPath("Win32_SecurityDescriptor"), null).CreateInstance()) { secDescriptor["ControlFlags"] = 4; secDescriptor["DACL"] = new ManagementObject[] { wmiAce }; using (ManagementBaseObject inParams = wmiShare.GetMethodParameters("Create")) { inParams["Access"] = secDescriptor; inParams["Path"] = localPath; inParams["Name"] = shareName; inParams["Type"] = 0; inParams["Description"] = "ARGUS TV Recordings"; using (ManagementBaseObject outParams = wmiShare.InvokeMethod("Create", inParams, null)) { return((uint)outParams["ReturnValue"] == 0); } } } } } } }
private void button1_Click_1(object sender, EventArgs e) { System.Management.ConnectionOptions connOptions = new System.Management.ConnectionOptions(); connOptions.Impersonation = System.Management.ImpersonationLevel.Impersonate; connOptions.EnablePrivileges = true; connOptions.Username = "******"; connOptions.Password = "******"; string compName = "chan-PC"; System.Management.ManagementScope manScope = new System.Management.ManagementScope( String.Format(@"\\{0}\ROOT\CIMV2", compName), connOptions); manScope.Connect(); System.Management.ObjectGetOptions objectGetOptions = new System.Management.ObjectGetOptions(); System.Management.ManagementPath managementPath = new System.Management.ManagementPath("Win32_Process"); System.Management.ManagementClass processClass = new System.Management.ManagementClass(manScope, managementPath, objectGetOptions); System.Management.ManagementBaseObject inParams = processClass.GetMethodParameters("Create"); inParams["CommandLine"] = @"c:\MalCode\hiWinForm.exe"; System.Management.ManagementBaseObject outParams = processClass.InvokeMethod("Create", inParams, null); var returnvalue = outParams["returnValue"]; if (outParams["returnValue"].ToString().Equals("0")) { MessageBox.Show("Process execution returned " + unchecked ((int)outParams["returnValue"])); } else { MessageBox.Show("No type specified " + unchecked ((int)outParams["returnValue"])); } }
public void RemovePrinter(string printer) { System.Management.ManagementScope oManagementScope = new System.Management.ManagementScope(System.Management.ManagementPath.DefaultPath); oManagementScope.Connect(); System.Management.SelectQuery query = new System.Management.SelectQuery("SELECT * FROM Win32_Printer"); System.Management.ManagementObjectSearcher search = new System.Management.ManagementObjectSearcher(oManagementScope, query); System.Management.ManagementObjectCollection printers = search.Get(); foreach (System.Management.ManagementObject p in printers) { string pName = p["Name"].ToString().ToLower(); if (pName.Equals(printer.ToLower())) { p.Delete(); break; } } MessageBox.Show("Printer: " + printer + " has successfully been removed."); }
private void serviceInstaller_Committing(object sender, InstallEventArgs e) { ManagementBaseObject InParam = null; ManagementBaseObject OutParam = null; try { // Windows Interact W/Desktop... ConnectionOptions coOptions = new ConnectionOptions(); coOptions.Impersonation = ImpersonationLevel.Impersonate; ManagementScope mgmtScope = new System.Management.ManagementScope(@"root\CIMV2", coOptions); mgmtScope.Connect(); using (ManagementObject wmiService = new ManagementObject(string.Format(Properties.Resources.Win32ServiceName, serviceInstaller.ServiceName))) { InParam = wmiService.GetMethodParameters(Properties.Resources.ParamInfo); InParam[Properties.Resources.DesktopInteract] = true; OutParam = wmiService.InvokeMethod(Properties.Resources.ParamInfo, InParam, null); } // set actions on recovery in order to restart the service 3 times var fa = new List <FailureAction>(); fa.Add(new FailureAction(RecoverAction.Restart, 2000)); fa.Add(new FailureAction(RecoverAction.Restart, 2000)); fa.Add(new FailureAction(RecoverAction.Restart, 2000)); SetRestartOnFailureRecovery(fa, "", ""); } catch (Exception Error) { EventLog.WriteEntry(serviceInstaller.ServiceName, Error.ToString(), EventLogEntryType.Error); } finally { if (InParam != null) { InParam.Dispose(); } if (OutParam != null) { OutParam.Dispose(); } } }
private void serviceInstaller1_AfterInstall(object sender, System.Configuration.Install.InstallEventArgs e) { ConnectionOptions coOptions = new ConnectionOptions(); coOptions.Impersonation = ImpersonationLevel.Impersonate; ManagementScope mgmtScope = new System.Management.ManagementScope(@"root\CIMV2", coOptions); mgmtScope.Connect(); ServiceController sc = new ServiceController("CardReaderService"); ManagementObject wmiService; wmiService = new ManagementObject("Win32_Service.Name='" + sc.ServiceName + "'"); ManagementBaseObject InParam = wmiService.GetMethodParameters("Change"); InParam["DesktopInteract"] = true; ManagementBaseObject OutParam = wmiService.InvokeMethod("Change", InParam, null); }
/// <summary> /// /// </summary> /// <param name="stateSaver"></param> public override void Install(System.Collections.IDictionary stateSaver) { this.serviceProcessInstaller.Account = System.ServiceProcess.ServiceAccount.LocalSystem; base.Install(stateSaver); ConnectionOptions coOptions = new ConnectionOptions(); coOptions.Impersonation = ImpersonationLevel.Impersonate; ManagementScope mgmtScope = new System.Management.ManagementScope(@"root\CIMV2", coOptions); mgmtScope.Connect(); using (ManagementObject wmiService = new ManagementObject("Win32_Service.Name='" + MirrorService.RegisteredServiceName + "'")) { ManagementBaseObject InParam = wmiService.GetMethodParameters("Change"); InParam["DesktopInteract"] = false; wmiService.InvokeMethod("Change", InParam, null); } ConfigureRecoveryMechanism(); }
public void SendCommand(string hostname, string command, Credential credential) { ConnectionOptions connectoptions = GetConnectionOptions(hostname, credential); connectoptions.Impersonation = System.Management.ImpersonationLevel.Impersonate; System.Management.ManagementScope mgmtScope = new System.Management.ManagementScope(String.Format(@"\\{0}\ROOT\CIMV2", hostname), connectoptions); mgmtScope.Connect(); System.Management.ObjectGetOptions objectGetOptions = new System.Management.ObjectGetOptions(); System.Management.ManagementPath mgmtPath = new System.Management.ManagementPath("Win32_Process"); System.Management.ManagementClass processClass = new System.Management.ManagementClass(mgmtScope, mgmtPath, objectGetOptions); System.Management.ManagementBaseObject inParams = processClass.GetMethodParameters("Create"); ManagementClass startupInfo = new ManagementClass("Win32_ProcessStartup"); startupInfo.Properties["ShowWindow"].Value = 0; inParams["CommandLine"] = command; inParams["ProcessStartupInformation"] = startupInfo; processClass.InvokeMethod("Create", inParams, null); }
public static bool CreateUncShare(string shareName, string localPath) { ManagementScope scope = new System.Management.ManagementScope(@"root\CIMV2"); scope.Connect(); using (ManagementClass managementClass = new ManagementClass(scope, new ManagementPath("Win32_Share"), (ObjectGetOptions)null)) { SecurityIdentifier securityIdentifier = new SecurityIdentifier(WellKnownSidType.WorldSid, (SecurityIdentifier)null); byte[] binaryForm = new byte[securityIdentifier.BinaryLength]; securityIdentifier.GetBinaryForm(binaryForm, 0); using (ManagementObject wmiTrustee = new ManagementClass(scope, new ManagementPath("Win32_Trustee"), (ObjectGetOptions)null).CreateInstance()) { wmiTrustee["SID"] = (object)binaryForm; using (ManagementObject wmiACE = new ManagementClass(scope, new ManagementPath("Win32_ACE"), (ObjectGetOptions)null).CreateInstance()) { wmiACE["AccessMask"] = 131241; //READ_CONTROL | FILE_READ | FILE_TRAVERSE | FILE_READ_EA | FILE_LIST_DIRECTORY wmiACE["AceFlags"] = 3; //OBJECT_INHERIT_ACE | CONTAINER_INHERIT_ACE wmiACE["AceType"] = 0; //ACCESS_ALLOWED wmiACE["Trustee"] = wmiTrustee; using (ManagementObject wmiSecurityDescriptor = new ManagementClass(scope, new ManagementPath("Win32_SecurityDescriptor"), (ObjectGetOptions)null).CreateInstance()) { wmiSecurityDescriptor["ControlFlags"] = 4; wmiSecurityDescriptor["DACL"] = new ManagementObject[] { wmiACE }; using (ManagementBaseObject inParamsCreate = managementClass.GetMethodParameters("Create")) { inParamsCreate["Access"] = wmiSecurityDescriptor; inParamsCreate["Path"] = localPath; inParamsCreate["Name"] = shareName; inParamsCreate["Type"] = 0; inParamsCreate["Description"] = "TVServerXBMC share"; using (ManagementBaseObject outParams = managementClass.InvokeMethod("Create", inParamsCreate, (InvokeMethodOptions)null)) return((int)(uint)outParams["returnValue"] == 0); } } } } } }
private void testFunction() { ConnectionOptions oConn = new ConnectionOptions(); string hostname = ""; System.Management.ManagementScope scope = new System.Management.ManagementScope(@"\\" + hostname + @"\root\cimv2", oConn); scope.Connect(); ManagementClass registry = new ManagementClass(scope, new ManagementPath("StdRegProv"), null); ManagementBaseObject inParams = registry.GetMethodParameters("GetStringValue"); inParams["hDefKey"] = 0x80000002; // HKEY_LOCAL_MACHINE; inParams["sSubKeyName"] = "SOFTWARE\\Microsoft\\.NETFramework"; inParams["sValueName"] = "InstallRoot"; ManagementBaseObject outParams = registry.InvokeMethod("GetStringValue", inParams, null); if (outParams.Properties["sValue"].Value != null) { // output = outParams.Properties["sValue"].Value.ToString(); } }
public void UpdatePrinters() { ConnectedPrinters.Items.Clear(); AvailablePrinters.Items.Clear(); System.Management.ManagementScope objMS = new System.Management.ManagementScope(ManagementPath.DefaultPath); objMS.Connect(); SelectQuery objQuery = new SelectQuery("SELECT * FROM Win32_Printer"); ManagementObjectSearcher objMOS = new ManagementObjectSearcher(objMS, objQuery); System.Management.ManagementObjectCollection objMOC = objMOS.Get(); foreach (ManagementObject Printers in objMOC) { if (Convert.ToBoolean(Printers["Network"])) { ConnectedPrinters.Items.Add(Printers["Name"].ToString().Remove(0, 20)); } } if (!ConnectedPrinters.Items.Contains("C05TOS")) { AvailablePrinters.Items.Add("C05TOS"); } if (!ConnectedPrinters.Items.Contains("F01HPPR")) { AvailablePrinters.Items.Add("F01HPPR"); } if (!ConnectedPrinters.Items.Contains("SRBTOS")) { AvailablePrinters.Items.Add("SRBTOS"); } if (!ConnectedPrinters.Items.Contains("C01HPRO")) { AvailablePrinters.Items.Add("C01HPRO"); } if (!ConnectedPrinters.Items.Contains("C06XEPH")) { AvailablePrinters.Items.Add("C06XEPH"); } if (!ConnectedPrinters.Items.Contains("I04HPPR")) { AvailablePrinters.Items.Add("I04HPPR"); } if (!ConnectedPrinters.Items.Contains("RCTOS")) { AvailablePrinters.Items.Add("RCTOS"); } if (!ConnectedPrinters.Items.Contains("SRCTOS")) { AvailablePrinters.Items.Add("SRCTOS"); } if (!ConnectedPrinters.Items.Contains("B05HPLJ")) { AvailablePrinters.Items.Add("B05HPLJ"); } if (!ConnectedPrinters.Items.Contains("C04TOS")) { AvailablePrinters.Items.Add("C04TOS"); } if (!ConnectedPrinters.Items.Contains("C08LEXM")) { AvailablePrinters.Items.Add("C08LEXM"); } if (!ConnectedPrinters.Items.Contains("I06HPPR")) { AvailablePrinters.Items.Add("I06HPPR"); } if (!ConnectedPrinters.Items.Contains("SRATOS")) { AvailablePrinters.Items.Add("SRATOS"); } if (!ConnectedPrinters.Items.Contains("SRDTOS")) { AvailablePrinters.Items.Add("SRDTOS"); } }
public static void Main(string[] args) { ManagementScope scope = new System.Management.ManagementScope(@"\\.\root\cimv2"); scope.Connect(); ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_Process"); ManagementObjectSearcher objectSearcher = new ManagementObjectSearcher(scope, query); ManagementObjectCollection objectCollection = objectSearcher.Get(); Dictionary <Int32, String> owners = new Dictionary <Int32, String>(); int biggestOwnerSize = 5; // Column must be at least (but possibly greater) than 5 chars wide: O W N E R foreach (ManagementObject managementObject in objectCollection) { String[] owner = new String[2]; try { managementObject.InvokeMethod("GetOwner", owner); } catch { owner[0] = "X"; } String name = owner[0] != null ? owner[1] + "\\" + owner[0] : "X"; owners[Convert.ToInt32(managementObject["Handle"])] = name; if (name.Length > biggestOwnerSize) { biggestOwnerSize = name.Length; } } Process[] processes = Process.GetProcesses(); ArrayList pidList = new ArrayList(); object[] pids; foreach (Process process in processes) { pidList.Add(process.Id); } pids = pidList.ToArray(); Array.Sort(pids); if (IsHighIntegrity()) { Console.WriteLine("\n[*] Running \"ps\" in high integrity process. Results should be more complete.\n"); } else { Console.WriteLine("\n[*] Not running \"ps\" in a high integrity process. Results will be limited.\n"); } Console.WriteLine("PID PPID Arch Session Owner" + new string(' ', biggestOwnerSize - 5) + " Process Name"); Console.WriteLine("===== ===== ==== ======= =====" + new string('=', biggestOwnerSize - 5) + " ============"); foreach (int pid in pids) { Process process = Process.GetProcessById(0); // fall back option so things don't break try { process = Process.GetProcessById(pid); } catch { } String strSessID; try { uint sessID; ProcessIdToSessionId((uint)pid, out sessID); strSessID = sessID.ToString(); } catch (Exception) { strSessID = "X"; } String architecture; try { architecture = IsWin64Emulator(process) ? "x86" : "x64"; } catch (Exception) { architecture = "X"; } String ppidString; String userName; try { if (!owners.TryGetValue(process.Id, out userName)) { userName = "******"; } } catch (ArgumentNullException) { userName = "******"; } try { Process parent = ParentProcessUtilities.GetParentProcess(process.Id); ppidString = parent.Id.ToString(); } catch { ppidString = "X"; } Console.WriteLine(pid.ToString() + new string(' ', 8 - pid.ToString().Length) + ppidString + new string(' ', 8 - ppidString.Length) + architecture + new string(' ', 7 - architecture.Length) + strSessID + new string(' ', 10 - strSessID.Length) + userName + new string(' ', biggestOwnerSize - userName.Length + 3) + process.ProcessName); } }
private void Button1_Click(object sender, EventArgs e) { try { if (button1.Text == "Enable Stitching") { XDocument xDoc = XDocument.Load(Descanso); xDoc.Descendants("stitchingEnabledSetting").First().Value = "True"; xDoc.Save(Descanso); Cursor.Current = Cursors.WaitCursor; int i = 1; while (i < 5) { string Value = "7112"; //Change Registry Value to 7112 string ServerName = ConfigurationManager.AppSettings.Get("A" + i); string regKeyToGet = @"SOFTWARE\Wow6432Node\Memjet\Aspen\Controller"; string keyToRead = "StitchOverlapMicrons"; // Connection Login if needed ConnectionOptions oConn = new ConnectionOptions(); //oConn.Username = "******"; //oConn.Password = "******"; System.Management.ManagementScope scope = new System.Management.ManagementScope(@"\\" + ServerName + @"\root\default", oConn); scope.Options.EnablePrivileges = true; scope.Connect(); ManagementClass registry = new ManagementClass(scope, new ManagementPath("StdRegProv"), null); ManagementBaseObject inParams = registry.GetMethodParameters("CreateKey"); inParams["sSubKeyName"] = regKeyToGet; ManagementBaseObject outParams = registry.InvokeMethod("CreateKey", inParams, null); ManagementBaseObject inParams6 = registry.GetMethodParameters("SetStringValue"); inParams6["sSubKeyName"] = regKeyToGet; inParams6["sValueName"] = keyToRead; inParams6["sValue"] = Value; ManagementBaseObject outParams6 = registry.InvokeMethod("SetStringValue", inParams6, null); i++; } Cursor.Current = Cursors.Default; } else if (button1.Text == "Disable Stitching") { XDocument xDoc = XDocument.Load(Descanso); xDoc.Descendants("stitchingEnabledSetting").First().Value = "False"; xDoc.Save(Descanso); Cursor.Current = Cursors.WaitCursor; int i = 1; while (i < 5) { string Value = "0"; //Change Registry Value to 0 string ServerName = ConfigurationManager.AppSettings.Get("A" + i); string regKeyToGet = @"SOFTWARE\Wow6432Node\Memjet\Aspen\Controller"; string keyToRead = "StitchOverlapMicrons"; // Connection Login if needed ConnectionOptions oConn = new ConnectionOptions(); //oConn.Username = "******"; //oConn.Password = "******"; System.Management.ManagementScope scope = new System.Management.ManagementScope(@"\\" + ServerName + @"\root\default", oConn); scope.Options.EnablePrivileges = true; scope.Connect(); ManagementClass registry = new ManagementClass(scope, new ManagementPath("StdRegProv"), null); ManagementBaseObject inParams = registry.GetMethodParameters("CreateKey"); // inParams["hDefKey"] = (UInt32)2147483650; inParams["sSubKeyName"] = regKeyToGet; ManagementBaseObject outParams = registry.InvokeMethod("CreateKey", inParams, null); ManagementBaseObject inParams6 = registry.GetMethodParameters("SetStringValue"); //inParams6["hDefKey"] = 2147483650; inParams6["sSubKeyName"] = regKeyToGet; inParams6["sValueName"] = keyToRead; inParams6["sValue"] = Value; ManagementBaseObject outParams6 = registry.InvokeMethod("SetStringValue", inParams6, null); i++; } Cursor.Current = Cursors.Default; } DialogResult result = MessageBox.Show("You need to restart the Aspen service on all 4 machines\nWould you like to do that now?", "Warning", MessageBoxButtons.YesNo, MessageBoxIcon.Question); if (result == DialogResult.Yes) { Cursor.Current = Cursors.WaitCursor; ProgressDialog progressDialog = new ProgressDialog(); for (int n = 0; n < 100; n++) { progressDialog.UpdateProgress(n); // Update progress in progressDialog } progressDialog.ChangeLabel("Restarting: All Aspen Services"); progressDialog.Show(); RestartAspen(); progressDialog.Close(); Cursor.Current = Cursors.Default; } CheckReg(); } catch (Exception exception) { MessageBox.Show(exception.Message, exception.GetType().ToString(), MessageBoxButtons.OK, MessageBoxIcon.Error); } }