AutomoxAutomox

Worklet - Deployment language tool on windows x64

doomer
March 11, 2024 at 11:00 am UTC
#Worklets#install

 

Hello,

I'm trying to create a worklet to deploy LanguageTool on my Windows x64 fleet. However, in the feedback, it says that the installation went well but ultimately fails. Can you help me fix the code?

Evaluation Code
 

#########################################
# --! Evaluate Compliance !--
if (Get-Win32App | Where-Object { $_.Name -eq $appName }) {
    Write-Output "$appName is already installed. Now exiting."
    exit 0
}

# Si LanguageTool n'est pas détecté, le worklet déclenchera l'installation
else {
    Write-Output "$appName was not detected."
    installLanguageTool -AppName $appName -AppInstallerType $appInstallerType -AppURL $appURL -IsSilent
}


Remediation Code
 

# Set temporary folder path
$tempFolderPath = Join-Path -Path $env:TEMP -ChildPath "automox"
Write-Output "Creating temporary folder at $tempFolderPath"
New-Item -ItemType Directory -Force -Path $tempFolderPath | Out-Null

# Download Language Tool setup executable
$url = "https://languagetool.org/download/windows-app/LanguageTool-latest.exe"
$destinationPath = Join-Path -Path $tempFolderPath -ChildPath "$($url.Split('/')[-1])"
Write-Output "Downloading LanguageTool setup executable from $url to $destinationPath"
Invoke-WebRequest -Uri $url -OutFile $destinationPath

# Install Language Tool using the silent installation switch (/S)
Write-Output "Installing LanguageTool silently"
Start-Process -FilePath $destinationPath -ArgumentList "/S", "-dir", "%APPDATA%\LanguageTool\" -Wait

# Remove the temporary files
Write-Output "Removing temporary files from $tempFolderPath"
Remove-Item -Recurse -Force -Path $tempFolderPath

 

 

Thanks in advance,

 

Doomer

This discussion is archived and closed to replies. Continue it in the Automox Community Slack.

Discuss on Slack

Replies (8)

maalvarezMarch 18, 2024
#1

HI! I just ran into the same issue. However, I was able to install it on workstations by changing the start-process to start-processasactiveuser command from the wdk

I used your code, I just changed that one command 

I also changed the temp folder path to C:\windows\temp\automox

 

powershell17 lines
$tempFolderPath = Join-Path -Path "C:\Windows\Temp" -ChildPath "automox"
Write-Output "Creating temporary folder at $tempFolderPath"
New-Item -ItemType Directory -Force -Path $tempFolderPath | Out-Null

# Download Language Tool setup executable
$url = "https://languagetool.org/download/windows-app/LanguageTool-latest.exe"
$destinationPath = Join-Path -Path $tempFolderPath -ChildPath "$($url.Split('/')[-1])"
Write-Output "Downloading LanguageTool setup executable from $url to $destinationPath"
Invoke-WebRequest -Uri $url -OutFile $destinationPath

# Install Language Tool using the silent installation switch (/S)
Write-Output "Installing LanguageTool silently"
Start-ProcessAsActiveUser -Path $destinationPath -ArgumentList "/S", "-dir", "%APPDATA%\LanguageTool\"

# Remove the temporary files
Write-Output "Removing temporary files from $tempFolderPath"
Remove-Item -Recurse -Force -Path $tempFolderPath

This was the output 

After running the worklet, I could see the program installed on my PC

 

doomerMarch 18, 2024
#2

Hello Malvarez,

Good news. 
I’m going to test now.
thank for your reply.

I publish the result just after.

 

 

doomerMarch 18, 2024
#3

I think i have a problem with the rights to install.

Error Start-ProcessAsActiveUser command. The error indicates that this command was invoked as a non-SYSTEM user, which can cause issues as certain privileges 

maalvarezMarch 19, 2024
#4

Do you have a screen shot of the error? I just installed it on a test PC with a non admin user and it was successful 

doomerMarch 20, 2024
#5

Hello Maalvarez,

I use your code. 

 

 

After some modification of your remediation code : 

 

#REQUIRES -Version 2.0

<#

.SYNOPSIS

This script checks if LanguageTool is installed.

.DESCRIPTION

This script checks for the presence of LanguageTool on the system.

.NOTES

File Name :LanguageTool_Install_Test.ps1

Author :Automox

Prerequisite :PowerShell V2 over Windows 7 and later

#>

# Handle Exit Codes:

trap {
$host.ui.WriteErrorLine($_.Exception);
exit 90
}

function LanguageTool_Install_Test {

<#

.SYNOPSIS

This function checks if LanguageTool is installed on the system.

.DESCRIPTION

This function queries the installed files for LanguageTool and returns a code indicating

whether it's installed or not.

.EXAMPLE

LanguageTool_Install_Test

.NOTES

#>

$languageToolInstalled = Get-ChildItem -Path "C:\Program Files" -Filter "LanguageTool-*" -Recurse | Select-Object -First 1

if ($languageToolInstalled) {
# LanguageTool found, exit with code 0.
exit 0
}
else {
# LanguageTool not found, exit with code 1.
exit 1
}

}

# Call the LanguageTool installation test function.
LanguageTool_Install_Test

and remediation code
 

powershell66 lines
#REQUIRES -Version 2.0

<#

.SYNOPSIS

    This script checks if LanguageTool is installed.

.DESCRIPTION

    This script checks for the presence of LanguageTool on the system.

.NOTES

    File Name       :LanguageTool_Install_Test.ps1

    Author          :Automox

    Prerequisite    :PowerShell V2 over Windows 7 and later

#>

# Handle Exit Codes:

trap {  
    $host.ui.WriteErrorLine($_.Exception); 
    exit 90 
}

function LanguageTool_Install_Test {

    <#

    .SYNOPSIS

        This function checks if LanguageTool is installed on the system.

    .DESCRIPTION

        This function queries the installed files for LanguageTool and returns a code indicating

        whether it's installed or not.

    .EXAMPLE

        LanguageTool_Install_Test

    .NOTES

    #>

    $languageToolInstalled = Get-ChildItem -Path "C:\Program Files" -Filter "LanguageTool-*" -Recurse | Select-Object -First 1

    if ($languageToolInstalled) {
        # LanguageTool found, exit with code 0.
        exit 0
    }
    else {
        # LanguageTool not found, exit with code 1.
        exit 1
    }

}

# Call the LanguageTool installation test function.
LanguageTool_Install_Test

I have this 

 

 

After refresh of the agent, language tool is not visible on the software installed on the machine.

Best,

Doomer

maalvarezMarch 20, 2024
#6

I was able to recreate your error message

Is the Automox agent running as system on your target PC? 

 

doomerMarch 26, 2024
#7

Hello Maalvarez,
I verify now and i back to you.
Doomer

doomerApril 17, 2024
#8

Hello,
I have the good right, i dont understand why it’s not functional.
Doomer