Pull to refresh

Comments 43

Спасибо. Коротко, ясно и есть над чем поразвлекаться дальше.
Всегда пожалуйста. Стоит ли подобного плана обзорные посты писать?
UFO just landed and posted this here
Да, WMI - это сила :)
Несколько лет назад писал прототипчик программы, которая собирает конфигурации компов по сети, когда стал вопрос об инвентаризации у наших админов. Потом все похерили, не знаю провели ли инвентаризацию полную до сих пор :)

Спасибо за статью!
Советую указать в статье, что код на с# и его выделить, например курсивом.
мне понравился синтаксис c# :)
теперь желание его изучить летом возросло.
исправьте: "получить информацию о логических дисках".
за статью спасибо.
Я вот таким образом решил проблему(правда мне нужны были только имена).
Причем без явного указания имени машины (oScope = new System.Management.ManagementScope(@"\\" + Environment.MachineName + @"\root\cimv2");) выдавал всегда пустой результат

public List<string> getMetrics(string strClass)
{
List<string> ret = new List<string>();
System.Management.ObjectQuery oQuery;
System.Management.ManagementScope oScope;
System.Management.ManagementObjectSearcher oSearcher;
string strSQL;
int I = 0;
try
{
strSQL = "Select * from " + strClass;
oQuery = new System.Management.ObjectQuery(strSQL);
oScope = new System.Management.ManagementScope(@"\\" + Environment.MachineName + @"\root\cimv2");
oSearcher = new System.Management.ManagementObjectSearcher(oScope, oQuery);
foreach (System.Management.ManagementObject oService in oSearcher.Get())
{
log(oService.GetPropertyValue("Name").ToString());
ret.Add(oService.GetPropertyValue("Name").ToString());
}
}
catch (Exception ex)
{
log("getMetrics "+ex.Message);
}
return ret;

}
Сандра также была полезна тем, что подробно описывала характеристики, режимы работы железа и программных компонентов, а также позволяла провести "быстрое" тестирование оборудования и сравнение его характеристик с существующими аналогами.

Существует ли инструментарий, подобно указанному в статье, позволяющий на C# "малой кровью" реализовать получение информации о RAM, температуре на датчиках (процессор, чип видеокарты, чипсет)в системе?
Надо посмотреть и поиграться с классами. Их много, мне было просто интересно получать информацию с помощью C#, давно еще делал то же самое, что в статье но на VBA. Собственно так статья и появилась.
Нет, надо лезть в ассемблер и программирование SMBUS.
Или залезть на кодепроджект и найти готовую библиотеку :)
Да, могу сказать еще одно: у меня в паре проектов WMI-запросы вызывали утечку памяти. Проблема в том, что работа с WMI строится через COM.
Надо смотреть. В любом случае GC должен был бы все за собой убрать. Вряд ли MS не решил эту проблему.
Не должен, ибо память аллоцируется вне досягаемости GC, не в managed heap. Поверьте, любая работа с native-функциями и вызов COM-объектов может вести к утечкам памяти.

Проверяется это сложно, нужно пару суток гонять программу и смотреть на оснастку Performance ;)
Да, вы правы, просто перепутал, я для своих неуправляемых библиотек всегда .NET обертку делал.
В том и дело, что даже обертка не спасет от утечки :) Нужно будет запостить сюда материал о том, как искать утечки памяти, спасибо, что напомнили ;)
Даже так... Я считал, что спасает. Спасибо за информацию. Ждет статью ;)
Забавно, забавно. Ждём продолжения автора на эту же тему, но под WINAPI?
Что вы хотели сказать? Я не совсем понял.
Хотел сказать, что интересно было бы взглянуть, как это делается не на шарпе, а, к примеру, на C++ без FCL.
что касается архитектуры проца то примерно так
void DefineSystemInfo(char* p_systemInfo)
{
SYSTEM_INFO si;
GetSystemInfo(&si);
switch(si.wProcessorArchitecture)
{
case PROCESSOR_ARCHITECTURE_UNKNOWN:
strcpy(p_systemInfo,"UNKNOWN");
break;
case PROCESSOR_ARCHITECTURE_INTEL:
strcpy(p_systemInfo,"INTEL");
break;
case PROCESSOR_ARCHITECTURE_IA64:
strcpy(p_systemInfo,"IA_64");
break;
case PROCESSOR_ARCHITECTURE_AMD64:
strcpy(p_systemInfo,"AMD64");
break;
default:break;
}
}
Не совсем WMI, но есть хорошая программа работающая из коммандной строки checkcfg http://checkcfg.narod.ru/, бесплатная, можно использовать в своих разработках, собирает конфигурацию компьютера и отдает в txt или в csv, может на ftp положить при желании.
Посоветовал бы еще использовать Power Shell - консоль от MS с языком сценариев, предназначена для автоматизации задач по администрированию системы. В сценариях можно использовать сборки .NET + существует большое количество готовых решений (скриптов).
а вот, например, скрипт для решения описанной задачи http://thepowershellguy.com/blogs/posh/a…
Для этого надо POwerShell ставить. Да и написать самому всегда интереснее.
UFO just landed and posted this here
Я не знаю - специфика работы другая у меня.
Портированная Samba на Linux :)

#!/bin/sh

echo "Local time:"
echo "-----------"
date
echo

echo "CPU:"
echo "----"
cat /proc/cpuinfo
echo

echo "HDD Usage:"
echo "----------"
df -h
echo

echo "Devices:"
echo "--------"
lspci -v
echo

echo "HDD/CDR devices:"
echo "----------------"
/sbin/blkid
echo

echo "USB Devices:"
echo "------------"
lsusb -v
echo

echo "Sound devices:"
echo "--------------"
amixer
echo

echo "Memory Usage:"
echo "-------------"
free
echo

echo "Advanced Memory Usage:"
echo "----------------------"
cat /proc/meminfo
echo

echo "Network interfaces:"
echo "-------------------"
/sbin/ifconfig
echo

echo "Screen info:"
echo "------------"
xwininfo -root
echo
Везет вам( Я бы написал пару статеек на тему написания программ для Singularity.
Так напиши, интересно будет почитать
public static void PrintProcessorStat()
{
String map[] = { "Name", "Caption", "Description", "L2CacheSize", \
    "Manufacturer", "Revision" };
String sql = "select ";
for(int i=0; i < map.length(); i++) {
  if(i > 0) sql += ",";
  sql += map[i] + " ";
}
sql += "from Win32_Processor where ProcessorType = 3";
...
foreach (ManagementObject ProcessorInfo in ProcessorCollection) {
  Console.WriteLine("Информация о процессоре;");
  for(int i = 0; i < map.length(); i++) {
    Console.WriteLine(map[i] + ProcessorInfo[map[i]].ToString());
  }
}
}
Это к чему? Просто модификация с английскими названиями?
Или показать свои знания? ;)
люблю когда повторяющиеся схожие действия обобщены и сокращены
ну может быть и не без "показать" :)
тьфу..подумал тут про тесты будет рассказываться (ну мне лично этим Сисандра запомнилась)

Но всё равно интересненько
Писать тесты для железа дело неблагодарное, да и знаний по железу должно быть много.
ну я имел ввиду что название топика с толку сбило. А по поводу тестов не спорю
Sign up to leave a comment.

Articles