Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
80 commits
Select commit Hold shift + click to select a range
b9c1754
chore: show PhishingSim current state if false
OfficialEsco Apr 15, 2025
3f1483e
Casing fixes
kris6673 Apr 15, 2025
0cc7127
Add easy copyable password output to New-CIPPUserTask results
kris6673 Apr 15, 2025
9e2cc5b
Add new on hold types to mailbox info query
Zacgoose Apr 16, 2025
2fef3bc
Merge pull request #1391 from Zacgoose/dev
KelvinTegelaar Apr 16, 2025
cfb922f
Create Invoke-ExecSetRetentionHold function
Zacgoose Apr 16, 2025
64c89bd
Addition of InPlaceHold, EDiscoverHold, PurviewRetentionHold and Excl…
Zacgoose Apr 16, 2025
5613ca8
fix: dkim standard not enabling dkim sometimes if supportedServices i…
kris6673 Apr 16, 2025
2633df4
Refactor to use EXO batch request for extra BRRR
kris6673 Apr 16, 2025
b9ba0cc
fix: remove a comma and change formatting to improve readability
kris6673 Apr 16, 2025
1d223eb
Merge pull request #1392 from Zacgoose/dev
KelvinTegelaar Apr 16, 2025
be94a7f
Merge pull request #1393 from kris6673/fix-dkim-standard
KelvinTegelaar Apr 16, 2025
310c30e
Merge pull request #1388 from Ren-Roros-Digital/PhishingSimulations
KelvinTegelaar Apr 16, 2025
fb96b2e
Merge pull request #1390 from kris6673/issue3964
KelvinTegelaar Apr 16, 2025
5175dbe
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP-API into…
kris6673 Apr 16, 2025
4b6ae2e
chore: sync select statements
kris6673 Apr 16, 2025
57a304c
Add or update the Azure App Service build and deployment workflow config
KelvinTegelaar Apr 17, 2025
13591ae
Update Invoke-ListMailboxes.ps1
JohnDuprey Apr 17, 2025
ce3cdaf
Merge branch 'dev' into fix-mailboxes-page
kris6673 Apr 17, 2025
82b6dd2
Update Invoke-ListUserMailboxDetails.ps1
kris6673 Apr 17, 2025
c725f60
Update Get-ExoOnlineStringBytes.ps1
kris6673 Apr 17, 2025
f3d5cd0
Merge pull request #1395 from kris6673/issue3959
rvdwegen Apr 17, 2025
f980c13
Add Exchange Recipient Limits Management
Jr7468 Apr 17, 2025
ebcaa63
feat: add Teams Meeting Recording Expiration standard
kris6673 Apr 17, 2025
19e4409
Merge branch 'KelvinTegelaar:dev' into dev
Jr7468 Apr 17, 2025
8c338eb
feat: Better alert message for NewAppApproval alert
kris6673 Apr 17, 2025
a1b996b
fix: intune app assignment after action was changed to POST
kris6673 Apr 17, 2025
5793d1b
Refactor the password output of the AddUser endpoint so that the pass…
Jr7468 Apr 17, 2025
efd8d04
Add or update the Azure App Service build and deployment workflow config
KelvinTegelaar Apr 19, 2025
5e63ff0
Merge pull request #1399 from kris6673/fix-intune-app-assignment
KelvinTegelaar Apr 20, 2025
9337c14
Merge pull request #1398 from kris6673/issue3985
KelvinTegelaar Apr 20, 2025
0d43328
Merge pull request #1397 from Jr7468/dev
KelvinTegelaar Apr 20, 2025
004e816
Merge pull request #1396 from kris6673/issue3963
KelvinTegelaar Apr 20, 2025
f901470
Merge pull request #1394 from kris6673/fix-mailboxes-page
KelvinTegelaar Apr 20, 2025
c9af0ef
tenantfilter
KelvinTegelaar Apr 22, 2025
d4532cf
push data fix
KelvinTegelaar Apr 22, 2025
73a2f2b
push data fix
KelvinTegelaar Apr 22, 2025
39dde3c
improvements
KelvinTegelaar Apr 22, 2025
7986be7
Refactor alert message to not be bad
kris6673 Apr 22, 2025
52ec4f3
Refactor Get-CIPPAlertDefenderIncidents to return structured PSCustom…
kris6673 Apr 22, 2025
4f00fd1
remove + objects in all tenants exxclusion
JohnDuprey Apr 22, 2025
80a1931
fix permission
JohnDuprey Apr 22, 2025
15689dd
fix wrong data type used for list
kris6673 Apr 22, 2025
2b6a95e
fix: tweak standards compare
OfficialEsco Apr 23, 2025
0e02688
fix: TeamsExternalFileSharing identity
OfficialEsco Apr 23, 2025
2744af7
chore: fix up AutopilotStatusPage
OfficialEsco Apr 24, 2025
bed5ba0
chore: fix up AutoPilotProfile
OfficialEsco Apr 23, 2025
408e4f6
Fix: variable casing and improve logging messages in Invoke-RemoveSta…
kris6673 Apr 24, 2025
fc499e3
Update Get-CIPPAuthentication.ps1
JohnDuprey Apr 25, 2025
b7b5ac2
add graph preset validation
JohnDuprey Apr 23, 2025
f24f5f6
Update Get-CIPPAuthentication.ps1
JohnDuprey Apr 25, 2025
156f966
Update Get-CIPPAuthentication.ps1
JohnDuprey Apr 25, 2025
bd9a8ea
fix for null subscription
JohnDuprey Apr 26, 2025
456486b
Update tenant refresh functionality
JohnDuprey Apr 26, 2025
ad2d8e1
tweak get tenant alias update
JohnDuprey Apr 26, 2025
abfeee8
more tweaks
JohnDuprey Apr 26, 2025
10e7b1b
logging
JohnDuprey Apr 26, 2025
7e89ee6
Update Get-Tenants.ps1
JohnDuprey Apr 26, 2025
fd0495b
fix delete standard template action
JohnDuprey Apr 26, 2025
8f902a8
Merge branch 'dev' into fix-issue-4005
JohnDuprey Apr 26, 2025
e7a4b2c
Merge pull request #1406 from kris6673/fix-issue-4005
JohnDuprey Apr 26, 2025
d6e7e75
value
KelvinTegelaar Apr 27, 2025
c5ec080
Merge branch 'dev' of https://github.com/KelvinTegelaar/CIPP-API into…
KelvinTegelaar Apr 27, 2025
233e0ca
fix sherweb for edit user
KelvinTegelaar Apr 27, 2025
cd42c9d
comment
KelvinTegelaar Apr 27, 2025
2a3c576
.vlaue fix
KelvinTegelaar Apr 27, 2025
6cdabc6
Merge pull request #1405 from Ren-Roros-Digital/chore-AutopilotStatus…
KelvinTegelaar Apr 27, 2025
978b030
Merge pull request #1404 from Ren-Roros-Digital/fix-TeamsExternalFile…
KelvinTegelaar Apr 27, 2025
c5d51a1
Merge pull request #1403 from Ren-Roros-Digital/fix-selfdeployment
KelvinTegelaar Apr 27, 2025
937aaff
Merge pull request #1402 from Ren-Roros-Digital/fix-compare
KelvinTegelaar Apr 27, 2025
60a2a7b
Merge pull request #1401 from kris6673/fix-defender-alert
KelvinTegelaar Apr 27, 2025
acc8aed
Merge pull request #1400 from kris6673/fix-app-approval
KelvinTegelaar Apr 27, 2025
c5f4909
fixes value
KelvinTegelaar Apr 27, 2025
62c23b5
choco app casing
KelvinTegelaar Apr 27, 2025
48629a6
fixes chocoapp
KelvinTegelaar Apr 28, 2025
a3b3ecb
Update Invoke-ExecCippReplacemap.ps1
JohnDuprey Apr 28, 2025
7e2baf0
remove immybot
JohnDuprey Apr 28, 2025
47c5a7a
fix security group template
JohnDuprey Apr 28, 2025
cd24286
Update version_latest.txt
JohnDuprey Apr 28, 2025
7571cfc
Merge pull request #1410 from KelvinTegelaar/dev
JohnDuprey Apr 28, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions .github/workflows/dev_cippahmcc.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Docs for the Azure Web Apps Deploy action: https://github.com/azure/functions-action
# More GitHub Actions for Azure: https://github.com/Azure/actions

