aaronparker / packagefactory Goto Github PK
View Code? Open in Web Editor NEWA packaging factory for Microsoft Intune using Evergreen, VcRedist, and IntuneWin32App
Home Page: https://stealthpuppy.com/packagefactory/
License: MIT License
A packaging factory for Microsoft Intune using Evergreen, VcRedist, and IntuneWin32App
Home Page: https://stealthpuppy.com/packagefactory/
License: MIT License
With the build script below, initial_preferences.txt does land in C:\Users\Jason\Downloads\GoogleChrome\Source\
Set-Location -Path "C:\projects\packagefactory"
$params = @{
Path = "C:\projects\packagefactory\packages"
Application = "GoogleChrome"
Type = "App"
WorkingPath = "C:\Users\Jason\Downloads"
Import = $true
}
.\New-Win32Package.ps1 @params
However, I'm seeing the following error on client machines using the stock Chrome example:
<![LOG[Copy-File: Cannot find destination: C:\Program Files\Google\Chrome\Application\initial_preferences]LOG]!>
Your script is just awesome, thank you very much. I like to use it very much, but I don't always have to distribute a package with an EXE or an MSI. I like to use chococlatey, or just want to distribute a regsitry value. Is there a way to distribute a simple install.ps1 and a detection.ps1 in your script?
as an example install.ps1:
$ProgramName = "PDF24"
$ChocoPrg_Version = [System.Version](C:\ProgramData\chocolatey\choco.exe --version)
if ($ChocoPrg_Version -gt [System.Version]"2.0") {
$localprograms = C:\ProgramData\chocolatey\choco.exe list
} else {
$localprograms = C:\ProgramData\chocolatey\choco.exe list -lo
}
if ($localprograms -like "$ProgramName") {
C:\ProgramData\chocolatey\choco.exe upgrade $ProgramName -y
} else {
C:\ProgramData\chocolatey\choco.exe install $ProgramName -y
}
and the uninstall.ps1:
$ProgramName = "PDF24"
$ChocoPrg_Version = [System.Version](C:\ProgramData\chocolatey\choco.exe --version)
if ($ChocoPrg_Version -gt [System.Version]"2.0") {
$ChocoPrg_Existing = C:\ProgramData\chocolatey\choco.exe list
} else {
$ChocoPrg_Existing = C:\ProgramData\chocolatey\choco.exe list -lo
}
if ($ChocoPrg_Existing -like "$ProgramName") {
Write-Host "Found it!"
exit 0
} else {
exit 1
}
Is it possible to include putty? Evergreen supports it already.
Evergreen supports Notepad++, is it possible to create a config for it?
Hi there,
i've a short question about the install.json. I want to add or edit some registry keys postinstall. I've found that Remove and Copy of files is possible, but how could I run an additional .ps1 script for example or add those registry keys after the setup?
"Version": "11.9.0"
},
"LogPath": "C:\\ProgramData\\Microsoft\\IntuneManagementExtension\\Logs",
"InstallTasks": {
"ArgumentList": "/package \"#SetupFile\" AUTOUPDATE=No DESKTOPICONS=No FAXPRINTER=No REGISTERREADER=No /qn /log \"#LogPath\\#LogName.log\""
},
"PostInstall": {
"Remove": [],
"Copy": []
}
}
Kind regards,
Constantin
Currently Create-Win32App.ps1 fails because of a parameter name change in IntuneWin32App in (https://github.com/MSEndpointMgr/IntuneWin32App/blob/master/Public/New-IntuneWin32AppRequirementRule.ps1)
To fix the issue - go to line 96 in Create-Win32App.ps1 and change it from:
MinimumSupportedOperatingSystem = $AppData.RequirementRule.MinimumRequiredOperatingSystem
to
MinimumSupportedWindowsRelease = $AppData.RequirementRule.MinimumRequiredOperatingSystem
Just for reference, currently with the latest IntuneWin32App PowerShell module, which is installed when you start a greenfield setup with packagefactory the creation of packages breaks with the erro:
Error: Unable to detect expected 'packagename.intunewin' file after IntuneWinAppUtil.exe invocation
Took me a while to figure this out but it is a known issue in IntuneWin32App MSEndpointMgr/IntuneWin32App#121
The fix is to locate Invoke-Executeable.ps1 (by default in C:\Program Files\WindowsPowerShell\Modules\IntuneWin32App\1.4.2\Private) and update it as follows:
$ProcessStartInfoObject.CreateNoWindow = $true
$ProcessStartInfoObject.UseShellExecute = $false
$ProcessStartInfoObject.RedirectStandardOutput = $true
$ProcessStartInfoObject.RedirectStandardError = $true
$ProcessStartInfoObject.CreateNoWindow = $false
$ProcessStartInfoObject.UseShellExecute = $true
$ProcessStartInfoObject.RedirectStandardOutput = $false
$ProcessStartInfoObject.RedirectStandardError = $false
Hope this helps others as it took me quite some time to figure this out.
Win32_Product will cause issues with Windows Installer and needs to
be replaced with querying uninstall / GUID info via the registry
Line 159 in 27ef6e5
Hey guys,
we tried the intune package factory in our test tenant and in fact it's really an awesome tool ! It's definitely helpful for apps where versions changes a lot and which are not available in intune's ms store integration (new).
But there are following 2 things which currently blocks us from using it in production:
Don't get me wrong - we do honor what's there right now, but our internal guidelines block us from using it as it is now.
Are there any changes planned to address above topics?
Thanks
Florian
As far as I can tell, AdobeAcrobatReaderDC is the only PSADT example in this repo. I'm getting an 0x80070002 error when I try to deploy it. If I build the AdobeAcrobatReaderDCMUI package using the standard tooling, it deploys without issue.
Also, just a suggestion, but at 420MB, perhaps it would be better to use something smaller as an example, say Brave.
https://github.com/brave/brave-browser/releases/latest
Thanks!
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.