cancel
Showing results forย 
Search instead forย 
Did you mean:ย 
Disclaimer
JUMPCLOUD EXPRESSLY DISCLAIMS ALL REPRESENTATIONS, WARRANTIES, CONDITIONS, AND LIABILITIES OF ANY KIND ARISING FROM OR RELATED TO THIRD-PARTY SOFTWARE, SCRIPTS, REPOSITORIES, AND APIS. JUMPCLOUD IS NOT REQUIRED TO SUPPORT ANY SUCH THIRD-PARTY MATERIALS AND ALL RISKS RELATED TO THIRD-PARTY MATERIALS ARE YOUR RESPONSIBILITY. PLEASE ALSO REVIEW THE JUMPCLOUD TOS.

Install Software with Google Drive as the File Repo

Carat
Novitiate I

I needed to work out how to host files in a location that i had control of, but could be access by any device connected to the internet, preferably without introducing any new vendors/apps. We are a google shop, so I created a folder in our IT shared drive for the files I needed to deploy, and then just needed to figure out how to download them with PowerShell. 

Here is what i figured out: 

1. Create a shareable link in google drive to the file/folder you need to download with viewer access to anyone with the link. It should look something like this: https://drive.google.com/file/d/<FileID>/view?usp=sharing
The <FileID> is what we need from this link. Save this to $id or something similar.


2. Use this code block to set the download location of the file to $InstallerTempLocation this should include the filename and file extension i.e.: 

$installerTempLocation = "C:\Users\$SignedInUserUsername\AppData\Local\Temp\App2Installv1.3.45.msi"

Use this code block to download the file to that location: 

Write-Output 'Testing if installer is downloaded'

if (-not(Test-Path -Path $InstallerTempLocation -PathType Leaf))
{
    try
    {
        Write-Output 'Downloading installer now.'
        try
        {
            $WebClient = New-Object System.Net.WebClient
            $Url = "https://drive.google.com/uc?export=download&id=$id&confirm=t"
            $WebClient.DownloadFile($Url, $InstallerTempLocation)
        }
        catch
        {
            Write-Error "Unable to download installer to $InstallerTempLocation."
            exit 1
        }
        Write-Output 'Finished downloading installer.'
    }
    catch
    {
        throw $_.Exception.Message
    }โ€‹

This checks if the file is already downloaded, and if not, downloads it to your chosen directory. 

3. run your command to install the files, you will need to work out the correct flags to use to run your exe or msi or whatever silently. 

The result is the base you can use to install any application without a chocolatey package.

Bonus nachos: By default windows commands run as the system user, but if you take a look at the template script for installing the JumpCloud Password manager, there is a section that has the installer run as the local user. You can copy this into your script to install apps as the user where required as well. 

0 REPLIES 0