属性、このスクリプトは、Hyper-V仮想Mahine 元のスクリプトがあるにIPアドレスを注入することができます:http://www.ravichaganti.com/blog/?p=2766PowerShellの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」でオブジェクトをチェックしたとき、私は、これらのプロパティは、唯一の方法「を取得」、およびメソッドは使用できません「セット」持っていることを見ることができました。 WMIを使用しています
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;}
オリジナルのスクリプトは、これらの値を変更することができますが、私は、Microsoft WMIとCIMによるCIM
を使用する際に同等であるべきことは不可能ですが、いくつかの違いがあるようです。
CIM文を使用してこれらの読み取り専用プロパティを変更するにはどうすればよいですか?
ありがとうございます。
私はすでに試してみましたが、成功しませんでした。私が得るCIMオブジェクトは、関連するインスタンスです。 CimInstanceProperties $プロパティ["DHCPEnabled"]。値= $ False(CimstanceProperties)は、 "CiminstanceProperties"を持っています。 –