Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
Okay, PowerShell Direct is cool - but sometimes you just want to copy a script (or set of scripts) into the virtual machine and run them there. How can you do that? Fortunately - PowerShell Direct comes to the rescue. Here is a simple snippet that will send any text file from the host to the virtual machine over PowerShell Direct:
# Pass in script file - array trick from https://powershell.com/cs/forums/t/4169.aspx
function copyTextFileIntoVM([string]$VMName, $cred, [string]$sourceFilePath, [string]$destinationFilePath){
$content = Get-Content $sourceFilePath
icm -VMName $VMName -Credential $cred {param($Script, $file)
$script | set-content $file} -ArgumentList (,$content), $destinationFilePath}
Once this is done - you can then use PowerShell Direct to kick off any processes you want.
Cheers,
Ben
Comments
Anonymous
July 29, 2015
The Using scope modifier will make your code a little simpler: icm -VMName $VMName -Credential $cred { $using:content | set-content $using:destinationFilePath }Anonymous
July 29, 2015
Ths is allright for small files but it would be great if you supported making psSessions with powershell direct so we could use the -toSession /-fromSession flags for copy item :)Anonymous
July 30, 2015
Wow, this is cool! I know Linux is not supported but think about Powershell Direct and a provider/converter which takes commands from invoke-command and spits them out in a SSH session on the Linux guest...