共用方式為


Set-SCGuestInfo

為客體作業系統中的索引鍵/值組設定與索引鍵相關聯的值。

Syntax

Set-SCGuestInfo
   [-VM] <VM>
   -KvpMap <Hashtable>
   [<CommonParameters>]
Set-SCGuestInfo
   [-VM] <VM>
   [-Key] <String>
   [[-Value] <String>]
   [<CommonParameters>]

Description

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 而不指定 value 參數,以刪除 Key1 索引鍵/值組。

第六個和第七個命令會建立新的 Hashtable,並以 Null 作為索引鍵 2 的值。 然後,呼叫 Set-SCGuestInfo Cmdlet 來刪除金鑰 Key2。

最後一個命令顯示,一開始建立的兩個索引鍵現在都會透過兩個不同的方法刪除。

範例 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 並將金鑰 VSLM1 設定為空白,方法是呼叫 Set-SCGuestInfo 命令。

最後一個命令會讀取名為 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,以刪除雜湊表中除了 key 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 物件。