name: Build and deploy Powershell project to Azure Function App - cippahmcc

on:
push:
branches:
- dev
workflow_dispatch:

env:
AZURE_FUNCTIONAPP_PACKAGE_PATH: '.' # set this to the path to your web app project, defaults to the repository root

jobs:
deploy:
runs-on: windows-latest

steps:
- name: 'Checkout GitHub Action'
uses: actions/checkout@v4

- name: 'Run Azure Functions Action'
uses: Azure/functions-action@v1
id: fa
with:
app-name: 'cippahmcc'
slot-name: 'Production'
package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}
publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_D6317AAB492A474D91B7A6CD29E53BA3 }}
30 changes: 30 additions & 0 deletions .github/workflows/dev_cippmpiii.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
# Docs for the Azure Web Apps Deploy action: https://github.com/azure/functions-action
# More GitHub Actions for Azure: https://github.com/Azure/actions

name: Build and deploy Powershell project to Azure Function App - cippmpiii

on:
push:
branches:
- dev
workflow_dispatch:

env:
AZURE_FUNCTIONAPP_PACKAGE_PATH: '.' # set this to the path to your web app project, defaults to the repository root

jobs:
deploy:
runs-on: ubuntu-latest

steps:
- name: 'Checkout GitHub Action'
uses: actions/checkout@v4

