in reply to Write file in Windows Programs folder

Add the following:

use Win32::RunAsAdmin qw(force);

This works for me on Windows 10. The user get prompted from indows if the script should be run as Administrator. Copying/Writing should now be allowed. It works for me with your code (without this module it doesn't work for me either). Solution found here.

This is a working example using Temp folder to download and unzip the original zip file. It downloads the (zip) file to be updated in your program installation folder, it enzip it in your Temo folder and copy it to the final destination.

#!/usr/bin/perl use strict; use warnings; use Win32::RunAsAdmin qw(force); use LWP::Simple; use Archive::Extract; my $url = 'URL'; my $WindowsProgramfilesDir = $ENV{'PROGRAMFILES(X86)'}; my $WindowsTempDir = $ENV{'TEMP'}; my $InstallationDir = $WindowsProgramfilesDir . "/INSTALLATION_FOLDER" +; my $ZipFile = $WindowsTempDir . '/update.zip'; getstore($url, $ZipFile); my $tempDir=$WindowsTempDir . '/unzippedFolder'; my $x = Archive::Extract->new( archive => $ZipFile ); $x->extract( to => $tempDir ) or die $x->error; use File::Copy::Recursive qw(dircopy); dircopy($tempDir,$InstallationDir) or die("$!\n");