2012-03-30 2 views
0

XML 파일에 저장되어있는 데이터를 방금이 명령 세션에서 변수에 저장 한 데이터와 비교하려고합니다. 심지어 가능할까요?Powershell에서 XML과 라이브 데이터 변수 비교

는이 기사 읽기 : ". :

you are comparing the same object types (do not mix imported xml data with live data) 
the syncWindow is large enough to cover the number of expected differences 
you specify the properties you really want to compare 

비교-Object가 결과 집합을 비교하는 좋은 방법입니다 당신은 단지 확인하기 위해주의해야"

하십시오 http://powershell.com/cs/blogs/tobias/archive/2009/01/09/tipps-amp-tricks-using-compare-object.aspx

을 가져온 XML 데이터와 실제 데이터를 비교할 수 있다고 말해주십시오. P

이것은 내 XML :

입니다.
<computer version="1.0"> 
    <hardware> 
    <serialnr>78456214Q</serialnr> 
    <systeminfo> 
     <name>Macgyver</name> 
     <domain>Inventory.Domain</domain> 
     <manufacturer>TOSHIBA</manufacturer> 
     <model>Satellite A300</model> 
     <bitversion>x64-based PC</bitversion> 
    </systeminfo> 
    <gpu> 
     <name>ATI Mobility Radeon HD 3400 Series</name> 
     <status>OK</status> 
    </gpu> 
    <cpu> 
     <name>Intel(R) Core(TM)2 Duo CPU  T5750 @ 2.00GHz</name> 
     <manufacturer>GenuineIntel</manufacturer> 
     <id>cpuid</id> 
     <numberofcores>2</numberofcores> 
     <addresswidth>64</addresswidth> 
    </cpu> 
    <usb> 
     <model>TOSHIBA MK2552GSX ATA Device</model> 
    </usb> 
    <drive> 
     <name>C:</name> 
     <volumename>Vista</volumename> 
     <size>116,29 GB</size> 
     <freespace>25,88 GB</freespace> 
    </drive> 
    <drive> 
     <name>D:</name> 
     <volumename>Disk</volumename> 
     <size>115,13 GB</size> 
     <freespace>114,03 GB</freespace> 
    </drive> 
    <memory> 
     <positioninrow>1</positioninrow> 
     <size>2 GB</size> 
     <datawidth>64</datawidth> 
     <devicelocator>DIMM0</devicelocator> 
    </memory> 
    <memory> 
     <positioninrow>2</positioninrow> 
     <size>2 GB</size> 
     <datawidth>64</datawidth> 
     <devicelocator>DIMM2</devicelocator> 
    </memory> 
    </hardware> 
    <software> 
    <printer> 
     <drivername>Microsoft XPS Document Writer</drivername> 
    </printer> 
    <printer> 
     <drivername>Microsoft Shared Fax Driver</drivername> 
    </printer> 
    <user> 
     <name>Administrator</name> 
    </user> 
    <user> 
     <name>Guest</name> 
    </user> 
    <user> 
     <name>Hkon</name> 
    </user> 
    <user> 
     <name>HomeGroupUser$</name> 
    </user> 
    <osinfo> 
     <caption>Microsoft Windows 7 Ultimate </caption> 
     <serialnumber>03426-OEM-8672362-00056</serialnumber> 
     <installdate>06/07/2010 15:37:05</installdate> 
     <OSArchitecture>64-bit</OSArchitecture> 
     <manufacturer>Microsoft Corporation</manufacturer> 
    </osinfo> 
    <network> 
     <IP>158.38.54.48 fe90::8b3:b35e:e5d4:91f7</IP> 
     <Name>Intel(R) PRO/Wireless 3945ABG Network Connection</Name> 
     <MAC>00:1F:3C:8E:32:D9</MAC> 
    </network> 
    </software> 
</computer> 
+0

XML 파일의 내용과 갖고있는 변수의 예를 제공 할 수 있습니까? 물론 가능합니다. 문제는 가장 효율적인 방법으로 만드는 것입니다. –

+0

예제 XML은 위입니다. – haakonlu

답변

0

가능한 경우 비교 대상을 사용할 수 없으므로 비교 대상을 사용할 수 없습니다. 원하는 속성 값을 비교하는 코드를 직접 작성해야합니다. 또는 라이브 데이터를 temp xml 파일로 내 보낸 다음 다시 가져 와서 비교 개체를 사용할 수 있습니다. 그런 다음 서로 다른 객체 유형을 비교하지 않습니다.