Voltar

Biblioteca de instalación de aplicaciones

Descubra las mejores aplicaciones para mejorar sus dispositivos con nuestra completa guía de biblioteca de instalación.

Explore los completos scripts de instalación y desinstalación para software esencial, como Notion, Google Drive, Microsoft Teams y Microsoft Office 365, diseñados para automatizar procesos de manera eficiente y eficaz.


 

Windows

Notion

Política

SELECT name FROM programs WHERE name LIKE 'Notion%'

Script de instalación

# Some installers require a flag to run silently.# Each installer might use a different argument (usually it's "/S" or "/s")$installArgs = "/S"$exeFilePath = "${env:INSTALLER_PATH}"$exitCode = 0try {# Copy the installer to a public folder so that all can access it# users$exeFilename = Split-Path $exeFilePath -leafCopy-Item -Path $exeFilePath -Destination "${env:PUBLIC}" -Force$exeFilePath = "${env:PUBLIC}\$exeFilename"# Task properties. The task will be started by the logged in user$action = New-ScheduledTaskAction -Execute "$exeFilePath" `    -Argument "$installArgs"$trigger = New-ScheduledTaskTrigger -AtLogOn$userName = Get-CimInstance -ClassName Win32_ComputerSystem |        Select-Object -expand UserName$settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries# Create a task object with the properties defined above$task = New-ScheduledTask -Action $action -Trigger $trigger `    -Settings $settings# Register the task$taskName = "fleet-install-$exeFilename"Register-ScheduledTask "$taskName" -InputObject $task -User "$userName"# keep track of the start time to cancel if taking too long to start$startDate = Get-Date# Start the task now that it is readyStart-ScheduledTask -TaskName "$taskName" -TaskPath "\"# Wait for the task to be running$state = (Get-ScheduledTask -TaskName "$taskName").StateWrite-Host "ScheduledTask is '$state'"while ($state  -ne "Running") {    Write-Host "ScheduledTask is '$state'. Waiting to run .exe..."    $endDate = Get-Date    $elapsedTime = New-Timespan -Start $startDate -End $endDate    if ($elapsedTime.TotalSeconds -gt 120) {        Throw "Timed-out waiting for scheduled task state."    }    Start-Sleep -Seconds 1    $state = (Get-ScheduledTask -TaskName "$taskName").State}# Wait for the task to be done$state = (Get-ScheduledTask -TaskName "$taskName").Statewhile ($state  -eq "Running") {    Write-Host "ScheduledTask is '$state'. Waiting for .exe to complete..."    $endDate = Get-Date    $elapsedTime = New-Timespan -Start $startDate -End $endDate    if ($elapsedTime.TotalSeconds -gt 120) {        Throw "Timed-out waiting for scheduled task state."    }    Start-Sleep -Seconds 10    $state = (Get-ScheduledTask -TaskName "$taskName").State}# Remove taskWrite-Host "Removing ScheduledTask: $taskName."Unregister-ScheduledTask -TaskName "$taskName" -Confirm:$false} catch {    Write-Host "Error: $_"    $exitCode = 1} finally {    # Remove installer    Remove-Item -Path $exeFilePath -Force}Exit $exitCode

Script de desinstalación