- name: 'Run Azure Functions Action'
uses: Azure/functions-action@v1
id: fa
with:
app-name: 'cippmpiii'
slot-name: 'Production'
package: ${{ env.AZURE_FUNCTIONAPP_PACKAGE_PATH }}
publish-profile: ${{ secrets.AZUREAPPSERVICE_PUBLISHPROFILE_BC5F21E993034DF2A3793489CE4705E4 }}
2 changes: 1 addition & 1 deletion Modules/CIPPCore/Private/Get-ExoOnlineStringBytes.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ function Get-ExoOnlineStringBytes {
# This exists because various exo cmdlets like to return a human readable string like "3.322 KB (3,402 bytes)" but not the raw bytes value

if ($SizeString -match '\(([0-9,]+) bytes\)') {
return [int]($Matches[1] -replace ',','')
return [int64]($Matches[1] -replace ',','')
}

return 0
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,14 @@ function Get-CIPPAlertDefenderIncidents {
)
try {
$AlertData = New-GraphGetRequest -uri "https://graph.microsoft.com/v1.0/security/incidents?`$top=50&`$filter=status eq 'active'" -tenantid $TenantFilter | ForEach-Object {
"Incident ID $($_.id): Created at $($_.createdDateTime). Severity: $($_.severity). `nIncident name: $($_.displayName). Incident URL: $($_.incidentWebUrl)."
[PSCustomObject]@{
IncidentID = $_.id
CreatedAt = $_.createdDateTime
Severity = $_.severity
IncidentName = $_.displayName
IncidentUrl = $_.incidentWebUrl
Tenant = $TenantFilter
}
}
Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData

Expand Down
28 changes: 26 additions & 2 deletions Modules/CIPPCore/Public/Alerts/Get-CIPPAlertNewAppApproval.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -13,9 +13,33 @@ function Get-CIPPAlertNewAppApproval {
$Headers
)
try {
$Approvals = New-GraphGetRequest -Uri "https://graph.microsoft.com/v1.0/identityGovernance/appConsent/appConsentRequests?`$filter=userConsentRequests/any (u:u/status eq 'InProgress')" -tenantid $TenantFilter
$Approvals = New-GraphGetRequest -Uri "https://graph.microsoft.com/beta/identityGovernance/appConsent/appConsentRequests?`$filter=userConsentRequests/any (u:u/status eq 'InProgress')" -tenantid $TenantFilter
if ($Approvals.count -gt 0) {
$AlertData = "There are $($Approvals.count) App Approval(s) pending."
$AlertData = [System.Collections.Generic.List[PSCustomObject]]::new()
foreach ($App in $Approvals) {
$userConsentRequests = New-GraphGetRequest -Uri "https://graph.microsoft.com/v1.0/identityGovernance/appConsent/appConsentRequests/$($App.id)/userConsentRequests" -tenantid $TenantFilter
$userConsentRequests | ForEach-Object {
$consentUrl = if ($App.consentType -eq 'Static') {
# if something is going wrong here you've probably stumbled on a fourth variation - rvdwegen
"https://login.microsoftonline.com/$($TenantFilter)/adminConsent?client_id=$($App.appId)&bf_id=$($App.id)&redirect_uri=https://entra.microsoft.com/TokenAuthorize"
} elseif ($App.pendingScopes.displayName) {
"https://login.microsoftonline.com/$($TenantFilter)/v2.0/adminConsent?client_id=$($App.appId)&scope=$($App.pendingScopes.displayName -Join(' '))&bf_id=$($App.id)&redirect_uri=https://entra.microsoft.com/TokenAuthorize"
} else {
"https://login.microsoftonline.com/$($TenantFilter)/adminConsent?client_id=$($App.appId)&bf_id=$($App.id)&redirect_uri=https://entra.microsoft.com/TokenAuthorize"
}

$Message = [PSCustomObject]@{
AppName = $App.appDisplayName
RequestUser = $_.createdBy.user.userPrincipalName
Reason = $_.reason
AppId = $App.appId
Scopes = ($App.pendingScopes.displayName -join ', ')
ConsentURL = $consentUrl
Tenant = $TenantFilter
}
$AlertData.Add($Message)
}
}
Write-AlertTrace -cmdletName $MyInvocation.MyCommand -tenantFilter $TenantFilter -data $AlertData
}
} catch {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ function Push-UploadApplication {
$intunewinFilesize = (Get-Item "AddMSPApp\$($ChocoApp.MSPAppName).intunewin")
$Infile = "AddMSPApp\$($ChocoApp.MSPAppName).intunewin"
} else {
[xml]$Intunexml = Get-Content 'AddChocoApp\choco.app.xml'
[xml]$Intunexml = Get-Content 'AddChocoApp\Choco.App.xml'
$intunewinFilesize = (Get-Item 'AddChocoApp\IntunePackage.intunewin')
$Infile = "AddChocoApp\$($intunexml.ApplicationInfo.FileName)"
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,8 @@ function Push-BPACollectData {
}
}
$Table = Get-CippTable -tablename 'cachebpav2'
$Rerun = Test-CIPPRerun -Type 'BPA' -Tenant $TenantName.defaultDomainName -API $Item.Template

$Rerun = Test-CIPPRerun -Type 'BPA' -Tenant $Item.Tenant -API $Item.Template
if ($Rerun) {
Write-Host 'Detected rerun for BPA. Exiting cleanly'
exit 0
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
Function Push-ExecOnboardTenantQueue {
function Push-ExecOnboardTenantQueue {
<#
.FUNCTIONALITY
Entrypoint
Expand Down Expand Up @@ -354,22 +354,29 @@ Function Push-ExecOnboardTenantQueue {
if ($OnboardingSteps.Step4.Status -eq 'succeeded') {
if ($Item.StandardsExcludeAllTenants -eq $true) {
$AddExclusionObj = [PSCustomObject]@{
label = $Tenant.defaultDomainName
label = '{0} ({1})' -f $Tenant.displayName, $Tenant.defaultDomainName
value = $Tenant.defaultDomainName
addedFields = @{}
addedFields = @{
customerId = $Tenant.customerId
defaultDomainName = $Tenant.defaultDomainName
}
}
$Table = Get-CippTable -tablename 'templates'
$ExistingTemplates = Get-CippazDataTableEntity @Table -Filter "PartitionKey eq 'StandardsTemplateV2'" | Where-Object { $_.JSON -match 'AllTenants' }
foreach ($AllTenantesTemplate in $ExistingTemplates) {
foreach ($AllTenantsTemplate in $ExistingTemplates) {
$object = $AllTenantesTemplate.JSON | ConvertFrom-Json
$NewExcludedTenants = $object.excludedTenants + $AddExclusionObj
$NewExcludedTenants = [system.collections.generic.list[object]]::new()
foreach ($Tenant in $object.excludedTenants) {
$NewExcludedTenants.Add($Tenant)
}
$NewExcludedTenants.Add($AddExclusionObj)
$object.excludedTenants = $NewExcludedTenants
$JSON = ConvertTo-Json -InputObject $object -Compress -Depth 10
$Table.Force = $true
Add-CIPPAzDataTableEntity @Table -Entity @{
JSON = "$JSON"
RowKey = $AllTenantesTemplate.RowKey
GUID = $AllTenantesTemplate.GUID
RowKey = $AllTenantsTemplate.RowKey
GUID = $AllTenantsTemplate.GUID
PartitionKey = 'StandardsTemplateV2'
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,14 +3,14 @@ function Invoke-ExecCippReplacemap {
.FUNCTIONALITY
Entrypoint
.ROLE
CIPP.Extension.ReadWrite
Tenant.Config.ReadWrite
#>
[CmdletBinding()]
param($Request, $TriggerMetadata)

$Table = Get-CippTable -tablename 'CippReplacemap'
$Action = $Request.Query.Action ?? $Request.Body.Action
$customerId = $Request.Query.customerId ?? $Request.Body.customerId
$customerId = $Request.Query.tenantId ?? $Request.Body.tenantId

if (!$customerId) {
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
function Invoke-ExecSetRecipientLimits {
<#
.FUNCTIONALITY
Entrypoint
.ROLE
Exchange.Mailbox.ReadWrite
#>
[CmdletBinding()]
param($Request, $TriggerMetadata)

$APIName = $Request.Params.CIPPEndpoint
$Headers = $Request.Headers
Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message 'Accessed this API' -Sev 'Debug'

# Interact with the query or body of the request
$TenantFilter = $Request.Body.tenantFilter
$recipientLimit = $Request.Body.recipientLimit
$Identity = $Request.Body.Identity
$UserPrincipalName = $Request.Body.userid

# Set the parameters for the EXO request
$ExoRequest = @{
tenantid = $TenantFilter
cmdlet = 'Set-Mailbox'
cmdParams = @{
Identity = $Identity
RecipientLimits = $recipientLimit
}
}

# Execute the EXO request
try {
$null = New-ExoRequest @ExoRequest
$Results = "Recipient limit for $UserPrincipalName has been set to $recipientLimit"

Write-LogMessage -API $APIName -tenant $TenantFilter -message $Results -sev Info
$StatusCode = [HttpStatusCode]::OK
} catch {
$ErrorMessage = Get-CippException -Exception $_
$Results = "Could not set recipient limit for $UserPrincipalName to $recipientLimit. Error: $($ErrorMessage.NormalizedError)"
Write-LogMessage -API $APIName -tenant $TenantFilter -message $Results -sev Error -LogData $ErrorMessage
$StatusCode = [HttpStatusCode]::InternalServerError
}

# Associate values to output bindings by calling 'Push-OutputBinding'.
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = $StatusCode
Body = @{ Results = $Results }
})
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
function Invoke-ExecSetRetentionHold {
<#
.FUNCTIONALITY
Entrypoint
.ROLE
Exchange.Mailbox.ReadWrite
#>
[CmdletBinding()]
param($Request, $TriggerMetadata)

$APIName = $Request.Params.CIPPEndpoint
$Headers = $Request.Headers
Write-LogMessage -Headers $Headers -API $APIName -tenant $TenantFilter -message 'Accessed this API' -Sev 'Debug'

# Interact with the query or body of the request
$TenantFilter = $Request.Body.tenantFilter
$RetentionHoldState = -not $Request.Body.disable -as [bool]
$Identity = $Request.Body.Identity
$UserPrincipalName = $Request.Body.UPN

# Set the parameters for the EXO request
$ExoRequest = @{
tenantid = $TenantFilter
cmdlet = 'Set-Mailbox'
cmdParams = @{
Identity = $Identity
RetentionHoldEnabled = $RetentionHoldState
}
}

# Execute the EXO request
try {
$null = New-ExoRequest @ExoRequest
$Results = "Retention hold for $UserPrincipalName with Id $Identity has been set to $RetentionHoldState"

Write-LogMessage -API $APIName -tenant $TenantFilter -message $Results -sev Info
$StatusCode = [HttpStatusCode]::OK
} catch {
$ErrorMessage = Get-CippException -Exception $_
$Results = "Could not set retention hold for $UserPrincipalName with Id $Identity to $RetentionHoldState. Error: $($ErrorMessage.NormalizedError)"
Write-LogMessage -API $APIName -tenant $TenantFilter -message $Results -sev Error -LogData $ErrorMessage
$StatusCode = [HttpStatusCode]::InternalServerError
}

# Associate values to output bindings by calling 'Push-OutputBinding'.
Push-OutputBinding -Name Response -Value ([HttpResponseContext]@{
StatusCode = $StatusCode
Body = @{ Results = $Results }
})
}
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ Function Invoke-ListMailboxes {
# Interact with query parameters or the body of the request.
$TenantFilter = $Request.Query.tenantFilter
try {
$Select = 'id,ExchangeGuid,ArchiveGuid,UserPrincipalName,DisplayName,PrimarySMTPAddress,RecipientType,RecipientTypeDetails,EmailAddresses,WhenSoftDeleted,IsInactiveMailbox,ForwardingSmtpAddress,DeliverToMailboxAndForward,ForwardingAddress,HiddenFromAddressListsEnabled,ExternalDirectoryObjectId,MessageCopyForSendOnBehalfEnabled,MessageCopyForSentAsEnabled,PersistedCapabilities,LitigationHoldEnabled,LitigationHoldDate,LitigationHoldDuration'
$Select = 'id,ExchangeGuid,ArchiveGuid,UserPrincipalName,DisplayName,PrimarySMTPAddress,RecipientType,RecipientTypeDetails,EmailAddresses,WhenSoftDeleted,IsInactiveMailbox,ForwardingSmtpAddress,DeliverToMailboxAndForward,ForwardingAddress,HiddenFromAddressListsEnabled,ExternalDirectoryObjectId,MessageCopyForSendOnBehalfEnabled,MessageCopyForSentAsEnabled,PersistedCapabilities,LitigationHoldEnabled,LitigationHoldDate,LitigationHoldDuration,ComplianceTagHoldApplied,RetentionHoldEnabled,InPlaceHolds'
$ExoRequest = @{
tenantid = $TenantFilter
cmdlet = 'Get-Mailbox'
Expand Down Expand Up @@ -56,15 +56,15 @@ Function Invoke-ListMailboxes {
}
}

$GraphRequest = (New-ExoRequest @ExoRequest) | Select-Object id, ExchangeGuid, ArchiveGuid, WhenSoftDeleted, @{ Name = 'UPN'; Expression = { $_.'UserPrincipalName' } },

$GraphRequest = (New-ExoRequest @ExoRequest) | Select-Object id, ExchangeGuid, ArchiveGuid, WhenSoftDeleted,
@{ Name = 'UPN'; Expression = { $_.'UserPrincipalName' } },
@{ Name = 'displayName'; Expression = { $_.'DisplayName' } },
@{ Name = 'primarySmtpAddress'; Expression = { $_.'PrimarySMTPAddress' } },
@{ Name = 'recipientType'; Expression = { $_.'RecipientType' } },
@{ Name = 'recipientTypeDetails'; Expression = { $_.'RecipientTypeDetails' } },
@{ Name = 'AdditionalEmailAddresses'; Expression = { ($_.'EmailAddresses' | Where-Object { $_ -clike 'smtp:*' }).Replace('smtp:', '') -join ', ' } },
@{Name = 'ForwardingSmtpAddress'; Expression = { $_.'ForwardingSmtpAddress' -replace 'smtp:', '' } },
@{Name = 'InternalForwardingAddress'; Expression = { $_.'ForwardingAddress' } },
@{ Name = 'ForwardingSmtpAddress'; Expression = { $_.'ForwardingSmtpAddress' -replace 'smtp:', '' } },
@{ Name = 'InternalForwardingAddress'; Expression = { $_.'ForwardingAddress' } },
DeliverToMailboxAndForward,
HiddenFromAddressListsEnabled,
ExternalDirectoryObjectId,
Expand All @@ -73,7 +73,12 @@ Function Invoke-ListMailboxes {
LitigationHoldEnabled,
LitigationHoldDate,
LitigationHoldDuration,
@{ Name = 'LicensedForLitigationHold'; Expression = { ($_.PersistedCapabilities -contains 'BPOS_S_DlpAddOn' -or $_.PersistedCapabilities -contains 'BPOS_S_Enterprise') } }
@{ Name = 'LicensedForLitigationHold'; Expression = { ($_.PersistedCapabilities -contains 'BPOS_S_DlpAddOn' -or $_.PersistedCapabilities -contains 'BPOS_S_Enterprise') } },
ComplianceTagHoldApplied,
RetentionHoldEnabled,
InPlaceHolds
# This select also exists in ListUserMailboxDetails and should be updated if this is changed here


$StatusCode = [HttpStatusCode]::OK
} catch {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ Function Invoke-AddChocoApp {
Write-LogMessage -headers $Headers -API $APIName -message 'Accessed this API' -Sev 'Debug'

$ChocoApp = $Request.Body
$intuneBody = Get-Content 'AddChocoApp\choco.app.json' | ConvertFrom-Json
$intuneBody = Get-Content 'AddChocoApp\Choco.app.json' | ConvertFrom-Json
$AssignTo = $Request.Body.AssignTo
$intuneBody.description = $ChocoApp.description
$intuneBody.displayName = $ChocoApp.ApplicationName
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
using namespace System.Net

Function Invoke-AddMSPApp {
function Invoke-AddMSPApp {
<#
.FUNCTIONALITY
Entrypoint
Expand Down Expand Up @@ -37,10 +37,6 @@ Function Invoke-AddMSPApp {
$installCommandLine = "powershell.exe -ExecutionPolicy Bypass .\install.ps1 -OrgKey $($InstallParams.Orgkey."$($Tenant.customerId)") -acctkey $($InstallParams.AccountKey)"
$uninstallCommandLine = 'powershell.exe -ExecutionPolicy Bypass .\install.ps1 -Uninstall'
}
'Immybot' {
$installCommandLine = "powershell.exe -ExecutionPolicy Bypass .\install.ps1 -url $($InstallParams.ClientURL."$($tenant.customerId)")"
$UninstallCommandLine = 'powershell.exe -ExecutionPolicy Bypass .\uninstall.ps1'
}
'syncro' {
$installCommandLine = "powershell.exe -ExecutionPolicy Bypass .\install.ps1 -URL $($InstallParams.ClientURL."$($Tenant.customerId)")"
$uninstallCommandLine = 'powershell.exe -ExecutionPolicy Bypass .\uninstall.ps1'
Expand Down
Loading