Hi all,
This is one of my most used, and favourite cmdlets in PowerCLI. It allows you to copy a file to a guest VM
from where ever you’re running your PowerCLI session and vice-versa.
What’s the benefit of that I hear you ask?
What if you have a template that you haven’t assigned an
IP address to, and that you don’t want to assign an IP to due to stringent
policies in place by your company, but you still really need to get that file
up to the VM?
Basically any restriction on network access and this
command can help you out.
It uses TCP port 902 to transfer the file, so you must
have that port open for this to work!
You can test this just by trying to open a console session to the VM in
vCenter.
So to utilise this cmdlet:
Copy-VMGuestFile -Source *Source path from your local machine* -Destination *Path to required destination in the VM* –VM *vmname* -HostUser *Admin account
for the ESX\ESXi host the VM is resident on* -HostPassword **** -GuestUser “Domain or
Computername\Username for the VM OS” -GuestPassword ****** -LocalToGuest (or -GuestToLocal) **Defines the direction of the file copy**
You can also use credential store xml files to authenticate
using the –guestcredentials and –hostcredentials parameters.
There are some pre-requisites to be met before you use
this cmdlet however:
· You must have VMTools installed in the guest
· You must run this cmdlet from the 32-bit version of PowerCLI
· It only runs on the following OSs:
XP 32-bit SP3
2003 32-bit SP2
2003 64-bit SP2
Windows 7 64-Bit
Windows Server 2008 R2 64-Bit
RHEL 5
To run this cmdlet against vCenter Server/ESXi 5.0 and later, you need VirtualMachine.GuestOperations.Modify privilege.
Hopefully you’ll get as much use out of this as I do!
Chris.