# Fleet extracts the name from the installer (EXE) and saves it to PACKAGE_ID# variable$softwareName = "Notion"# Script to uninstall software as the current logged-in user.$userScript = @'$softwareName = "Notion"# Using the exact software name here is recommended to avoid# uninstalling unintended software.$softwareNameLike = "*$softwareName*"# Some uninstallers require additional flags to run silently.# Each uninstaller might use a different argument (usually it's "/S" or "/s")$uninstallArgs = "/S"$uninstallCommand = ""$exitCode = 0try {$userKey = ` 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Uninstall\*'[array]$uninstallKeys = Get-ChildItem `    -Path @($userKey) `    -ErrorAction SilentlyContinue |        ForEach-Object { Get-ItemProperty $_.PSPath }$foundUninstaller = $falseforeach ($key in $uninstallKeys) {    # If needed, add -notlike to the comparison to exclude certain similar    # software    if ($key.DisplayName -like $softwareNameLike) {        $foundUninstaller = $true        # Get the uninstall command. Some uninstallers do not include        # 'QuietUninstallString' and require a flag to run silently.        $uninstallCommand = if ($key.QuietUninstallString) {            $key.QuietUninstallString        } else {            $key.UninstallString        }        # The uninstall command may contain command and args, like:        # "C:\Program Files\Software\uninstall.exe" --uninstall --silent        # Split the command and args        $splitArgs = $uninstallCommand.Split('"')        if ($splitArgs.Length -gt 1) {            if ($splitArgs.Length -eq 3) {                $uninstallArgs = "$( $splitArgs[2] ) $uninstallArgs".Trim()            } elseif ($splitArgs.Length -gt 3) {                Throw `                    "Uninstall command contains multiple quoted strings. " +                        "Please update the uninstall script.`n" +                        "Uninstall command: $uninstallCommand"            }            $uninstallCommand = $splitArgs[1]        }        Write-Host "Uninstall command: $uninstallCommand"        Write-Host "Uninstall args: $uninstallArgs"        $processOptions = @{            FilePath = $uninstallCommand            PassThru = $true            Wait = $true        }        if ($uninstallArgs -ne '') {            $processOptions.ArgumentList = "$uninstallArgs"        }        # Start the process and track the exit code        $process = Start-Process @processOptions        $exitCode = $process.ExitCode        # Prints the exit code        Write-Host "Uninstall exit code: $exitCode"        # Exit the loop once the software is found and uninstalled.        break    }}if (-not $foundUninstaller) {    Write-Host "Uninstaller for '$softwareName' not found."    $exitCode = 1}} catch {    Write-Host "Error: $_"    $exitCode = 1}Exit $exitCode'@$exitCode = 0# Create a script in a public folder so that it can be accessed by all users.$uninstallScriptPath = "${env:PUBLIC}/uninstall-$softwareName.ps1"$taskName = "fleet-uninstall-$softwareName"try {    Set-Content -Path $uninstallScriptPath -Value $userScript -Force    # Task properties. The task will be started by the logged in user    $action = New-ScheduledTaskAction -Execute "PowerShell.exe" `        -Argument "$uninstallScriptPath"    $trigger = New-ScheduledTaskTrigger -AtLogOn    $userName = Get-CimInstance -ClassName Win32_ComputerSystem |            Select-Object -expand UserName    $settings = New-ScheduledTaskSettingsSet -AllowStartIfOnBatteries    # Create a task object with the properties defined above    $task = New-ScheduledTask -Action $action -Trigger $trigger `        -Settings $settings    # Register the task    Register-ScheduledTask "$taskName" -InputObject $task -User "$userName"    # keep track of the start time to cancel if taking too long to start    $startDate = Get-Date    # Start the task now that it is ready    Start-ScheduledTask -TaskName "$taskName" -TaskPath "\"    # Wait for the task to be running    $state = (Get-ScheduledTask -TaskName "$taskName").State    Write-Host "ScheduledTask is '$state'"    while ($state  -ne "Running") {        Write-Host "ScheduledTask is '$state'. Waiting to uninstall..."        $endDate = Get-Date        $elapsedTime = New-Timespan -Start $startDate -End $endDate        if ($elapsedTime.TotalSeconds -gt 120) {            Throw "Timed-out waiting for scheduled task state."        }        Start-Sleep -Seconds 1        $state = (Get-ScheduledTask -TaskName "$taskName").State    }    # Wait for the task to be done    $state = (Get-ScheduledTask -TaskName "$taskName").State    while ($state  -eq "Running") {        Write-Host "ScheduledTask is '$state'. Waiting for .exe to complete..."        $endDate = Get-Date        $elapsedTime = New-Timespan -Start $startDate -End $endDate        if ($elapsedTime.TotalSeconds -gt 120) {            Throw "Timed-out waiting for scheduled task state."        }        Start-Sleep -Seconds 10        $state = (Get-ScheduledTask -TaskName "$taskName").State    }} catch {    Write-Host "Error: $_"    $exitCode = 1} finally {    # Remove task    Write-Host "Removing ScheduledTask: $taskName."    Unregister-ScheduledTask -TaskName "$taskName" -Confirm:$false    # Remove user script    Remove-Item -Path $uninstallScriptPath -Force}Exit $exitCode
 
 

