ГЛАВНАЯ     АРХИВ     НАПИСАТЬ АДМИНУ     ПОДПИСАТЬСЯ НА RSS     ВОЙТИ      

Поиск

Категории

Облако тегов

  << Предыдущий пост       Следующий пост >>  
От: inbruk
1. декабря 2014 15:45

Иногда нужно получить на C# параметры различных подсистем windows на удаленном компьютере. Например, как получить размер свободного места на локальном диске удаленного компьютера под Windows на C# ? Дальше описание того, как это сделать через WMI.
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Diagnostics;
using System.Management;

namespace TestForRequiredCheckings
{
    class Program
    {
        static void GetCompParametersAndDiskspaceThroughWMI() 
        {
          ManagementScope scope = new ManagementScope("\\\\HostName\\root\\cimv2");
          scope.Connect(); 
          ObjectQuery query = new ObjectQuery("SELECT * FROM Win32_OperatingSystem");
          SelectQuery query1 = new SelectQuery("Select * from Win32_LogicalDisk");
          SelectQuery query2 = new SelectQuery("Select FreeSpace from Win32_LogicalDisk WHERE Name='C:'"); 
 
          ManagementObjectSearcher searcher = new ManagementObjectSearcher(scope, query); 
          ManagementObjectCollection queryCollection = searcher.Get(); 

          ManagementObjectSearcher searcher1 = new ManagementObjectSearcher(scope, query1); 
          ManagementObjectCollection queryCollection1 = searcher1.Get(); 
 
          foreach (ManagementObject m in queryCollection) 
          { 
              // Display the remote computer information  
              Console.WriteLine("Computer Name : {0}", m["csname"]); 
              Console.WriteLine("Windows Directory : {0}", m["WindowsDirectory"]); 
              Console.WriteLine("Operating System: {0}", m["Caption"]); 
              Console.WriteLine("Version: {0}", m["Version"]); 
              Console.WriteLine("Manufacturer : {0}", m["Manufacturer"]); 
              Console.WriteLine(); 
          } 
 
          foreach (ManagementObject mo in queryCollection1) 
          { 
             // Display Logical Disks information 
             Console.WriteLine();
             Console.WriteLine("              Disk Name : {0}", mo["Name"]);
             Console.WriteLine("              Disk Size : {0}", mo["Size"]); 
             Console.WriteLine("              FreeSpace : {0}", mo["FreeSpace"]);
             Console.WriteLine("          Disk DeviceID : {0}", mo["DeviceID"]);
             Console.WriteLine("        Disk VolumeName : {0}", mo["VolumeName"]);
             Console.WriteLine("        Disk SystemName : {0}", mo["SystemName"]);
             Console.WriteLine("Disk VolumeSerialNumber : {0}", mo["VolumeSerialNumber"]);              
          }

          ManagementObjectSearcher searcher2 = new ManagementObjectSearcher(scope, query2);
          ManagementObjectCollection queryCollection2 = searcher2.Get();

          Console.WriteLine(" Текущее количество свободного места на диске C: {0}", 
               queryCollection2.Cast<ManagementObject>().First()["FreeSpace"]);
        }


        static void Main(string[] args) 
        {
            GetCompParametersAndDiskspaceThroughWMI();

            Console.ReadKey();
        }
    }
}
Есть ограничения. Оба компьютера под Windows. Я проверял на компьютерах в одном домене, не знаю будет ли работать на разных. Также пользователь, под которым запускается программа, должен быть админом на исследуемом компьютере. Кроме того, служба RPC, она же для DCOM, она же для WMI должна быть включена. Службы WMI должны быть включены. В firewall должен быть разрешен порт RPC-DCOM-WMI (135 кажется).

Похожие записи


Вопросы на собеседовании C#, Net, ASP.NET, SQL
Продолжая тему вопросов на собеседовании. Нашел еще одну подборку. Оригинал лежит здесь . Перенес, чтобы не затерялось. Есть вполне вменяемые ответы (хотя, на некоторые вопросы ответил бы по-другому). Ответы находятся после списка вопросов, я их не менял. 23. Что такое шаблон проектирования Model/View/Controller? Как и зачем его применяют? 2...

Способы заработка на сайте
На этом блоге было много постов про производство и раскрутку сайтов. Но пока не было про заработок на них. Пора исправить этот недочет. Здесь будут описаны по возможности не фантастичные, и не супер низко прибыльные способы. Также упор будет сделан именно на организацию процесса, а не технических деталях, которых в обилии в интернете. Несмотря на то, что как пр...

Silverlight, HTML5 и непрозрачная стратегия развития Microsoft
Оригинал статьи взят отсюда: Silverlight, HTML5 и непрозрачная стратегия развития Microsoft Автор: Peter Bright Переводчик: Mairon     По непонятным мне на данный момент причинам, похоже, что многие разработчики, присутствовавшие на недавней конференции PDC-2010 (Крупнейшая конференция Microsoft для разработчиков — Прим. переводчика), были сильн...

Добавить комментарий




biuquote
  • Комментарий
  • Предпросмотр
Loading


  Сохранить комментарий