속성이 스크립트는 하이퍼 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 문장을 사용하여 이러한 읽기 전용 속성을 수정하려면 어떻게해야합니까?
미리 감사드립니다.
나는 이미 시도했지만 성공하지는 못했다. 내가 얻은 CIM 객체는 연관 인스턴스입니다. 나는 그것이 "CiminstanceProperties"를 가지고있는 것을 보았고 다음과 같이 참조하면 $ properties = (Get-CimAssociatedInstance $ vmnetadapters -resultclassname 'Msvm_GuestNetworkAdapterConfiguration') .CimInstanceProperties $ 속성 [ "DHCPEnabled"]. 값 = $ False –