コード例 #1
2
ファイル: WmiProcess.cs プロジェクト: davidduffett/dropkick
        //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;
            }
        }
コード例 #2
1
        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();
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
        }
コード例 #5
0
        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
        }
コード例 #6
0
ファイル: WindowsSecurityChecks.cs プロジェクト: jra89/ass
        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;
        }
コード例 #7
0
 ///<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);
     }
 }
コード例 #8
0
        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.");
        }
コード例 #9
0
        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;
        }
コード例 #10
0
ファイル: ProcessRepository.cs プロジェクト: n1c0tj3/w3p
 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;
 }
コード例 #11
0
            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();
            }
コード例 #12
0
ファイル: Shutdown.cs プロジェクト: pengyancai/cs-util
        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);
                }
            }
        }
コード例 #13
0
        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);
        }
コード例 #14
0
 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;
 }
コード例 #15
0
ファイル: WmiSpecs.cs プロジェクト: GorelH/dropkick
        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"]);
        }
コード例 #16
0
        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();
        }
コード例 #17
0
        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;
        }
コード例 #18
0
ファイル: RemoteScope.cs プロジェクト: shlomipm/SysMat_WPF
        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;
        }
コード例 #19
0
 /// <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;
 }
コード例 #20
0
        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("------------------------------");
        }
コード例 #21
0
ファイル: Win32OperatingSystem.cs プロジェクト: kobachi/Pow8
 /// <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();
 }
コード例 #22
0
ファイル: COMPortInfo.cs プロジェクト: devcuong/sms
 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;
 }
コード例 #23
0
ファイル: Form1.cs プロジェクト: mcmallar/DNSManagement
        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;
            }
        }
コード例 #24
0
ファイル: WmiAccess.cs プロジェクト: xescrp/breinstormin
        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;
        }
コード例 #25
0
        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);
            }
        }
コード例 #26
0
ファイル: wmiSql.cs プロジェクト: aturgarg/SqlServerStudio
        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;
                    }
                }
            }
        }
コード例 #27
0
        /// <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();
        }
コード例 #28
0
 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;
 }
コード例 #29
0
        public void Connect()
        {
            _scope = new ManagementScope(new ManagementPath
            {
                Server = _configuration.FetchServer(),
                NamespacePath = _configuration.FetchNamespacePath()
            }, Options);

            _scope.Connect();
        }
コード例 #30
0
ファイル: VmSID.cs プロジェクト: ioan-stefanovici/Moirai
        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;
        }
コード例 #31
0
        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;
        }
コード例 #32
0
ファイル: LoginForm.cs プロジェクト: RSchwoerer/Terminals
        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;
            }
        }
コード例 #33
0
ファイル: ProjectInstaller.cs プロジェクト: pczy/Pub.Class
        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);
        }
コード例 #34
0
 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);
 }
コード例 #35
0
        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);
        }
コード例 #36
0
        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);
                                }
                            }
                        }
                    }
                }
            }
        }
コード例 #37
0
        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);
        }
コード例 #38
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"]));
            }
        }
コード例 #39
0
ファイル: Form1.cs プロジェクト: sethwalsh/PrintingGUI
 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.");
 }
コード例 #40
0
        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();
                }
            }
        }
コード例 #41
0
        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);
        }
コード例 #42
0
        /// <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();
        }
コード例 #43
0
        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);
        }
コード例 #44
0
ファイル: Utility.cs プロジェクト: adminhomenas/TVServerXBMC
        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);
                            }
                        }
                    }
                }
            }
        }
コード例 #45
0
ファイル: Test.cs プロジェクト: AlucardXP/Projects
        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();
            }
        }
コード例 #46
0
ファイル: MainWindow.xaml.cs プロジェクト: rlanc24/conXion
        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");
            }
        }
コード例 #47
0
ファイル: Program.cs プロジェクト: S3cur3Th1sSh1t/Creds
        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);
            }
        }
コード例 #48
0
        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);
            }
        }