52 lines
1.3 KiB
PowerShell
52 lines
1.3 KiB
PowerShell
|
[CmdletBinding()]
|
||
|
Param(
|
||
|
[Parameter(Mandatory)]
|
||
|
[string]$VMName,
|
||
|
[Parameter(Mandatory)]
|
||
|
[string]$VSphereFQDN,
|
||
|
[Parameter(Mandatory)]
|
||
|
[string]$VSphereUsername,
|
||
|
[Parameter(Mandatory)]
|
||
|
[string]$VSpherePassword
|
||
|
)
|
||
|
|
||
|
$PowerCliConfigurationSplat = @{
|
||
|
Scope = 'User'
|
||
|
ParticipateInCEIP = $False
|
||
|
Confirm = $False
|
||
|
InvalidCertificateAction = 'Ignore'
|
||
|
}
|
||
|
Set-PowerCLIConfiguration @PowerCliConfigurationSplat
|
||
|
|
||
|
$ConnectVIServerSplat = @{
|
||
|
Server = $VSphereFQDN
|
||
|
User = "$VSphereUsername"
|
||
|
Password = "$VSpherePassword"
|
||
|
WarningAction = 'SilentlyContinue'
|
||
|
}
|
||
|
Connect-VIServer @ConnectVIServerSplat | Out-Null
|
||
|
|
||
|
$GetVMSplat = @{
|
||
|
Name = $VMName
|
||
|
}
|
||
|
$VM = Get-VM @GetVMSplat
|
||
|
|
||
|
$GetHarddiskSplat = @{
|
||
|
VM = $VM
|
||
|
}
|
||
|
$Harddisk = Get-Harddisk @GetHarddiskSplat
|
||
|
$VMFolder = ($Harddisk.Filename.Substring(0, $Harddisk.Filename.LastIndexOf('/')) -split ' ')[1]
|
||
|
|
||
|
$NewDatastoreDriveSplat = @{
|
||
|
Name = 'ds'
|
||
|
Datastore = ($VM | Get-Datastore)
|
||
|
}
|
||
|
New-DatastoreDrive @NewDatastoreDriveSplat
|
||
|
|
||
|
$CopyDatastoreItemSplat = @{
|
||
|
Item = "ds:\$($VMFolder)\*.vmdk"
|
||
|
Destination = (Get-Item $PWD)
|
||
|
}
|
||
|
Copy-DatastoreItem @CopyDatastoreItemSplat
|
||
|
|
||
|
Disconnect-VIServer * -Confirm:$False
|