$uri = "https://github.com/alanrenouf/PowerActions/archive/master.zip" $file = $Env:Temp + "\master.zip" $destination = ($Env:ProgramData + "\VMware\myNGC\Scripts\") If (! (Test-Path $destination)) { Write-Host "Creating new folder" New-Item $destination -type directory | Out-Null } Write-Host "Downloading to $file" # Download the file $WebClient = New-Object -TypeName System.Net.WebClient $WebClient.DownloadFile($uri, $file) if (Test-Path $file) { $Date = Get-Date $BackupFolder = $env:USERPROFILE + "\Documents\" + $Date.month + "-" + $Date.day + "-" + $Date.Year + "-" + $Date.Hour + "-" + $Date.Minute + "\" Write-Host "Backing up the current Shared Scripts folder to $BackupFolder" MD $BackupFolder | Out-Null Get-ChildItem $destination -Recurse | Copy-Item -Destination $BackupFolder | Out-Null Write-Host "Download complete, extracting to $destination" $shell = new-object -com shell.application $zip = $shell.NameSpace($file) $destinationfolder = $shell.NameSpace($destination) $destinationfolder.CopyHere($zip.Items()) If (Test-Path ($destination + "\PowerActions-master\")) { Write-Host "Moving extracted scripts to Shared Scripts at $destination" Get-Item -path ($destination + "\PowerActions-master\*.*") | Move-Item -Destination ($Env:ProgramData + "\VMware\myNGC\Scripts\") -Force Write-Host "Restarting PowerActions Service to register new scripts" Restart-Service P2PSSrv Write-Host "Tidying up" Remove-Item -Path $file -Confirm:$false -Force | Out-Null Remove-Item ($destination + "\PowerActions-master") -Confirm:$false -Recurse -Force | Out-Null Write-Host "Please restart any open browsers with access to the web client to see all new and updated scripts" } Else { Write-Host "Extract of files failed" } } Else { Write-Host "Download failed" }