2016-11-07 13 views
0

속성이 스크립트는 하이퍼 V 가상 Mahine 원래 스크립트에 IP 주소를 삽입 할 수있는 것은 : http://www.ravichaganti.com/blog/?p=2766같은 객체가 서로 다른 속성을 반환 CIM 대 파워 쉘 WMI 내가 CIM에 WMI 기반 스크립트를 변환하기 위해 노력하고있어

내 경우

, 나는이 같은 CIM 문장에 WMI를 변환했습니다

$vmname="mytestvm" 
     $vm=get-ciminstance -namespace 'root\virtualization\v2' -Class 'Msvm_ComputerSystem' -ComputerName $ComputerName | Where-Object { $_.ElementName -eq $vmname } 
      $VMSettings = get-cimassociatedinstance $vm -resultclassname 'Msvm_VirtualSystemSettingData' | Where-Object { $_.VirtualSystemType 
    -eq 'Microsoft:Hyper-V:System:Realized' } 
      $vmnetadapters=get-cimassociatedinstance $vmSettings -resultclassname 'Msvm_SyntheticEthernetPortSettingData' 

      $NetworkSettings = @(Get-CimAssociatedInstance $vmnetadapters -resultclassname 'Msvm_GuestNetworkAdapterConfiguration') 

이 시점까지, 모두가 잘 작동, 데이터에 액세스하고 I 인터페이스 특성을 볼 수 있어요. 그러나 원본 스크립트처럼 값을 설정하려고 할 때 수정할 수 없으며 속성이 읽기 전용으로 설정되어 있음을 나타냅니다.

이러한 지정이 작동하지 않습니다.

$NetworkSettings[0].DHCPEnabled = $false 
    $NetworkSettings[0].IPAddresses = $IPAddress 
    $NetworkSettings[0].Subnets = $Subnet 

내가 가진 개체를 검사 할 때 "를 Get-Member"나는 이러한 속성은 "GET"방식과 "설정"방법을 가지고 볼 수는 사용할 수 없습니다.

Name    MemberType Definition 
----    ---------- ---------- 
DefaultGateways Property string[] DefaultGateways {get;} 
DHCPEnabled  Property bool DHCPEnabled {get;} 
DNSServers  Property string[] DNSServers {get;} 
InstanceID  Property string InstanceID {get;} 
IPAddresses  Property string[] IPAddresses {get;} 
IPAddressOrigins Property uint16[] IPAddressOrigins {get;} 
ProtocolIFType Property uint16 ProtocolIFType {get;} 
PSComputerName Property string PSComputerName {get;} 
Subnets   Property string[] Subnets {get;} 

원래 스크립트, 즉 WMI이 값을 수정할 수 있습니다 사용하지만, 내가 동등해야 마이크로 소프트 WMI 및 CIM에 따르면

CIM

사용할 때 불가능하지만 약간의 차이가있는 것 같다.

CIM 문장을 사용하여 이러한 읽기 전용 속성을 수정하려면 어떻게해야합니까?

미리 감사드립니다.

답변

1

CIM cmdlet을 사용하여 변경하려는 경우 실제로 변경을 수행하려면 set-ciminstance을 사용하십시오.

+0

나는 이미 시도했지만 성공하지는 못했다. 내가 얻은 CIM 객체는 연관 인스턴스입니다. 나는 그것이 "CiminstanceProperties"를 가지고있는 것을 보았고 다음과 같이 참조하면 $ properties = (Get-CimAssociatedInstance $ vmnetadapters -resultclassname 'Msvm_GuestNetworkAdapterConfiguration') .CimInstanceProperties $ 속성 [ "DHCPEnabled"]. 값 = $ False –