Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
cacba86
Add custom variables to backups
Zacgoose Oct 4, 2025
bb466e3
Fix: Logic error with dev settings
Zacgoose Oct 4, 2025
96ce9de
Chore: SPEEEEEED for list user counts
Zacgoose Oct 4, 2025
e97dacb
cleanup...
Zacgoose Oct 4, 2025
d7bc25e
I like pain
Zacgoose Oct 4, 2025
6f085b4
Fix: Migrate tenant group key from domain to GUID
Zacgoose Oct 4, 2025
5a0712d
Implemented Assignment Filters
PeterVive Oct 4, 2025
53cf47f
Implemented #4759 - retains full backwards compatibility.
PeterVive Oct 4, 2025
c0c41fc
Implement Office custom XML support during deployment - FR #469
PeterVive Oct 4, 2025
b6f6666
Fix: fallback for usage location in Set-CIPPUserLicense if usageLocat…
kris6673 Oct 4, 2025
8053100
Fix: add headers and APIName for better logging to Set-CIPPUserLicens…
kris6673 Oct 4, 2025
a1a70f4
Implement custom chocolatey arguments. #4683
PeterVive Oct 4, 2025
ade017a
Merge pull request #1648 from Zacgoose/custom-variable-backup
JohnDuprey Oct 5, 2025
942ca50
Merge pull request #1651 from Zacgoose/listusercount
JohnDuprey Oct 5, 2025
8795fbd
Merge pull request #1649 from Zacgoose/dev-env-fix
JohnDuprey Oct 5, 2025
7ef678e
Merge branch 'dev' into cleanup
JohnDuprey Oct 5, 2025
c98ded3
Merge pull request #1652 from Zacgoose/cleanup
JohnDuprey Oct 5, 2025
f5be783
Merge pull request #1653 from Zacgoose/migrate-tenant-groups
JohnDuprey Oct 5, 2025
3687e20
Merge pull request #1658 from PeterVive/custom-chocolatey-arguments
JohnDuprey Oct 5, 2025
ac88f16
Merge pull request #1654 from PeterVive/assignment-filters-feature
JohnDuprey Oct 5, 2025
de6f1a0
Merge pull request #1655 from PeterVive/custom-standardpolicy-names
JohnDuprey Oct 5, 2025
3d215ed
Merge branch 'dev' into office-custom-xml-support
JohnDuprey Oct 5, 2025
4638918
Merge pull request #1656 from PeterVive/office-custom-xml-support
JohnDuprey Oct 5, 2025
a72cd80
Merge pull request #1657 from kris6673/fix-usagelocation-null
JohnDuprey Oct 5, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
16 changes: 8 additions & 8 deletions AddChocoApp/Choco.App.xml
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
<ApplicationInfo xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" ToolVersion="1.8.3.0">
<Name>Install.ps1</Name>
<UnencryptedContentSize>28319</UnencryptedContentSize>
<Name>install.ps1</Name>
<UnencryptedContentSize>1154</UnencryptedContentSize>
<FileName>IntunePackage.intunewin</FileName>
<SetupFile>Install.ps1</SetupFile>
<SetupFile>install.ps1</SetupFile>
<EncryptionInfo>
<EncryptionKey>bmoyHXFtIws7JrnXNDV4rjzap+Be+4ZJEDJkTfbVIL8=</EncryptionKey>
<MacKey>xNh8ZUZ6TLsAtihUEAU/NHiRfutDzz+eSgEdpaXUo9Q=</MacKey>
<InitializationVector>3aQFPhO8ywEC4Ojby1lR0w==</InitializationVector>
<Mac>PXX+hj3DXEpzMEMYBDXmAIlSyDIGuAwmAHIQpZIt8hU=</Mac>
<EncryptionKey>v8i9okyqxp8xlw3/r2QXMNnXcuGwrBkD54QQ7F/UJbc=</EncryptionKey>
<MacKey>XjT9kWc7gQRKRdEQ/PA/lbQDDH8kFjnuPFILxAldRTI=</MacKey>
<InitializationVector>iyAbM3kIYqA4AlWP89S5oA==</InitializationVector>
<Mac>w+2KMctRWmJzYjKcMTAKCLz15K559SgZ3pnQuQD3P/I=</Mac>
<ProfileIdentifier>ProfileVersion1</ProfileIdentifier>
<FileDigest>fx41h3rGZYZO3Jux7JnPgatlmpMc2ZFIZS8ipF5VDDw=</FileDigest>
<FileDigest>tyjBbJZ+Zj9AqD7UjEfQfe/HojN/q1+zFPidXWbiVuE=</FileDigest>
<FileDigestAlgorithm>SHA256</FileDigestAlgorithm>
</EncryptionInfo>
</ApplicationInfo>
Binary file modified AddChocoApp/IntunePackage.intunewin
Binary file not shown.
18 changes: 16 additions & 2 deletions AddChocoApp/IntunePackage/Install.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ param (
[string]
$CustomRepo,

[Parameter()]
[string]
$CustomArguments,

[Parameter()]
[switch]
$Trace
Expand All @@ -36,13 +40,23 @@ try {
try {
$localprograms = & "$chocoPath" list --localonly
$CustomRepoString = if ($CustomRepo) { "--source $customrepo" } else { $null }
$CustomArgsArray = if ($CustomArguments) { $CustomArguments -split '\s+' } else { @() }

if ($localprograms -like "*$Packagename*" ) {
Write-Host "Upgrading $packagename"
& "$chocoPath" upgrade $Packagename $CustomRepoString
if ($CustomArgsArray.Count -gt 0) {
& "$chocoPath" upgrade $Packagename $CustomRepoString $CustomArgsArray
} else {
& "$chocoPath" upgrade $Packagename $CustomRepoString
}
}
else {
Write-Host "Installing $packagename"
& "$chocoPath" install $Packagename -y $CustomRepoString
if ($CustomArgsArray.Count -gt 0) {
& "$chocoPath" install $Packagename -y $CustomRepoString $CustomArgsArray
} else {
& "$chocoPath" install $Packagename -y $CustomRepoString
}
}
Write-Host 'Completed.'
}
Expand Down
89 changes: 89 additions & 0 deletions Config/standards.json
Original file line number Diff line number Diff line change
Expand Up @@ -2291,6 +2291,13 @@
],
"helpText": "This creates a Safe Links policy that automatically scans, tracks, and and enables safe links for Email, Office, and Teams for both external and internal senders",
"addedComponent": [
{
"type": "textField",
"name": "standards.SafeLinksPolicy.name",
"label": "Policy Name",
"required": true,
"defaultValue": "CIPP Default SafeLinks Policy"
},
{
"type": "switch",
"label": "AllowClickThrough",
Expand Down Expand Up @@ -2338,6 +2345,13 @@
],
"helpText": "This creates a Anti-Phishing policy that automatically enables Mailbox Intelligence and spoofing, optional switches for Mail tips.",
"addedComponent": [
{
"type": "textField",
"name": "standards.AntiPhishPolicy.name",
"label": "Policy Name",
"required": true,
"defaultValue": "CIPP Default Anti-Phishing Policy"
},
{
"type": "number",
"label": "Phishing email threshold. (Default 1)",
Expand Down Expand Up @@ -2548,6 +2562,13 @@
],
"helpText": "This creates a Safe Attachment policy",
"addedComponent": [
{
"type": "textField",
"name": "standards.SafeAttachmentPolicy.name",
"label": "Policy Name",
"required": true,
"defaultValue": "CIPP Default Safe Attachment Policy"
},
{
"type": "select",
"multiple": false,
Expand Down Expand Up @@ -2692,6 +2713,13 @@
],
"helpText": "This creates a Malware filter policy that enables the default File filter and Zero-hour auto purge for malware.",
"addedComponent": [
{
"type": "textField",
"name": "standards.MalwareFilterPolicy.name",
"label": "Policy Name",
"required": true,
"defaultValue": "CIPP Default Malware Policy"
},
{
"type": "select",
"multiple": false,
Expand Down Expand Up @@ -2811,7 +2839,15 @@
"cat": "Defender Standards",
"tag": [],
"helpText": "This standard creates a Spam filter policy similar to the default strict policy.",
"docsDescription": "This standard creates a Spam filter policy similar to the default strict policy, the following settings are configured to on by default: IncreaseScoreWithNumericIps, IncreaseScoreWithRedirectToOtherPort, MarkAsSpamEmptyMessages, MarkAsSpamJavaScriptInHtml, MarkAsSpamSpfRecordHardFail, MarkAsSpamFromAddressAuthFail, MarkAsSpamNdrBackscatter, MarkAsSpamBulkMail, InlineSafetyTipsEnabled, PhishZapEnabled, SpamZapEnabled",
"addedComponent": [
{
"type": "textField",
"name": "standards.SpamFilterPolicy.name",
"label": "Policy Name",
"required": true,
"defaultValue": "CIPP Default Spam Filter Policy"
},
{
"type": "number",
"label": "Bulk email threshold (Default 7)",
Expand Down Expand Up @@ -4772,6 +4808,30 @@
"type": "textField",
"required": false,
"helpText": "Enter the group name to exclude from the assignment. Wildcards are allowed."
},
{
"type": "textField",
"required": false,
"name": "assignmentFilter",
"label": "Assignment Filter Name (Optional)",
"helpText": "Enter the assignment filter name to apply to this policy assignment. Wildcards are allowed."
},
{
"name": "assignmentFilterType",
"label": "Assignment Filter Mode (Optional)",
"type": "radio",
"required": false,
"helpText": "Choose whether to include or exclude devices matching the filter. Only applies if you specified a filter name above. Defaults to Include if not specified.",
"options": [
{
"label": "Include - Assign to devices matching the filter",
"value": "include"
},
{
"label": "Exclude - Assign to devices NOT matching the filter",
"value": "exclude"
}
]
}
]
},
Expand Down Expand Up @@ -4915,6 +4975,35 @@
}
]
},
{
"name": "standards.AssignmentFilterTemplate",
"label": "Assignment Filter Template",
"multi": true,
"cat": "Templates",
"disabledFeatures": {
"report": true,
"warn": true,
"remediate": false
},
"impact": "Medium Impact",
"addedDate": "2025-10-04",
"helpText": "Deploy and manage assignment filter templates.",
"executiveText": "Creates standardized assignment filters with predefined settings. These templates ensure consistent assignment filter configurations across the organization, streamlining assignment management.",
"addedComponent": [
{
"type": "autoComplete",
"name": "assignmentFilterTemplate",
"label": "Select Assignment Filter Template",
"api": {
"url": "/api/ListAssignmentFilterTemplates",
"labelField": "Displayname",
"altLabelField": "displayName",
"valueField": "GUID",
"queryKey": "ListAssignmentFilterTemplates"
}
}
]
},
{
"name": "standards.MailboxRecipientLimits",
"cat": "Exchange Standards",
Expand Down
5 changes: 0 additions & 5 deletions Modules/CIPPCore/Public/CippQueue/Invoke-RemoveCippQueue.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,6 @@ function Invoke-RemoveCippQueue {
CIPP.Core.ReadWrite
#>
param($Request, $TriggerMetadata)

$APIName = $Request.Params.CIPPEndpoint
$Headers = $Request.Headers


$CippQueue = Get-CippTable -TableName 'CippQueue'
Clear-AzDataTable @CippQueue
$CippQueueTasks = Get-CippTable -TableName 'CippQueueTasks'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,6 @@ function Invoke-ExecAddAlert {
#>
[CmdletBinding()]
param($Request, $TriggerMetadata)

$APIName = $Request.Params.CIPPEndpoint
$Headers = $Request.Headers


Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,11 +12,6 @@ function Invoke-ExecAzBobbyTables {
#>
[CmdletBinding()]
param($Request, $TriggerMetadata)

$APIName = $Request.Params.CIPPEndpoint
$Headers = $Request.Headers


$AllowList = @(
'Add-AzDataTableEntity'
'Add-CIPPAzDataTableEntity'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,6 @@ function Invoke-ExecCPVRefresh {
#>
[CmdletBinding()]
param($Request, $TriggerMetadata)

$APIName = $Request.Params.CIPPEndpoint
$Headers = $Request.Headers


$InstanceId = Start-UpdatePermissionsOrchestrator

return @{
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,11 +11,6 @@ function Invoke-ExecCippFunction {
#>
[CmdletBinding()]
param($Request, $TriggerMetadata)

$APIName = $Request.Params.CIPPEndpoint
$Headers = $Request.Headers


$BlockList = @(
'Get-GraphToken'
'Get-GraphTokenFromCert'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,6 @@ function Invoke-ExecDurableFunctions {
#>
[CmdletBinding(SupportsShouldProcess = $true)]
param($Request, $TriggerMetadata)

$APIName = $Request.Params.CIPPEndpoint
$Headers = $Request.Headers


# Collect info
$StorageContext = New-AzStorageContext -ConnectionString $env:AzureWebJobsStorage
$FunctionName = $env:WEBSITE_SITE_NAME
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,6 @@ function Invoke-ExecEditTemplate {
param($Request, $TriggerMetadata)

$APIName = $Request.Params.CIPPEndpoint
$Headers = $Request.Headers


try {
$Table = Get-CippTable -tablename 'templates'
$guid = $request.body.id ? $request.body.id : $request.body.GUID
Expand Down Expand Up @@ -44,7 +41,6 @@ function Invoke-ExecEditTemplate {
}


# Associate values to output bindings by calling 'Push-OutputBinding'.
return ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $body
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,6 @@ Function Invoke-ExecGeoIPLookup {
#>
[CmdletBinding()]
param($Request, $TriggerMetadata)

$APIName = $Request.Params.CIPPEndpoint
$Headers = $Request.Headers


$IP = $Request.Query.IP ?? $Request.Body.IP

if (-not $IP) {
Expand All @@ -23,7 +18,6 @@ Function Invoke-ExecGeoIPLookup {
$locationInfo = Get-CIPPGeoIPLocation -IP $IP
}

# Associate values to output bindings by calling 'Push-OutputBinding'.
return ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $LocationInfo
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,6 @@ function Invoke-ExecListBackup {
#>
[CmdletBinding()]
param($Request, $TriggerMetadata)

$APIName = $Request.Params.CIPPEndpoint
$Headers = $Request.Headers


$Type = $Request.Query.Type
$TenantFilter = $Request.Query.tenantFilter
$NameOnly = $Request.Query.NameOnly
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,6 @@ function Invoke-ExecPartnerWebhook {
CIPP.AppSettings.ReadWrite
#>
Param($Request, $TriggerMetadata)

$APIName = $Request.Params.CIPPEndpoint
$Headers = $Request.Headers


switch ($Request.Query.Action) {
'ListEventTypes' {
$Uri = 'https://api.partnercenter.microsoft.com/webhooks/v1/registration/events'
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,6 @@ function Invoke-ExecServicePrincipals {
#>
[CmdletBinding()]
param($Request, $TriggerMetadata)

$APIName = $Request.Params.CIPPEndpoint
$Headers = $Request.Headers


$TenantFilter = $env:TenantID

$Success = $true
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,6 @@ function Invoke-ExecSetCIPPAutoBackup {
#>
[CmdletBinding()]
param($Request, $TriggerMetadata)

$APIName = $Request.Params.CIPPEndpoint
$Headers = $Request.Headers


$unixtime = [int64](([datetime]::UtcNow) - (Get-Date '1/1/1970')).TotalSeconds
if ($Request.Body.Enabled -eq $true) {
$Table = Get-CIPPTable -TableName 'ScheduledTasks'
Expand All @@ -39,7 +34,6 @@ function Invoke-ExecSetCIPPAutoBackup {
$Result = @{ 'Results' = 'Scheduled Task Successfully created' }
}
Write-LogMessage -headers $Request.Headers -API $Request.Params.CIPPEndpoint -message 'Scheduled automatic CIPP backups' -Sev 'Info'
# Associate values to output bindings by calling 'Push-OutputBinding'.
return ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $Result
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -62,7 +62,6 @@ function Invoke-ExecSetPackageTag {
}
}

# Associate values to output bindings by calling 'Push-OutputBinding'.
return ([HttpResponseContext]@{
StatusCode = [HttpStatusCode]::OK
Body = $body
Expand Down
Loading