37 lines
1.2 KiB
PowerShell
37 lines
1.2 KiB
PowerShell
|
param (
|
||
|
[string] $VmId,
|
||
|
[string] $guest_service_interface = $null,
|
||
|
[string] $heartbeat = $null,
|
||
|
[string] $key_value_pair_exchange = $null,
|
||
|
[string] $shutdown = $null,
|
||
|
[string] $time_synchronization = $null,
|
||
|
[string] $vss = $null
|
||
|
)
|
||
|
|
||
|
# Include the following modules
|
||
|
$Dir = Split-Path $script:MyInvocation.MyCommand.Path
|
||
|
. ([System.IO.Path]::Combine($Dir, "utils\write_messages.ps1"))
|
||
|
|
||
|
$vm = Get-VM -Id $VmId -ErrorAction "stop"
|
||
|
|
||
|
# Set the service based on value
|
||
|
function VmSetService
|
||
|
{
|
||
|
param ([string] $Name, [string] $Value, [Microsoft.HyperV.PowerShell.VirtualMachine] $Vm)
|
||
|
|
||
|
if ($Value -ne $null){
|
||
|
if($Value -eq "true"){
|
||
|
Enable-VMIntegrationService -VM $Vm -Name $Name
|
||
|
}
|
||
|
if($Value -eq "false"){
|
||
|
Disable-VMIntegrationService -VM $Vm -Name $Name
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
VmSetService -Name "Guest Service Interface" -Value $guest_service_interface -Vm $vm
|
||
|
VmSetService -Name "Heartbeat" -Value $heartbeat -Vm $vm
|
||
|
VmSetService -Name "Key-Value Pair Exchange" -Value $key_value_pair_exchange -Vm $vm
|
||
|
VmSetService -Name "Shutdown" -Value $shutdown -Vm $vm
|
||
|
VmSetService -Name "Time Synchronization" -Value $time_synchronization -Vm $vm
|
||
|
VmSetService -Name "VSS" -Value $vss -Vm $vm
|