I have been trying out a couple of modules that provide the ability to unzip on 
Windows (reidmv/unzip and counsel/puppet-windows).

Both of these work, indeed it would appear using a similar approach (powershell 
using .Copyhere). However both of them appear to require that the source zip 
file is located on a local drive. The reidmv/unzip README says this :-

source
The fully-qualified path to the zip file to extract. This file must already 
exist on the system; that is, it cannot be a remote URL. You can use pget or 
another resource

The zip file that I want to use is on a network share (actually while I'm 
testing its a sync folder in Vagrant, but will be on a network share when I 
move beyond this stage). When I use that location in the source, the module 
doesn't fail or error, it just doesn't unzip any of the files. If I move the 
file locally it works correctly. The same behaviours is true for the 
counsel/puppet-windows module.

Is this a constraint of powershell or is there something else at play here ?

Is there another way that I can unzip a file that is not located on the local 
machine (I would prefer not to have to install 7zip or similar if possible, but 
I will if that's the only way) ?

Here is the command used in the reidmv/unzip module (it's wrapped into an Exec 
resource) :-

exec { "unzip $source to $dest":
  command => "\$sh=New-Object -COM 
Shell.Application;\$sh.namespace((Convert-Path 
'$dest')).Copyhere(\$sh.namespace((Convert-Path '$source')).items(), 16",
  creates  => $creates,
  provider => powershell

}

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to puppet-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/puppet-users/2f5e5e15-36c2-40a8-bde6-444cbb2fa43b%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to