예제 #1
0
        private void SaveExecutionResult(string name, ExecutionResult res, DateTime started, DateTime ended)
        {
            StringBuilder builder = new StringBuilder();

            builder.AppendFormat("ResultCode={0}|", res.ResultCode);
            builder.AppendFormat("RebootRequired={0}|", res.RebootRequired);
            builder.AppendFormat("ErrorMessage={0}|", res.ErrorMessage);
            builder.AppendFormat("Value={0}|", res.Value);
            builder.AppendFormat("Started={0}|", started.ToString("yyyyMMddHHmmss"));
            builder.AppendFormat("Ended={0}", started.ToString("yyyyMMddHHmmss"));
            RegistryUtils.SetRegistryKeyStringValue(RegistryOutputKey, name, builder.ToString());
        }
예제 #2
0
        private void GetSystemSummary()
        {
            const UInt64 Size1KB = 0x400;
            const UInt64 Size1GB = 0x40000000;

            // check free/total RAM
            WmiUtils wmi = new WmiUtils("root\\cimv2");
            ManagementObjectCollection objOses = wmi.ExecuteQuery("SELECT * FROM Win32_OperatingSystem");

            foreach (ManagementObject objOs in objOses)
            {
                UInt64 freeRam  = Convert.ToUInt64(objOs["FreePhysicalMemory"]) / Size1KB;
                UInt64 totalRam = Convert.ToUInt64(objOs["TotalVisibleMemorySize"]) / Size1KB;

                // write to the registry
                RegistryUtils.SetRegistryKeyStringValue(RegistryOutputKey, RAM_SUMMARY_KEY,
                                                        String.Format("{0}:{1}", freeRam, totalRam));

                objOs.Dispose();
            }

            // check local HDD logical drives
            ManagementObjectCollection objDisks = wmi.ExecuteQuery("SELECT * FROM Win32_LogicalDisk WHERE DriveType = 3");
            StringBuilder sb    = new StringBuilder();
            bool          first = true;

            foreach (ManagementObject objDisk in objDisks)
            {
                if (!first)
                {
                    sb.Append(";");
                }

                sb.Append(objDisk["DeviceID"]);
                sb.Append(Convert.ToInt32(Convert.ToDouble(objDisk["FreeSpace"]) / (double)Size1GB)).Append(":");
                sb.Append(Convert.ToInt32(Convert.ToDouble(objDisk["Size"]) / (double)Size1GB));

                first = false;

                objDisk.Dispose();
            }

            // write HDD info
            RegistryUtils.SetRegistryKeyStringValue(RegistryOutputKey, HDD_SUMMARY_KEY, sb.ToString());

            // dispose resources
            objOses.Dispose();
            objDisks.Dispose();
        }
예제 #3
0
 private void ChangeMACAddress(string adapterId, string mac)
 {
     string[] sets = RegistryUtils.GetRegistrySubKeys(RegistryKey);
     foreach (string set in sets)
     {
         string key = string.Format("{0}\\{1}", RegistryKey, set);
         string netCfgInstanceId = RegistryUtils.GetRegistryKeyStringValue(key, "NetCfgInstanceId");
         if (netCfgInstanceId == adapterId)
         {
             Log.WriteStart("Changing MAC address...");
             RegistryUtils.SetRegistryKeyStringValue(key, "NetworkAddress", mac);
             Log.WriteEnd("MAC address has been changed successfully");
             break;
         }
     }
 }