2016-11-07 4 views
0

属性、このスクリプトは、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文を使用してこれらの読み取り専用プロパティを変更するにはどうすればよいですか?

ありがとうございます。

答えて

1

CIMコマンドレットを使用していて、変更を加えたい場合は、実際に変更を加えるにはset-ciminstanceを使用します。

+0

私はすでに試してみましたが、成功しませんでした。私が得るCIMオブジェクトは、関連するインスタンスです。 CimInstanceProperties $プロパティ["DHCPEnabled"]。値= $ False(CimstanceProperties)は、 "CiminstanceProperties"を持っています。 –

関連する問題