@@ -42,6 +42,7 @@ function Set-CIPPUserJITAdmin {
4242 [ValidateSet (' Create' , ' AddRoles' , ' RemoveRoles' , ' DeleteUser' , ' DisableUser' )]
4343 [string ]$Action ,
4444 [datetime ]$Expiration ,
45+ [datetime ]$StartDate ,
4546 [string ]$Reason = ' No reason provided' ,
4647 $Headers ,
4748 [string ]$APIName = ' Set-CIPPUserJITAdmin'
@@ -72,7 +73,9 @@ function Set-CIPPUserJITAdmin {
7273 $Schema.id = @ {
7374 jitAdminEnabled = $false
7475 jitAdminExpiration = $Expiration.ToUniversalTime ().ToString(' yyyy-MM-ddTHH:mm:ssZ' )
76+ jitAdminStartDate = if ($StartDate ) { $StartDate.ToUniversalTime ().ToString(' yyyy-MM-ddTHH:mm:ssZ' ) } else { $null }
7577 jitAdminReason = $Reason
78+ jitAdminCreatedBy = if ($Headers ) { ([System.Text.Encoding ]::UTF8.GetString([System.Convert ]::FromBase64String($Headers .' x-ms-client-principal' )) | ConvertFrom-Json ).userDetails } else { ' Unknown' }
7679 }
7780 }
7881 $Json = ConvertTo-Json - Depth 5 - InputObject $Body
@@ -83,7 +86,16 @@ function Set-CIPPUserJITAdmin {
8386 if ($PasswordLink ) {
8487 $Password = $PasswordLink
8588 }
86- Write-LogMessage - Headers $Headers - API $APIName - tenant $TenantFilter - message " Created JIT Admin user: $ ( $User.UserPrincipalName ) . Reason: $Reason " - Sev ' Info'
89+ $LogData = @ {
90+ UserPrincipalName = $User.UserPrincipalName
91+ Action = ' Create'
92+ Reason = $Reason
93+ StartDate = if ($StartDate ) { $StartDate.ToString (' o' ) } else { (Get-Date ).ToString(' o' ) }
94+ Expiration = $Expiration.ToString (' o' )
95+ ExpirationUTC = $Expiration.ToUniversalTime ().ToString(' o' )
96+ CreatedBy = if ($Headers ) { ([System.Text.Encoding ]::UTF8.GetString([System.Convert ]::FromBase64String($Headers .' x-ms-client-principal' )) | ConvertFrom-Json ).userDetails } else { ' Unknown' }
97+ }
98+ Write-LogMessage - Headers $Headers - API $APIName - tenant $TenantFilter - message " Created JIT Admin user: $ ( $User.UserPrincipalName ) . Reason: $Reason " - Sev ' Info' - LogData $LogData
8799 [PSCustomObject ]@ {
88100 id = $NewUser.id
89101 userPrincipalName = $NewUser.userPrincipalName
@@ -116,9 +128,21 @@ function Set-CIPPUserJITAdmin {
116128 } catch {}
117129 }
118130
119- Set-CIPPUserJITAdminProperties - TenantFilter $TenantFilter - UserId $UserObj.id - Enabled - Expiration $Expiration - Reason $Reason | Out-Null
131+ Set-CIPPUserJITAdminProperties - TenantFilter $TenantFilter - UserId $UserObj.id - Enabled - Expiration $Expiration - StartDate $StartDate - Reason $Reason - CreatedBy ( if ( $Headers ) { ([ System.Text.Encoding ]::UTF8.GetString([ System.Convert ]::FromBase64String( $Headers . ' x-ms-client-principal ' )) | ConvertFrom-Json ).userDetails } else { ' Unknown ' }) | Out-Null
120132 $Message = " Added admin roles to user $ ( $UserObj.displayName ) ($ ( $UserObj.userPrincipalName ) ). Reason: $Reason "
121- Write-LogMessage - Headers $Headers - API $APIName - tenant $TenantFilter - message $Message - Sev ' Info'
133+ $LogData = @ {
134+ UserPrincipalName = $UserObj.userPrincipalName
135+ UserId = $UserObj.id
136+ DisplayName = $UserObj.displayName
137+ Action = ' AddRoles'
138+ Roles = $Roles
139+ Reason = $Reason
140+ StartDate = if ($StartDate ) { $StartDate.ToString (' o' ) } else { (Get-Date ).ToString(' o' ) }
141+ Expiration = $Expiration.ToString (' o' )
142+ ExpirationUTC = $Expiration.ToUniversalTime ().ToString(' o' )
143+ CreatedBy = if ($Headers ) { ([System.Text.Encoding ]::UTF8.GetString([System.Convert ]::FromBase64String($Headers .' x-ms-client-principal' )) | ConvertFrom-Json ).userDetails } else { ' Unknown' }
144+ }
145+ Write-LogMessage - Headers $Headers - API $APIName - tenant $TenantFilter - message $Message - Sev ' Info' - LogData $LogData
122146 return " Added admin roles to user $ ( $UserObj.displayName ) ($ ( $UserObj.userPrincipalName ) )"
123147 }
124148 ' RemoveRoles' {
0 commit comments