2010-03-30 2 views
1

원래 질문의 90 %에 해당하는 신사 응답을 가졌습니다. 즉, 현재 실행중인 장치를 폴링하는 기능이 있습니다. 아래의 스크립트. 최종 목표는 IP 유형을 얻는 것입니다. 정적 또는 DHCP를 지원하는 모든 데스크탑/서버에서 지원합니다. 배치 파일에 입력 할 서버 목록이 있습니다. 실제로 네트워크의 다른 장치를 한 위치에서 폴링하는 코드를 찾고 있습니다.IP 유형을 결정하기 위해 네트워크의 여러 데스크탑/서버를 원격으로 폴링합니다. 정적 또는 DHCP

출력을 볼 수 :

 
Device name: IP Address: MAC Address:   Type: 
Marvell Yukon 88E8001/8003/8010 PCI Gigabit Ethernet Controller NULL 00:00:F3:44:C6:00 DHCP 
Generic Marvell Yukon 88E8056 based Ethernet Controller 192.168.1.102 00:00:F3:44:D0:00 DHCP 
ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration"); 
ManagementObjectCollection objMOC = objMC.GetInstances(); 

txtLaunch.Text = ("Name\tIP Address\tMAC Address\tType" +"\r\n"); 

foreach (ManagementObject objMO in objMOC) 
{ 
    StringBuilder builder = new StringBuilder(); 

    object o = objMO.GetPropertyValue("IPAddress"); 
    object m = objMO.GetPropertyValue("MACAddress"); 

    if (o != null || m != null) 
    { 
     builder.Append(objMO["Description"].ToString()); 
     builder.Append("\t"); 
      if (o != null) 
       builder.Append(((string[])(objMO["IPAddress"]))[0].ToString()); 
      else 
       builder.Append("NULL"); 
     builder.Append("\t"); 
     builder.Append(m.ToString()); 
     builder.Append("\t"); 
     builder.Append(Convert.ToBoolean(objMO["DHCPEnabled"]) ? "DHCP" : "Static"); 
     builder.Append("\r\n"); 
    } 

    txtLaunch.Text = txtLaunch.Text + (builder.ToString()); 

내가 여기에 권고 열려있어.

답변

1

원격 시스템에서 관리 클래스를 인스턴스화하면됩니다.

이 링크 : Remote WMI는 필요한 코드를 제공합니다. 각 시스템을 반복하여 필요한 정보를 얻으십시오.

연결하려는 각 컴퓨터에 대한 관리자 권한이 필요합니다. 문제를 해결할 수는 있지만 문제 해결에 도움이됩니다.

PowerShell을 살펴보고 WinRM을 사용하면 훨씬 쉽게 작업 할 수 있습니다.

0

일부 시스템이 64 비트 시스템이고 시스템이있는 경우 어떻게됩니까? 32 비트 시스템을 검색하게 되나요? 아닙니다. 그것은 말한다 : "SELECT * FROM Win32_OperatingSystem"