Set-SCGuestInfo
设置与来宾操作系统中键/值对的键关联的值。
语法
Set-SCGuestInfo
[-VM] <VM>
-KvpMap <Hashtable>
[<CommonParameters>]
Set-SCGuestInfo
[-VM] <VM>
[-Key] <String>
[[-Value] <String>]
[<CommonParameters>]
说明
Set-SCGuestInfo cmdlet 设置与来宾操作系统中键/值对的键关联的值。
示例
示例 1:设置单个键/值对
PS C:\> $VM = Get-SCVirtualMachine "VM01"
PS C:\> Set-SCGuestInfo -VM $VM -Key Key -Value Value
第一个命令获取名为 VM01 的虚拟机对象,并将该对象存储在$VM变量中。
第二个命令设置 VM01 的键/值对。
示例 2:将键设置为键/值对的值
PS C:\> Get-SCVirtualMachine -Name "VM01" | Set-SCGuestInfo -Key Microsoft.Lab.Isolation.ServerVersion -Value 1.0.1101
此命令将密钥设置为 Microsoft.Lab.Isolation.ServerVersion,并将名为 VM01 的虚拟机的值设置为 1.0.1101。 如果该键不存在,则会使用指定的值创建它。 如果键已存在,将使用此命令中指定的值覆盖其值。
可以使用 Read-SCGuestInfo cmdlet 提供密钥并返回相应的值。
示例 3:设置多个键/值对
PS C:\> $VM = Get-SCVirtualMachine -Name "Win2k8R2"
PS C:\> $ValuesMap = @{"Key1" = "avalue1"; "Key2IsEmptyString" = "" ; "Key3" = "value3"}
PS C:\> Set-SCGuestInfo -VM $VM -KvpMap $ValuesMap
PS C:\> Read-SCGuestInfo -VM $VM -KvpMap $ValuesMap | Select KvpMap
第一个命令获取名为 Win2k8R2 的虚拟机对象,并将对象存储在$VM变量中。
第二个命令创建一个名为$ValuesMap的哈希表,其中包含键/值对的相应键和值。 值可以设置为字符串、空字符串或$Null。 将值设置为$Null删除密钥。
第三个命令设置名为 Win2k8R2 的虚拟机的键/值对。
最后一个命令将读回名为 Win2k8R2 的虚拟机的键/值对。
示例 4:修改一组键/值对的值集
PS C:\> $VM = Get-SCVirtualMachine -Name "Win2k8R2"
PS C:\> $ValuesMap = @{"Key1" = "avalue1"; "Key2IsEmptyString" = "" ; "Key3" = "value3"}
PS C:\> Set-SCGuestInfo -VM $VM -KvpMap $ValuesMap
PS C:\> Read-SCGuestInfo -VM $VM -KvpMap $ValuesMap | Select KvpMap
PS C:\> $ValuesMap = @{"Key2IsEmptyString" = "KeyIsNoLongerEmpty"}
PS C:\> Set-SCGuestInfo -VM $VM -KvpMap $ValuesMap
PS C:\> $ValuesMap = @{"Key1" = $Null; "Key2IsEmptyString" = $Null; "Key3" = $Null}
PS C:\> Read-SCGuestInfo -VM $VM -KvpMap $ValuesMap | Select KvpMap
第一个命令获取名为 Win2k8R2 的虚拟机对象,并将对象存储在$VM变量中。
第二个命令创建一个名为$ValuesMap的哈希表,其中包含键/值对的相应键和值。 值可以设置为字符串、空字符串或$Null。 将值设置为$Null删除密钥。
第三个命令设置名为 Win2k8R2 的虚拟机的键/值对。
第四个命令将读回名为 Win2k8R2 的虚拟机的键/值对。
第五个命令创建一个新的哈希表,其中特定键更改为其他值。
第六个命令设置哈希表中指定键的修改值。
最后两个命令可读回名为 Win2k8R2 的虚拟机的键/值对,包括键 Key2IsEmptyString 的修改值。
示例 5:使用两种方法删除键/值对
PS C:\> $VM = Get-SCVirtualMachine -Name "Win2k8R2"
PS C:\> $ValuesMap = @{"Key1" = "avalue1"; "Key2" = "avalue2"}
PS C:\> Set-SCGuestInfo -VM $VM -KvpMap $ValuesMap
PS C:\> Read-SCGuestInfo -VM $VM -KvpMap $ValuesMap | Select KvpMap
PS C:\> Set-SCGuestInfo -VM $VM -Key Key1
PS C:\> $KvpsToDelete = @{"Key2" = $Null}
PS C:\> Set-SCGuestInfo -VM $VM -KvpMap $KvpsToDelete
PS C:\> Read-SCGuestInfo -VM $VM -KvpMap $ValuesMap | Select KvpMap
第一个命令获取名为 Win2k8R2 的虚拟机对象,并将对象存储在$VM变量中。
接下来的三个命令创建两个键及其值,并将其返回到虚拟机 Win2k8R2 的控制台。
第五个命令通过调用 Set-SCGuestInfo 而不指定值参数来删除键/值对 Key1。
第六和第七个命令创建一个新的哈希表,将 Null 作为键键 2 的值。 然后,通过调用 Set-SCGuestInfo cmdlet 删除密钥 2。
最后一个命令显示,最初创建的两个键现在都通过两个单独的方法删除。
示例 6:设置多个值,其中一个值为空
PS C:\> $VM = Get-SCVirtualMachine -Name "VM01"
PS C:\> $ValuesMap3 = @{"VSLM1" = "value1"; "VLSM2" = "value2" ; "VLSM3" = "value3" ; "VLDM4" = ""}
PS C:\> Set-SCGuestInfo -VM $VM -KVPMap $ValuesMap3
PS C:\> Read-SCGuestInfo -VM $VM -KVPMap $ValuesMap3 | Select KVPMap
第一个命令获取名为 VM01 的虚拟机对象,并将该对象存储在$VM变量中。
第二个命令创建一个名为 $ValuesMap 3 的哈希表,其中包含键/值对的相应键和值。 值可以设置为字符串、空字符串或$Null。 将值设置为$Null删除密钥。
第三个命令设置哈希表中指定键的值。
最后一个命令将读回名为 VM01 的虚拟机的键/值对。
示例 7:删除一个值,并将另一个值设置为空
PS C:\> $VM = Get-SCVirtualMachine -Name "VM01"
PS C:\> $ValuesMap4 = @{"VLSM2" = $Null; "VSLM1" = "" }
PS C:\> Set-SCGuestInfo -VM $VM -KVPMap $ValuesMap4
PS C:\> Read-SCGuestInfo -VM $VM -KVPMap $ValuesMap4 | Select KVPMap
第一个命令获取名为 VM01 的虚拟机对象,并将该对象存储在$VM变量中。
第二个命令创建一个名为 $ValuesMap 4 的哈希表,其中包含键/值对的对应键和值。 值可以设置为字符串、空字符串或$Null。 将值设置为$Null删除密钥。
第三个命令设置哈希表中指定键的值。
第四个命令删除密钥 VLSM2,并通过调用 Set-SCGuestInfo 命令将密钥 VSLM1 设置为空。
最后一个命令将读回名为 VM01 的虚拟机的键/值对。
示例 8:设置一个值并删除另一个值
PS C:\> $VM = Get-SCVirtualMachine -Name "VM01"
PS C:\> $ValuesMap5 = @{"VSLM1" = "data again"; "VLSM3" = $Null }
PS C:\> Set-SCGuestInfo -VM $VM -KVPMap $ValuesMap5
PS C:\> Read-SCGuestInfo -VM $VM -KVPMap $ValuesMap5 | Select KVPMap
第一个命令获取名为 VM01 的虚拟机对象,并将该对象存储在$VM变量中。
第二个命令创建一个名为 $ValuesMap 5 的哈希表,其中包含键/值对的相应键和值。 值可以设置为字符串、空字符串或$Null。 将值设置为$Null删除密钥。
第四个命令通过调用 Set-SCGuestInfo 命令将密钥 VSLM1 设置为“data”并删除密钥 VLSM3。
最后一个命令将读回名为 VM01 的虚拟机的键/值对。
示例 9:忽略不存在的密钥删除
PS C:\> $VM = Get-SCVirtualMachine -Name "VM01"
PS C:\> $KeysDoNotExist = @{"o1ff1" = $Null; "o1ff2" = $Null; "o1ff3" = $Null ; "o1ff4" = $Null }
PS C:\> Set-SCGuestInfo -VM $VM -KVPMap $KeysDoNotExist
PS C:\> Set-SCGuestInfo -VM $VM -Key "o1ff1"
第一个命令获取名为 VM01 的虚拟机对象,并将该对象存储在$VM变量中。
第二个命令创建一个名为 $ValuesMap 5 的哈希表,其中包含键/值对的相应键和值。 将值设置为$Null删除密钥。
第三个命令将值设置为$Null哈希表中的指定键。
最后一个命令通过调用 Set-SCGuestInfo cmdlet 删除哈希表中除键 o1ff1 之外的所有键。
参数
-Key
指定键/值对中的键。
Type: | String |
Position: | 1 |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-KvpMap
指定与 Hyper-V 公开的值对应的键/值对的哈希表。
Type: | Hashtable |
Position: | Named |
Default value: | None |
Required: | True |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-Value
指定用于对对象或属性进行属性特性的字符串。
Type: | String |
Position: | 2 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-VM
指定一个虚拟机对象。
Type: | VM |
Position: | 0 |
Default value: | None |
Required: | True |
Accept pipeline input: | True |
Accept wildcard characters: | False |
输出
String
此 cmdlet 返回 String 对象。