StuiterSlurf
StuiterSlurf

Reputation: 2582

DscTemplate isn't executing my SetScript

$Launcher_PackageFile = "Launcher.exe"
$Launcher_PackageDestinationDirectory = "$Env:ProgramData\Launcher";
#$Launcher_StartupDirectory = (New-Object -ComObject Shell.Application).NameSpace(0x07)
$Launcher_Source = "$Env:PackageRoot\Launcher\$Launcher_PackageFile" 

Script UpdateConfigurationVersion
{
    GetScript = { 
        # For cmdlet. Must always return a hash table.
        return @{
            "Name"="LauncherPackage"
            "Version"="Latest"
        };
    }          
    TestScript = {
        # Check if the file is in the folder
        $TestPath = Join-Path $Launcher_PackageDestinationDirectory $Launcher_PackageFile

        if (Test-Path $TestPath) {
            return $true;
        }

        return $false;
    }
    SetScript = { 
        # Logic
        #move the exe
        if (!Test-Path $Launcher_PackageDestinationDirectory) {
            New-Item -Type Directory -Path $Launcher_PackageDestinationDirectory
        }

        Copy-Item -Path $Launcher_Source -Destination $Launcher_PackageDestinationDirectory 

        #TODO Create a shortcut to the startup directory 
        #or create a task in the scheduler
    }
}

Upvotes: 1

Views: 345

Answers (2)

Vincent K
Vincent K

Reputation: 1346

Incorrect syntax (!Test-Path

if (!(Test-Path $Launcher_PackageDestinationDirectory)) {....

or

if (-not(Test-Path $Launcher_PackageDestinationDirectory) {....

Also add -ErrorAction SilentlyContinue to your Test-Path command to suppress error.

Upvotes: 2

Pedro
Pedro

Reputation: 1965

With that info is difficult to tell.

Add messages to TestScript and SetScript to see what's going on. For example:

Write-Verbose -Message 'Testing if already exists'

TestScript gets executed before SetScript, check whether is returning true or false (by adding messages). TestScript may be returning true and thus the SetScript is not running. Output $TestPath to see if the path is correct.

Then check the logs on C:\Windows\System32\Configuration\ConfigurationStatus

Upvotes: 1

Related Questions