New-Win32ToolkitManualApp
SYNOPSIS
Creates a Win32 packaging project for an app that is NOT in winget.
SYNTAX
New-Win32ToolkitManualApp [[-Name] <String>] [[-Version] <String>] [[-Architecture] <String>]
[[-SourcePath] <String>] [[-Publisher] <String>] [[-Description] <String>] [[-InformationUrl] <String>]
[[-SilentArgs] <String>] [[-IconPath] <String>] [[-TemplateName] <String>] [[-BasePath] <String>]
[-Reconfigure] [-Advanced] [-Force] [-Continue] [[-RunTest] <String[]>] [-PackageIntune] [-PublishIntune]
[-PublishUpdate] [[-DependsOn] <String[]>] [[-DependencyType] <String>] [-ProgressAction <ActionPreference>]
[<CommonParameters>]
DESCRIPTION
Scaffolds a PSADT v4 project from an operator-supplied installer, applies the org template, and writes the data-driven AppConfig.json - the same downstream automation (sandbox capture → uninstall, testing, packaging, upload) used by the winget flow then applies.
Input is hybrid: pass what you can as parameters; you are prompted for any missing required field (Name, Version, Architecture, SourcePath).
Two modes: - Easy - provide -SilentArgs, or an MSI (Zero-Config), or an MSIX/APPX package (installed via Add-AppxPackage/provisioning, uninstalled by package identity): the install runs data-driven. Add -Continue (or -RunTest/-PackageIntune/-PublishIntune) to finalise. - Hard - pass -Advanced (or an EXE with no -SilentArgs): the Install region of Invoke-AppDeployToolkit.ps1 is left for you to author. The uninstall stays automated. Finish later with Complete-Win32ToolkitManualApp.
EXAMPLES
EXAMPLE 1
# Easy app, end to end
New-Win32ToolkitManualApp -Name 'Acme Tool' -Version '3.1.0' -Architecture x64 `
-SourcePath 'C:\src\AcmeTool.exe' -SilentArgs '/S' -Publisher 'Acme' -TemplateName 'Contoso' `
-Continue -RunTest InstallUninstall -PublishIntune
EXAMPLE 2
# Hard app - scaffold, then finish after editing the Install region
New-Win32ToolkitManualApp -Name 'Legacy CAD' -Version '12.0' -Architecture x64 `
-SourcePath 'C:\src\LegacyCAD\' -Advanced -TemplateName 'Contoso'
Complete-Win32ToolkitManualApp -ProjectPath 'C:\Win32Apps\Projects\Contoso\Legacy_CAD_x64_12.0' -RunTest InstallUninstall
PARAMETERS
-Name
Application display name (required; prompted if omitted).
Type: String
Parameter Sets: (All)
Aliases:
Required: False
Position: 1
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Version
Application version (required; prompted if omitted).
Type: String
Parameter Sets: (All)
Aliases:
Required: False
Position: 2
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Architecture
x64 | x86 | arm64 (required; prompted if omitted).
Type: String
Parameter Sets: (All)
Aliases:
Required: False
Position: 3
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-SourcePath
Installer file, or a folder of files, copied into the project's Files\ folder (required).
Type: String
Parameter Sets: (All)
Aliases:
Required: False
Position: 4
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Publisher
Publisher / vendor (used for the PSADT AppVendor and the Intune app-shell publisher).
Type: String
Parameter Sets: (All)
Aliases:
Required: False
Position: 5
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Description
App description (Intune app shell).
Type: String
Parameter Sets: (All)
Aliases:
Required: False
Position: 6
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-InformationUrl
Information URL (Intune app shell).
Type: String
Parameter Sets: (All)
Aliases:
Required: False
Position: 7
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-SilentArgs
Silent-install switches. Providing them selects the "easy" (data-driven) install.
Type: String
Parameter Sets: (All)
Aliases:
Required: False
Position: 8
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-IconPath
Optional local image copied to Assets\AppIcon.png.
Type: String
Parameter Sets: (All)
Aliases:
Required: False
Position: 9
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-TemplateName
Org template to apply (under \<BasePath>\Templates).
Type: String
Parameter Sets: (All)
Aliases:
Required: False
Position: 10
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-BasePath
Base folder (registry-backed default; prompts on first run).
Type: String
Parameter Sets: (All)
Aliases:
Required: False
Position: 11
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-Reconfigure
Re-prompt for the base folder and save the new value to the registry, ignoring any stored value.
Type: SwitchParameter
Parameter Sets: (All)
Aliases:
Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False
-Advanced
Hard app - leave the Install region for manual authoring.
Type: SwitchParameter
Parameter Sets: (All)
Aliases:
Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False
-Force
Overwrite an existing project folder of the same name without prompting.
Type: SwitchParameter
Parameter Sets: (All)
Aliases:
Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False
-Continue
Easy app - run the finalize phase (sandbox capture → uninstall → optional test/package/publish) inline.
Type: SwitchParameter
Parameter Sets: (All)
Aliases:
Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False
-RunTest
Test scenario(s) to run during the finalize phase: 'InstallUninstall', 'Update', or both. Implies -Continue behavior for easy apps.
Type: String[]
Parameter Sets: (All)
Aliases:
Required: False
Position: 12
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-PackageIntune
Package the project into a .intunewin during the finalize phase.
Type: SwitchParameter
Parameter Sets: (All)
Aliases:
Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False
-PublishIntune
Upload the packaged app to Microsoft Intune during the finalize phase (implies packaging).
Type: SwitchParameter
Parameter Sets: (All)
Aliases:
Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False
-PublishUpdate
Also publish the UPDATE app (a second, requirement-gated Intune app of the same version).
Type: SwitchParameter
Parameter Sets: (All)
Aliases:
Required: False
Position: Named
Default value: False
Accept pipeline input: False
Accept wildcard characters: False
-DependsOn
Dependencies to declare: 'winget:\<Id>', 'project:\<Template>\\<Name>', or 'intune:\<AppGuid>' references. Installed first in the test guest and related to the Intune app at publish time.
Type: String[]
Parameter Sets: (All)
Aliases:
Required: False
Position: 13
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
-DependencyType
How Intune treats the declared dependencies: 'autoInstall' (default) or 'detect'.
Type: String
Parameter Sets: (All)
Aliases:
Required: False
Position: 14
Default value: AutoInstall
Accept pipeline input: False
Accept wildcard characters: False
-ProgressAction
{{ Fill ProgressAction Description }}
Type: ActionPreference
Parameter Sets: (All)
Aliases: proga
Required: False
Position: Named
Default value: None
Accept pipeline input: False
Accept wildcard characters: False
CommonParameters
This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.