Google drive

Política

SELECT name FROM programs WHERE name='Google Drive'

Script de instalación

# Learn more about .exe install scripts:# http://fleetdm.com/learn-more-about/exe-install-scripts$exeFilePath = "${env:INSTALLER_PATH}"try {# Add argument to install silently# Argument to make install silent depends on installer,# each installer might use different argument (usually it's "/S" or "/s")$processOptions = @{  FilePath = "$exeFilePath"  ArgumentList = "--silent --skip_launch_new --gsuite_shortcuts=false"  PassThru = $true  Wait = $true}    # Start process and track exit code$process = Start-Process @processOptions$exitCode = $process.ExitCode# Prints the exit codeWrite-Host "Install exit code: $exitCode"Exit $exitCode} catch {  Write-Host "Error: $_"  Exit 1}

Script de desinstalación

# Fleet extracts name from installer (EXE) and saves it to PACKAGE_ID# variable$softwareName = "Google Drive"# It is recommended to use exact software name here if possible to avoid# uninstalling unintended software.$softwareNameLike = "*$softwareName*"# Some uninstallers require a flag to run silently.# Each uninstaller might use different argument (usually it's "/S" or "/s")$uninstallArgs = "/S"$machineKey = ` 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*'$machineKey32on64 = ` 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*'$exitCode = 0try {[array]$uninstallKeys = Get-ChildItem `    -Path @($machineKey, $machineKey32on64) `    -ErrorAction SilentlyContinue |        ForEach-Object { Get-ItemProperty $_.PSPath }$foundUninstaller = $falseforeach ($key in $uninstallKeys) {    # If needed, add -notlike to the comparison to exclude certain similar    # software    if ($key.DisplayName -like $softwareNameLike) {        $foundUninstaller = $true        # Get the uninstall command. Some uninstallers do not include        # 'QuietUninstallString' and require a flag to run silently.        $uninstallCommand = if ($key.QuietUninstallString) {            $key.QuietUninstallString        } else {            $key.UninstallString        }        # The uninstall command may contain command and args, like:        # "C:\Program Files\Software\uninstall.exe" --uninstall --silent        # Split the command and args        $splitArgs = $uninstallCommand.Split('"')        if ($splitArgs.Length -gt 1) {            if ($splitArgs.Length -eq 3) {                $uninstallArgs = "$( $splitArgs[2] ) $uninstallArgs".Trim()            } elseif ($splitArgs.Length -gt 3) {                Throw `                    "Uninstall command contains multiple quoted strings. " +                        "Please update the uninstall script.`n" +                        "Uninstall command: $uninstallCommand"            }            $uninstallCommand = $splitArgs[1]        }        Write-Host "Uninstall command: $uninstallCommand"        Write-Host "Uninstall args: $uninstallArgs"        $processOptions = @{            FilePath = $uninstallCommand            PassThru = $true            Wait = $true        }        if ($uninstallArgs -ne '') {            $processOptions.ArgumentList = "$uninstallArgs"        }        # Start process and track exit code        $process = Start-Process @processOptions        $exitCode = $process.ExitCode        # Prints the exit code        Write-Host "Uninstall exit code: $exitCode"        # Exit the loop once the software is found and uninstalled.        break    }}if (-not $foundUninstaller) {    Write-Host "Uninstaller for '$softwareName' not found."    # Change exit code to 0 if you don't want to fail if uninstaller is not    # found. This could happen if program was already uninstalled.    $exitCode = 1}} catch {    Write-Host "Error: $_"    $exitCode = 1}Exit $exitCode
 
 

Microsoft Teams

Script de instalación

