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 物件。