$logFile = "${env:TEMP}/fleet-install-software.log"try {$installProcess = Start-Process msiexec.exe `  -ArgumentList "/quiet /norestart ALLUSERS=1 /lv ${logFile} /i `"${env:INSTALLER_PATH}`"" `  -PassThru -Verb RunAs -WaitGet-Content $logFile -Tail 500Exit $installProcess.ExitCode} catch {  Write-Host "Error: $_"  Exit 1}

Script de desinstalación

$product_code = "{731F6BAA-A986-45A4-8936-7C3AAAAA760B}"# Fleet uninstalls app using product code that's extracted on uploadmsiexec /quiet /x $product_codeExit $LASTEXITCODE
 
 

Microsoft Office 365

Política

SELECT name FROM programs WHERE name LIKE 'Microsoft 365 Apps for business%'

Script de instalación

# Learn more about .exe install scripts:# http://fleetdm.com/learn-more-about/exe-install-scripts$exeFilePath = "${env:INSTALLER_PATH}"try {# Add argument to install silently# Argument to make install silent depends on installer,# each installer might use different argument (usually it's "/S" or "/s")$processOptions = @{  FilePath = "$exeFilePath"  ArgumentList = "/S"  PassThru = $true  Wait = $true}    # Start process and track exit code$process = Start-Process @processOptions$exitCode = $process.ExitCode# Prints the exit codeWrite-Host "Install exit code: $exitCode"Exit $exitCode} catch {  Write-Host "Error: $_"  Exit 1}

Script de desinstalación

# Fleet extracts name from installer (EXE) and saves it to PACKAGE_ID# variable$softwareName = "Microsoft Office"# It is recommended to use exact software name here if possible to avoid# uninstalling unintended software.$softwareNameLike = "*$softwareName*"# Some uninstallers require a flag to run silently.# Each uninstaller might use different argument (usually it's "/S" or "/s")$uninstallArgs = "/S"$machineKey = ` 'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\*'$machineKey32on64 = ` 'HKLM:\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\*'$exitCode = 0try {[array]$uninstallKeys = Get-ChildItem `    -Path @($machineKey, $machineKey32on64) `    -ErrorAction SilentlyContinue |        ForEach-Object { Get-ItemProperty $_.PSPath }$foundUninstaller = $falseforeach ($key in $uninstallKeys) {    # If needed, add -notlike to the comparison to exclude certain similar    # software    if ($key.DisplayName -like $softwareNameLike) {        $foundUninstaller = $true        # Get the uninstall command. Some uninstallers do not include        # 'QuietUninstallString' and require a flag to run silently.        $uninstallCommand = if ($key.QuietUninstallString) {            $key.QuietUninstallString        } else {            $key.UninstallString        }        # The uninstall command may contain command and args, like:        # "C:\Program Files\Software\uninstall.exe" --uninstall --silent        # Split the command and args        $splitArgs = $uninstallCommand.Split('"')        if ($splitArgs.Length -gt 1) {            if ($splitArgs.Length -eq 3) {                $uninstallArgs = "$( $splitArgs[2] ) $uninstallArgs".Trim()            } elseif ($splitArgs.Length -gt 3) {                Throw `                    "Uninstall command contains multiple quoted strings. " +                        "Please update the uninstall script.`n" +                        "Uninstall command: $uninstallCommand"            }            $uninstallCommand = $splitArgs[1]        }        Write-Host "Uninstall command: $uninstallCommand"        Write-Host "Uninstall args: $uninstallArgs"        $processOptions = @{            FilePath = $uninstallCommand            PassThru = $true            Wait = $true        }        if ($uninstallArgs -ne '') {            $processOptions.ArgumentList = "$uninstallArgs"        }        # Start process and track exit code        $process = Start-Process @processOptions        $exitCode = $process.ExitCode        # Prints the exit code        Write-Host "Uninstall exit code: $exitCode"        # Exit the loop once the software is found and uninstalled.        break    }}if (-not $foundUninstaller) {    Write-Host "Uninstaller for '$softwareName' not found."    # Change exit code to 0 if you don't want to fail if uninstaller is not    # found. This could happen if program was already uninstalled.    $exitCode = 1}} catch {    Write-Host "Error: $_"    $exitCode = 1}Exit $exitCode
 
 

 

 

 

 

 

 

 

 

 

 

 

 

 

¿Te fue útil este artículo?

Give feedback about this article

¿No encuentras lo que estás buscando?

Nuestro equipo de servicio al cliente está aquí para ti.

Contáctanos

Knowledge Base Software powered by Helpjuice