mirror of
https://github.com/Micke-K/IntuneManagement.git
synced 2026-09-28 10:55:38 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
83c845fc33 | ||
|
|
f5613442bd | ||
|
|
ab7b062946 | ||
|
|
ea3af64316 | ||
|
|
e6ec048df0 | ||
|
|
0fd868ff70 | ||
|
|
ece28a649f | ||
|
|
897309e48e | ||
|
|
2dc5eca089 | ||
|
|
02c162efd3 | ||
|
|
aae21c3960 | ||
|
|
103b1c2e66 | ||
|
|
d7f2d32771 | ||
|
|
9c9e46d315 | ||
|
|
e980b412d0 | ||
|
|
4d3d8a3060 |
@@ -0,0 +1,42 @@
|
|||||||
|
using System;
|
||||||
|
using System.Net;
|
||||||
|
using System.Net.Http;
|
||||||
|
using Microsoft.Identity.Client;
|
||||||
|
|
||||||
|
public class HttpFactoryWithProxy : IMsalHttpClientFactory
|
||||||
|
{
|
||||||
|
private static HttpClient _httpClient;
|
||||||
|
|
||||||
|
public HttpFactoryWithProxy(string proxyURI) : this(proxyURI, null, null)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public HttpFactoryWithProxy(string proxyURI, string proxyUserName = null, string proxyPassword = null)
|
||||||
|
{
|
||||||
|
if (_httpClient == null)
|
||||||
|
{
|
||||||
|
var proxy = new WebProxy
|
||||||
|
{
|
||||||
|
Address = new Uri(proxyURI),
|
||||||
|
BypassProxyOnLocal = false,
|
||||||
|
UseDefaultCredentials = false,
|
||||||
|
Credentials = new NetworkCredential(
|
||||||
|
userName: proxyUserName,
|
||||||
|
password: proxyPassword)
|
||||||
|
};
|
||||||
|
|
||||||
|
var httpClientHandler = new HttpClientHandler
|
||||||
|
{
|
||||||
|
Proxy = proxy,
|
||||||
|
};
|
||||||
|
|
||||||
|
_httpClient = new HttpClient(handler: httpClientHandler);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public HttpClient GetHttpClient()
|
||||||
|
{
|
||||||
|
return _httpClient;
|
||||||
|
}
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
@@ -12,7 +12,7 @@
|
|||||||
RootModule = 'CloudAPIPowerShellManagement.psm1'
|
RootModule = 'CloudAPIPowerShellManagement.psm1'
|
||||||
|
|
||||||
# Version number of this module.
|
# Version number of this module.
|
||||||
ModuleVersion = '3.7.0'
|
ModuleVersion = '3.9.3'
|
||||||
|
|
||||||
# Supported PSEditions
|
# Supported PSEditions
|
||||||
# CompatiblePSEditions = @()
|
# CompatiblePSEditions = @()
|
||||||
@@ -27,7 +27,7 @@ Author = 'Mikael Karlsson'
|
|||||||
# CompanyName = ''
|
# CompanyName = ''
|
||||||
|
|
||||||
# Copyright statement for this module
|
# Copyright statement for this module
|
||||||
Copyright = '(c) 2022 Mikael Karlsson. Software released under MIT License.'
|
Copyright = '(c) 2023 Mikael Karlsson. Software released under MIT License.'
|
||||||
|
|
||||||
# Description of the functionality provided by this module
|
# Description of the functionality provided by this module
|
||||||
Description = 'Management of Intune and Azure via Cloud APIs like Microsoft Graph API'
|
Description = 'Management of Intune and Azure via Cloud APIs like Microsoft Graph API'
|
||||||
@@ -69,7 +69,7 @@ Description = 'Management of Intune and Azure via Cloud APIs like Microsoft Grap
|
|||||||
NestedModules = @()
|
NestedModules = @()
|
||||||
|
|
||||||
# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export.
|
# Functions to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no functions to export.
|
||||||
FunctionsToExport = @("Initialize-CloudAPIManagement","Initialize-CloudAPIManagement")
|
FunctionsToExport = @("Initialize-CloudAPIManagement")
|
||||||
|
|
||||||
# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export.
|
# Cmdlets to export from this module, for best performance, do not use wildcards and do not delete the entry, use an empty array if there are no cmdlets to export.
|
||||||
# CmdletsToExport = @()
|
# CmdletsToExport = @()
|
||||||
|
|||||||
@@ -93,9 +93,18 @@ function Initialize-CloudAPIManagement
|
|||||||
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
|
[void] [System.Reflection.Assembly]::LoadWithPartialName("System.Windows.Forms")
|
||||||
Add-Type -AssemblyName PresentationFramework
|
Add-Type -AssemblyName PresentationFramework
|
||||||
|
|
||||||
|
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
||||||
|
|
||||||
$global:hideUI = ($Silent -eq $true)
|
$global:hideUI = ($Silent -eq $true)
|
||||||
$global:SilentBatchFile = $SilentBatchFile
|
$global:SilentBatchFile = $SilentBatchFile
|
||||||
|
|
||||||
|
if($tenantId)
|
||||||
|
{
|
||||||
|
$global:AzureAppId = $appId
|
||||||
|
$global:ClientSecret = $secret
|
||||||
|
$global:ClientCert = $certificate
|
||||||
|
}
|
||||||
|
|
||||||
if($global:hideUI -ne $true)
|
if($global:hideUI -ne $true)
|
||||||
{
|
{
|
||||||
# Run with UI
|
# Run with UI
|
||||||
@@ -126,12 +135,11 @@ function Initialize-CloudAPIManagement
|
|||||||
Write-Error "Tenant Id is missing. Use -TenantId <Tenant-guid> on the command line to run silent batch jobs"
|
Write-Error "Tenant Id is missing. Use -TenantId <Tenant-guid> on the command line to run silent batch jobs"
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
$global:TenantId = $tenantId
|
|
||||||
$global:AzureAppId = $appId
|
|
||||||
$global:ClientSecret = $secret
|
|
||||||
$global:ClientCert = $certificate
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$global:TenantId = $tenantId
|
||||||
|
|
||||||
|
|
||||||
if($ShowConsoleWindow -ne $true)
|
if($ShowConsoleWindow -ne $true)
|
||||||
{
|
{
|
||||||
Hide-Console
|
Hide-Console
|
||||||
|
|||||||
@@ -11,7 +11,7 @@ This module handles the WPF UI
|
|||||||
|
|
||||||
function Get-ModuleVersion
|
function Get-ModuleVersion
|
||||||
{
|
{
|
||||||
'3.7.0'
|
'3.9.3'
|
||||||
}
|
}
|
||||||
|
|
||||||
function Initialize-Window
|
function Initialize-Window
|
||||||
@@ -58,6 +58,7 @@ function Start-CoreApp
|
|||||||
|
|
||||||
$global:useDefaultFolderDialog = $false
|
$global:useDefaultFolderDialog = $false
|
||||||
$global:WindowsAPICodePackLoaded = $false
|
$global:WindowsAPICodePackLoaded = $false
|
||||||
|
$script:proxyURI = $null
|
||||||
|
|
||||||
$global:loadedModules = @()
|
$global:loadedModules = @()
|
||||||
$global:viewObjects = @()
|
$global:viewObjects = @()
|
||||||
@@ -235,6 +236,8 @@ function Write-Log
|
|||||||
|
|
||||||
if(-not $global:logFileMaxSize) { [Int64]$global:logFileMaxSize = Get-SettingValue "LogFileSize" 1024; $global:logFileMaxSize = $global:logFileMaxSize * 1kb }
|
if(-not $global:logFileMaxSize) { [Int64]$global:logFileMaxSize = Get-SettingValue "LogFileSize" 1024; $global:logFileMaxSize = $global:logFileMaxSize * 1kb }
|
||||||
|
|
||||||
|
if($null -eq $global:logOutputError) { $global:logOutputError = Get-SettingValue "LogOutputError" }
|
||||||
|
|
||||||
$fi = [IO.FileInfo]$global:logFile
|
$fi = [IO.FileInfo]$global:logFile
|
||||||
|
|
||||||
if($fi.Length -gt $global:logFileMaxSize)
|
if($fi.Length -gt $global:logFileMaxSize)
|
||||||
@@ -286,12 +289,19 @@ function Write-Log
|
|||||||
if($type -eq 2)
|
if($type -eq 2)
|
||||||
{
|
{
|
||||||
Write-Warning $Text
|
Write-Warning $Text
|
||||||
$typeStr = "Error"
|
$typeStr = "Warning"
|
||||||
}
|
}
|
||||||
elseif($type -eq 3)
|
elseif($type -eq 3)
|
||||||
|
{
|
||||||
|
if($global:logOutputError -ne $false)
|
||||||
{
|
{
|
||||||
$host.ui.WriteErrorLine($Text)
|
$host.ui.WriteErrorLine($Text)
|
||||||
$typeStr = "Warning"
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Write-Warning $Text
|
||||||
|
}
|
||||||
|
$typeStr = "Error"
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -415,7 +425,7 @@ function Set-XamlProperty
|
|||||||
|
|
||||||
function Get-XamlProperty
|
function Get-XamlProperty
|
||||||
{
|
{
|
||||||
param($xamlObj, $controlName, $propertyName, $defaultValue)
|
param($xamlObj, $controlName, $propertyName, $defaultValue = $null)
|
||||||
|
|
||||||
$obj = $xamlObj.FindName($controlName)
|
$obj = $xamlObj.FindName($controlName)
|
||||||
|
|
||||||
@@ -423,7 +433,7 @@ function Get-XamlProperty
|
|||||||
{
|
{
|
||||||
if($obj)
|
if($obj)
|
||||||
{
|
{
|
||||||
return (?? $obj."$propertyName" $null)
|
return (?? $obj."$propertyName" $defaultValue)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -667,8 +677,15 @@ function Show-UpdatesDialog
|
|||||||
{
|
{
|
||||||
if($mystream) { $mystream.Dispose() }
|
if($mystream) { $mystream.Dispose() }
|
||||||
}
|
}
|
||||||
|
$params = @{}
|
||||||
|
$proxyURI = Get-ProxyURI
|
||||||
|
if($proxyURI)
|
||||||
|
{
|
||||||
|
$params.Add("proxy", $proxyURI)
|
||||||
|
$params.Add("UseBasicParsing", $true)
|
||||||
|
}
|
||||||
|
|
||||||
$content = Invoke-RestMethod "https://api.github.com/repos/Micke-K/IntuneManagement/contents/ReleaseNotes.md"
|
$content = Invoke-RestMethod "https://api.github.com/repos/Micke-K/IntuneManagement/contents/ReleaseNotes.md" @params
|
||||||
if($content)
|
if($content)
|
||||||
{
|
{
|
||||||
$txt = [System.Text.Encoding]::UTF8.GetString(([System.Convert]::FromBase64String($content.content)))
|
$txt = [System.Text.Encoding]::UTF8.GetString(([System.Convert]::FromBase64String($content.content)))
|
||||||
@@ -703,7 +720,15 @@ function Get-IsLatestVersion
|
|||||||
|
|
||||||
$gitHubVer = $null
|
$gitHubVer = $null
|
||||||
|
|
||||||
$content = Invoke-RestMethod "https://api.github.com/repos/Micke-K/IntuneManagement/releases/latest"
|
$params = @{}
|
||||||
|
$proxyURI = Get-ProxyURI
|
||||||
|
if($proxyURI)
|
||||||
|
{
|
||||||
|
$params.Add("proxy", $proxyURI)
|
||||||
|
$params.Add("UseBasicParsing", $true)
|
||||||
|
}
|
||||||
|
|
||||||
|
$content = Invoke-RestMethod "https://api.github.com/repos/Micke-K/IntuneManagement/releases/latest" @params
|
||||||
if($content.Name)
|
if($content.Name)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -715,7 +740,15 @@ function Get-IsLatestVersion
|
|||||||
|
|
||||||
if($null -eq $gitHubVer)
|
if($null -eq $gitHubVer)
|
||||||
{
|
{
|
||||||
$content = Invoke-RestMethod "https://api.github.com/repos/Micke-K/IntuneManagement/contents/CloudAPIPowerShellManagement.psd1"
|
$params = @{}
|
||||||
|
$proxyURI = Get-ProxyURI
|
||||||
|
if($proxyURI)
|
||||||
|
{
|
||||||
|
$params.Add("proxy", $proxyURI)
|
||||||
|
$params.Add("UseBasicParsing", $true)
|
||||||
|
}
|
||||||
|
|
||||||
|
$content = Invoke-RestMethod "https://api.github.com/repos/Micke-K/IntuneManagement/contents/CloudAPIPowerShellManagement.psd1" @params
|
||||||
$gitHubText = [System.Text.Encoding]::UTF8.GetString(([System.Convert]::FromBase64String($content.content)))
|
$gitHubText = [System.Text.Encoding]::UTF8.GetString(([System.Convert]::FromBase64String($content.content)))
|
||||||
$gitHubInfo = Get-ModuleDataTable $gitHubText
|
$gitHubInfo = Get-ModuleDataTable $gitHubText
|
||||||
try
|
try
|
||||||
@@ -912,6 +945,15 @@ function Set-EnvironmentInfo
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if(-not $script:mnuDefaultBGColor)
|
||||||
|
{
|
||||||
|
$script:mnuDefaultBGColor = $global:mnuMain.Background
|
||||||
|
}
|
||||||
|
if(-not $script:mnuDefaultFGColor)
|
||||||
|
{
|
||||||
|
$script:mnuDefaultFGColor = $global:mnuMain.Foreground
|
||||||
|
}
|
||||||
|
|
||||||
if($global:grdEnvironment -and $environmentName)
|
if($global:grdEnvironment -and $environmentName)
|
||||||
{
|
{
|
||||||
$global:grdEnvironment.Visibility = "Visible"
|
$global:grdEnvironment.Visibility = "Visible"
|
||||||
@@ -925,14 +967,6 @@ function Set-EnvironmentInfo
|
|||||||
}
|
}
|
||||||
$bgColor = (Get-SettingValue "MenuBGColor")
|
$bgColor = (Get-SettingValue "MenuBGColor")
|
||||||
$fgColor = (Get-SettingValue "MenuFGColor")
|
$fgColor = (Get-SettingValue "MenuFGColor")
|
||||||
if(-not $script:mnuDefaultBGColor)
|
|
||||||
{
|
|
||||||
$script:mnuDefaultBGColor = $global:mnuMain.Background
|
|
||||||
}
|
|
||||||
if(-not $script:mnuDefaultFGColor)
|
|
||||||
{
|
|
||||||
$script:mnuDefaultFGColor = $global:mnuMain.Foreground
|
|
||||||
}
|
|
||||||
|
|
||||||
if(-not $bgColor)
|
if(-not $bgColor)
|
||||||
{
|
{
|
||||||
@@ -959,7 +993,7 @@ function Set-EnvironmentInfo
|
|||||||
else
|
else
|
||||||
{
|
{
|
||||||
$global:grdEnvironment.Visibility = "Collapsed"
|
$global:grdEnvironment.Visibility = "Collapsed"
|
||||||
$global:lblEnvironment.Text = ""
|
$global:lblEnvironment.Content = ""
|
||||||
$global:mnuMain.Background = $script:mnuDefaultBGColor
|
$global:mnuMain.Background = $script:mnuDefaultBGColor
|
||||||
$global:mnuMain.Foreground = $script:mnuDefaultFGColor
|
$global:mnuMain.Foreground = $script:mnuDefaultFGColor
|
||||||
$global:lblEnvironment.Foreground = $script:mnuDefaultFGColor
|
$global:lblEnvironment.Foreground = $script:mnuDefaultFGColor
|
||||||
@@ -1149,6 +1183,10 @@ function Expand-FileName
|
|||||||
[Environment]::SetEnvironmentVariable("DateTime",$null,[System.EnvironmentVariableTarget]::Process)
|
[Environment]::SetEnvironmentVariable("DateTime",$null,[System.EnvironmentVariableTarget]::Process)
|
||||||
[Environment]::SetEnvironmentVariable("Organization",$null,[System.EnvironmentVariableTarget]::Process)
|
[Environment]::SetEnvironmentVariable("Organization",$null,[System.EnvironmentVariableTarget]::Process)
|
||||||
|
|
||||||
|
# Remove invalid path characters
|
||||||
|
$re = "[{0}]" -f [RegEx]::Escape(([IO.Path]::GetInvalidPathChars() -join ''))
|
||||||
|
$fileName = $fileName -replace $re
|
||||||
|
|
||||||
$fileName
|
$fileName
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1167,6 +1205,8 @@ function Initialize-Settings
|
|||||||
$global:Debug = Get-SettingValue "Debug"
|
$global:Debug = Get-SettingValue "Debug"
|
||||||
$global:logFile = $null
|
$global:logFile = $null
|
||||||
$global:logFileMaxSize = $null
|
$global:logFileMaxSize = $null
|
||||||
|
$global:logOutputError = $null
|
||||||
|
$script:proxyURI = $null
|
||||||
|
|
||||||
if($Updated -eq $true)
|
if($Updated -eq $true)
|
||||||
{
|
{
|
||||||
@@ -1942,6 +1982,14 @@ function Add-DefaultSettings
|
|||||||
DefaultValue = 1024
|
DefaultValue = 1024
|
||||||
}) "General"
|
}) "General"
|
||||||
|
|
||||||
|
Add-SettingsObject (New-Object PSObject -Property @{
|
||||||
|
Title = "Add errors to PowerShell output"
|
||||||
|
Key = "LogOutputError"
|
||||||
|
Type = "Boolean"
|
||||||
|
Description = "Write errors to the Error Output of the PS Host. If disabled, errors will be written as a Warning. Eg. disable this if automation should skip logging PowerShell errors."
|
||||||
|
DefaultValue = $true
|
||||||
|
}) "General"
|
||||||
|
|
||||||
Add-SettingsObject (New-Object PSObject -Property @{
|
Add-SettingsObject (New-Object PSObject -Property @{
|
||||||
Title = "Debug"
|
Title = "Debug"
|
||||||
Key = "Debug"
|
Key = "Debug"
|
||||||
@@ -1997,6 +2045,12 @@ function Add-DefaultSettings
|
|||||||
Description = "Adds the organization name next to the login info on the menu bar"
|
Description = "Adds the organization name next to the login info on the menu bar"
|
||||||
}) "General"
|
}) "General"
|
||||||
|
|
||||||
|
Add-SettingsObject (New-Object PSObject -Property @{
|
||||||
|
Title = "Proxy URI"
|
||||||
|
Key = "ProxyURI"
|
||||||
|
Description = "Specify the URI for the proxy eg http://<server>:<port>"
|
||||||
|
}) "General"
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function Add-SettingsObject
|
function Add-SettingsObject
|
||||||
@@ -2434,6 +2488,15 @@ function Get-MainWindow
|
|||||||
|
|
||||||
Show-ModalForm $window.Title $script:welcomeForm -HideButtons
|
Show-ModalForm $window.Title $script:welcomeForm -HideButtons
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
###!!! Force login here
|
||||||
|
if($global:currentViewObject.ViewInfo.Authenticate)
|
||||||
|
{
|
||||||
|
# Skip for now...need additional code to skip previous login and force this based on setting.
|
||||||
|
#!!!& $global:currentViewObject.ViewInfo.Authenticate -Params (@{"Interactve"=$true})
|
||||||
|
}
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
foreach($view in $global:viewObjects)
|
foreach($view in $global:viewObjects)
|
||||||
@@ -2665,6 +2728,138 @@ function Show-LogView
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function Get-Base64ScriptContent
|
||||||
|
{
|
||||||
|
param($encodeContent, [switch]$RemoveSignature)
|
||||||
|
|
||||||
|
if(-not $encodeContent) { return }
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
$scriptContent = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($encodeContent))
|
||||||
|
|
||||||
|
if($RemoveSignature -eq $true)
|
||||||
|
{
|
||||||
|
$x = $scriptContent.IndexOf("# SIG # Begin signature block")
|
||||||
|
if($x -gt 0)
|
||||||
|
{
|
||||||
|
$scriptContent = $scriptContent.SubString(0,$x)
|
||||||
|
$scriptContent = $scriptContent + "# SIG # Begin signature block`nSignature data excluded..."
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$scriptContent
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function Get-ProxyURI
|
||||||
|
{
|
||||||
|
if($null -eq $script:proxyURI)
|
||||||
|
{
|
||||||
|
$script:proxyUri = Get-SettingValue "ProxyURI"
|
||||||
|
}
|
||||||
|
|
||||||
|
if($null -eq $script:proxyURI)
|
||||||
|
{
|
||||||
|
$script:proxyUri = ""
|
||||||
|
}
|
||||||
|
return $script:proxyURI
|
||||||
|
}
|
||||||
|
|
||||||
|
function Start-DownloadFile
|
||||||
|
{
|
||||||
|
param($sourceURL, $targetFile)
|
||||||
|
|
||||||
|
Write-Log "Download file from $sourceURL"
|
||||||
|
if(-not $sourceURL)
|
||||||
|
{
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if(-not $targetFile)
|
||||||
|
{
|
||||||
|
Write-Log "Target file is missing"
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
[void][System.Reflection.Assembly]::LoadWithPartialName("System.Web.Extensions")
|
||||||
|
$wc = New-Object System.Net.WebClient
|
||||||
|
$wc.Encoding = [System.Text.Encoding]::UTF8
|
||||||
|
$proxyURI = Get-ProxyURI
|
||||||
|
if($proxyURI)
|
||||||
|
{
|
||||||
|
$wc.Proxy = $proxyURI
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
$title = $sourceURL.Split("/")[-1]
|
||||||
|
$title = $title.Split("/")[0]
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
$title = $sourceURL
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Write-Status "Download file: `n$title"
|
||||||
|
$wc.DownloadFile($sourceURL, $targetFile)
|
||||||
|
Write-Log "File downloaded to $targetFile"
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
Write-LogError "Failed to download file" $_.Exception
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
$wc.Dispose()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function Get-ASCIIBytes
|
||||||
|
{
|
||||||
|
param($String)
|
||||||
|
|
||||||
|
$bytes = [System.Text.Encoding]::ASCII.GetBytes($String)
|
||||||
|
|
||||||
|
if ($bytes[0] -eq 0x2b -and $bytes[1] -eq 0x2f -and $bytes[2] -eq 0x76)
|
||||||
|
{ [Text.Encoding]::UTF7.GetBytes($String) }
|
||||||
|
elseif ($bytes[0] -eq 0xff -and $bytes[1] -eq 0xfe)
|
||||||
|
{ [Text.Encoding]::Unicode.GetBytes($String) }
|
||||||
|
elseif ($bytes[0] -eq 0xfe -and $bytes[1] -eq 0xff)
|
||||||
|
{ [Text.Encoding]::BigEndianUnicode.GetBytes($String) }
|
||||||
|
elseif ($bytes[0] -eq 0x00 -and $bytes[1] -eq 0x00 -and $bytes[2] -eq 0xfe -and $bytes[3] -eq 0xff)
|
||||||
|
{ [Text.Encoding]::UTF32.GetBytes($String) }
|
||||||
|
elseif ($bytes[0] -eq 0xef -and $bytes[1] -eq 0xbb -and $bytes[2] -eq 0xbf)
|
||||||
|
{ [Text.Encoding]::UTF8.GetBytes($String) }
|
||||||
|
|
||||||
|
$bytes
|
||||||
|
}
|
||||||
|
|
||||||
|
function Get-DataGridValues
|
||||||
|
{
|
||||||
|
param($dataGrid)
|
||||||
|
|
||||||
|
$dgColumns = $dataGrid.Columns
|
||||||
|
|
||||||
|
$properties = @()
|
||||||
|
|
||||||
|
foreach($tmpCol in $dgColumns)
|
||||||
|
{
|
||||||
|
if(-not $tmpCol.Binding.Path.Path) { continue }
|
||||||
|
$propName = $tmpCol.Binding.Path.Path
|
||||||
|
$properties += @{n=$tmpCol.Header;e=([Scriptblock]::Create("`$_.$propName"))}
|
||||||
|
}
|
||||||
|
|
||||||
|
($dataGrid.ItemsSource | Select -Property $properties)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
New-Alias -Name ?? -value Invoke-Coalesce
|
New-Alias -Name ?? -value Invoke-Coalesce
|
||||||
New-Alias -Name ?: -value Invoke-IfTrue
|
New-Alias -Name ?: -value Invoke-IfTrue
|
||||||
Export-ModuleMember -alias * -function *
|
Export-ModuleMember -alias * -function *
|
||||||
@@ -0,0 +1,184 @@
|
|||||||
|
<style type="text/css">
|
||||||
|
|
||||||
|
html { }
|
||||||
|
|
||||||
|
html,body {
|
||||||
|
margin:0;
|
||||||
|
padding:5px;
|
||||||
|
position:relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header-level1 {
|
||||||
|
font-family:"Arial",sans-serif;
|
||||||
|
font-size: 18px;
|
||||||
|
margin-top: 0px;
|
||||||
|
margin-bottom: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header-level2 {
|
||||||
|
font-family:"Arial",sans-serif;
|
||||||
|
font-size: 16px;
|
||||||
|
margin-top: 3px;
|
||||||
|
margin-bottom: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header-level3 {
|
||||||
|
font-family:"Arial",sans-serif;
|
||||||
|
font-size: 14px;
|
||||||
|
margin-top: 3px;
|
||||||
|
margin-bottom: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header-level4 {
|
||||||
|
font-family:"Arial",sans-serif;
|
||||||
|
font-size: 12px;
|
||||||
|
margin-top: 3px;
|
||||||
|
margin-bottom: 0px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.header-level6 {
|
||||||
|
font-family:"Arial",sans-serif;
|
||||||
|
font-size: 10px;
|
||||||
|
margin-top: 3px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-settings {
|
||||||
|
border: 1px solid #999999;
|
||||||
|
padding-right: 5px;
|
||||||
|
font-family:"Arial",sans-serif;
|
||||||
|
font-size: 11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-settings TR:nth-child(even) {
|
||||||
|
background-color: #FAFAFA
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-settings th {
|
||||||
|
background-color: #D0D0D0;
|
||||||
|
padding: 0px;
|
||||||
|
text-align:left;
|
||||||
|
font-size: 12px;
|
||||||
|
padding-right: 10px;
|
||||||
|
padding-top: 3px;
|
||||||
|
font-weight: bold;
|
||||||
|
border-width: 5px;
|
||||||
|
padding: 5px;
|
||||||
|
border-style: none;
|
||||||
|
border-color: #F2F2F2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-settings td {
|
||||||
|
text-align:left;
|
||||||
|
padding-right: 5px;
|
||||||
|
border-width: 5px;
|
||||||
|
padding: 5px;
|
||||||
|
border-style: none;
|
||||||
|
border-color: #F2F2F2;
|
||||||
|
border-bottom: 1px solid #ddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.code {
|
||||||
|
background: #f4f4f4;
|
||||||
|
border: 1px solid #ddd;
|
||||||
|
border-left: 3px solid #333333;
|
||||||
|
color: #666;
|
||||||
|
page-break-inside: avoid;
|
||||||
|
font-family: monospace;
|
||||||
|
font-size: 12px;
|
||||||
|
line-height: 1.6;
|
||||||
|
margin-bottom: 2px;
|
||||||
|
max-width: 100%;
|
||||||
|
overflow: auto;
|
||||||
|
padding: 1em 1.5em;
|
||||||
|
display: block;
|
||||||
|
word-wrap: break-word;
|
||||||
|
}
|
||||||
|
|
||||||
|
.description summary {
|
||||||
|
list-style: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
details.description[open] summary::after {
|
||||||
|
content: attr(data-open);
|
||||||
|
}
|
||||||
|
|
||||||
|
details.description:not([open]) summary::after {
|
||||||
|
content: attr(data-close);
|
||||||
|
}
|
||||||
|
|
||||||
|
.row-even {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.row-odd {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.category-level1 {
|
||||||
|
background-color: #E0E0E0;
|
||||||
|
font-size: 11px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.category-level2 {
|
||||||
|
background-color: #E0E0E0;
|
||||||
|
font-size: 11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.anchor-style {
|
||||||
|
font-family:"Arial",sans-serif;
|
||||||
|
font-size: 11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.anchor-level2 {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.anchor-level3 {
|
||||||
|
padding-left: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.anchor-level4 {
|
||||||
|
padding-left: 10px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.anchor-level5 {
|
||||||
|
padding-left: 15px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-value {
|
||||||
|
border: 0px;
|
||||||
|
width: 100%;
|
||||||
|
padding: 0px;
|
||||||
|
font-family:"Arial",sans-serif;
|
||||||
|
font-size: 11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-value th {
|
||||||
|
background-color: #F9F9F9;
|
||||||
|
padding: 0px;
|
||||||
|
text-align:left;
|
||||||
|
font-size: 11px;
|
||||||
|
padding-right: 0px;
|
||||||
|
padding-top: 3px;
|
||||||
|
padding-bottom: 3px;
|
||||||
|
font-weight: normal;
|
||||||
|
border-width: 0px;
|
||||||
|
border-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-value tr {
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-value td {
|
||||||
|
border-bottom: 0;
|
||||||
|
padding: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row-new-property {
|
||||||
|
background-color: #E7E7E7 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,117 @@
|
|||||||
|
<style type="text/css">
|
||||||
|
|
||||||
|
html { }
|
||||||
|
|
||||||
|
html,body {
|
||||||
|
margin:0;
|
||||||
|
padding:0 px;
|
||||||
|
position:relative;
|
||||||
|
}
|
||||||
|
|
||||||
|
h6 {
|
||||||
|
margin-top: 2px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-settings {
|
||||||
|
padding-right: 5px;
|
||||||
|
font-family:"Arial",sans-serif;
|
||||||
|
font-size: 11px;
|
||||||
|
margin-bottom: 0px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-settings p {
|
||||||
|
margin-bottom: 0px !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-settings TR:nth-child(even) {
|
||||||
|
background-color: #FAFAFA
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-settings td {
|
||||||
|
text-align:left;
|
||||||
|
border-width: 5px;
|
||||||
|
padding: 5px !important;
|
||||||
|
border-style: none;
|
||||||
|
border-color: #F2F2F2;
|
||||||
|
border-bottom: 1px solid #ddd;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-header1 td {
|
||||||
|
background-color: #D0D0D0;
|
||||||
|
text-align: left;
|
||||||
|
font-size: 12px;
|
||||||
|
font-weight: bold;
|
||||||
|
border-width: 5px;
|
||||||
|
padding: 5px;
|
||||||
|
border-style: none;
|
||||||
|
border-color: #F2F2F2;
|
||||||
|
}
|
||||||
|
|
||||||
|
.category-level1 {
|
||||||
|
background-color: #E0E0E0;
|
||||||
|
font-size: 11px;
|
||||||
|
font-weight: bold;
|
||||||
|
}
|
||||||
|
|
||||||
|
.category-level2 {
|
||||||
|
background-color: #E0E0E0;
|
||||||
|
font-size: 11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.anchor-style {
|
||||||
|
font-family:"Arial",sans-serif;
|
||||||
|
font-size: 11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.anchor-level2 {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-value {
|
||||||
|
border: 0px;
|
||||||
|
width: 100%;
|
||||||
|
padding: 0px;
|
||||||
|
font-family:"Arial",sans-serif;
|
||||||
|
font-size: 11px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-value th {
|
||||||
|
background-color: #F9F9F9;
|
||||||
|
padding: 0px;
|
||||||
|
text-align:left;
|
||||||
|
font-size: 11px;
|
||||||
|
padding-right: 0px;
|
||||||
|
padding-top: 3px;
|
||||||
|
padding-bottom: 3px;
|
||||||
|
font-weight: normal;
|
||||||
|
border-width: 0px;
|
||||||
|
border-style: none;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-value tr {
|
||||||
|
background-color: #FFFFFF;
|
||||||
|
}
|
||||||
|
|
||||||
|
.table-value td {
|
||||||
|
border-bottom: 0;
|
||||||
|
padding: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.row-new-property {
|
||||||
|
background-color: #E7E7E7 !important;
|
||||||
|
}
|
||||||
|
|
||||||
|
.description summary {
|
||||||
|
list-style: none;
|
||||||
|
cursor: pointer;
|
||||||
|
}
|
||||||
|
|
||||||
|
details.description[open] summary::after {
|
||||||
|
content: attr(data-open);
|
||||||
|
}
|
||||||
|
|
||||||
|
details.description:not([open]) summary::after {
|
||||||
|
content: attr(data-close);
|
||||||
|
}
|
||||||
|
|
||||||
|
</style>
|
||||||
@@ -1014,13 +1014,7 @@
|
|||||||
"PolicyTypeLanguageId": "vpn",
|
"PolicyTypeLanguageId": "vpn",
|
||||||
"PlatformLanguageId": "Windows10",
|
"PlatformLanguageId": "Windows10",
|
||||||
"Categories": [
|
"Categories": [
|
||||||
"vpn",
|
"vpn"
|
||||||
"vpnappsandtrafficrules",
|
|
||||||
"vpnconditionalaccess",
|
|
||||||
"vpndnstriggers",
|
|
||||||
"vpnproxy",
|
|
||||||
"vpnsplittunneling",
|
|
||||||
"vpntrustednetwork"
|
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -11,7 +11,7 @@
|
|||||||
"entityKey": "configureEmail",
|
"entityKey": "configureEmail",
|
||||||
"dataType": 0,
|
"dataType": 0,
|
||||||
"booleanActions": 109,
|
"booleanActions": 109,
|
||||||
"category": 103
|
"category": "TableHeaders.settings"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "Inputs.authenticationType",
|
"nameResourceKey": "Inputs.authenticationType",
|
||||||
@@ -19,7 +19,7 @@
|
|||||||
"entityKey": "com.microsoft.outlook.EmailProfile.AccountType",
|
"entityKey": "com.microsoft.outlook.EmailProfile.AccountType",
|
||||||
"dataType": 16,
|
"dataType": 16,
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"category": 103,
|
"category": "TableHeaders.settings",
|
||||||
"options": [
|
"options": [
|
||||||
{
|
{
|
||||||
"nameResourceKey": "Inputs.basicAuth",
|
"nameResourceKey": "Inputs.basicAuth",
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
"entityKey": "com.microsoft.outlook.EmailProfile.EmailUPN",
|
"entityKey": "com.microsoft.outlook.EmailProfile.EmailUPN",
|
||||||
"dataType": 16,
|
"dataType": 16,
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"category": 103,
|
"category": "TableHeaders.settings",
|
||||||
"options": [
|
"options": [
|
||||||
{
|
{
|
||||||
"nameResourceKey": "userPrincipalNameOption",
|
"nameResourceKey": "userPrincipalNameOption",
|
||||||
@@ -58,7 +58,7 @@
|
|||||||
"entityKey": "com.microsoft.outlook.EmailProfile.AccountDomain",
|
"entityKey": "com.microsoft.outlook.EmailProfile.AccountDomain",
|
||||||
"dataType": 20,
|
"dataType": 20,
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"category": 103,
|
"category": "TableHeaders.settings",
|
||||||
"Condition": {
|
"Condition": {
|
||||||
"Expressions": [
|
"Expressions": [
|
||||||
{
|
{
|
||||||
@@ -74,7 +74,7 @@
|
|||||||
"entityKey": "com.microsoft.outlook.EmailProfile.EmailAddress",
|
"entityKey": "com.microsoft.outlook.EmailProfile.EmailAddress",
|
||||||
"dataType": 16,
|
"dataType": 16,
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"category": 103,
|
"category": "TableHeaders.settings",
|
||||||
"options": [
|
"options": [
|
||||||
{
|
{
|
||||||
"nameResourceKey": "userPrincipalNameOption",
|
"nameResourceKey": "userPrincipalNameOption",
|
||||||
@@ -92,7 +92,7 @@
|
|||||||
"entityKey": "com.microsoft.outlook.EmailProfile.ServerHostName",
|
"entityKey": "com.microsoft.outlook.EmailProfile.ServerHostName",
|
||||||
"dataType": 20,
|
"dataType": 20,
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"category": 103,
|
"category": "TableHeaders.settings",
|
||||||
"Condition": {
|
"Condition": {
|
||||||
"Expressions": [
|
"Expressions": [
|
||||||
{
|
{
|
||||||
@@ -108,7 +108,7 @@
|
|||||||
"entityKey": "com.microsoft.outlook.EmailProfile.EmailAccountName",
|
"entityKey": "com.microsoft.outlook.EmailProfile.EmailAccountName",
|
||||||
"dataType": 20,
|
"dataType": 20,
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"category": 103,
|
"category": "TableHeaders.settings",
|
||||||
"Condition": {
|
"Condition": {
|
||||||
"Expressions": [
|
"Expressions": [
|
||||||
{
|
{
|
||||||
@@ -124,7 +124,7 @@
|
|||||||
"entityKey": "IntuneMAMAllowedAccountsOnly",
|
"entityKey": "IntuneMAMAllowedAccountsOnly",
|
||||||
"dataType": 16,
|
"dataType": 16,
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"category": 103,
|
"category": "TableHeaders.settings",
|
||||||
"Condition": {
|
"Condition": {
|
||||||
"Expressions": [
|
"Expressions": [
|
||||||
{
|
{
|
||||||
@@ -158,7 +158,7 @@
|
|||||||
"entityKey": "com.microsoft.outlook.Mail.FocusedInbox",
|
"entityKey": "com.microsoft.outlook.Mail.FocusedInbox",
|
||||||
"dataType": 0,
|
"dataType": 0,
|
||||||
"booleanActions": 120,
|
"booleanActions": 120,
|
||||||
"category": 103
|
"category": "TableHeaders.settings"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "OutlookAppConfig.allowBiometricsTitle",
|
"nameResourceKey": "OutlookAppConfig.allowBiometricsTitle",
|
||||||
@@ -166,7 +166,7 @@
|
|||||||
"entityKey": "com.microsoft.outlook.Auth.Biometric",
|
"entityKey": "com.microsoft.outlook.Auth.Biometric",
|
||||||
"dataType": 0,
|
"dataType": 0,
|
||||||
"booleanActions": 120,
|
"booleanActions": 120,
|
||||||
"category": 103
|
"category": "TableHeaders.settings"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "OutlookAppConfig.allowUserChangeTitle",
|
"nameResourceKey": "OutlookAppConfig.allowUserChangeTitle",
|
||||||
@@ -176,7 +176,7 @@
|
|||||||
"booleanActions": 109,
|
"booleanActions": 109,
|
||||||
"unconfiguredValue": true,
|
"unconfiguredValue": true,
|
||||||
"allowMissing": true,
|
"allowMissing": true,
|
||||||
"category": 103,
|
"category": "TableHeaders.settings",
|
||||||
"Condition": {
|
"Condition": {
|
||||||
"Expressions": [
|
"Expressions": [
|
||||||
{
|
{
|
||||||
@@ -192,7 +192,7 @@
|
|||||||
"entityKey": "com.microsoft.outlook.Contacts.LocalSyncEnabled",
|
"entityKey": "com.microsoft.outlook.Contacts.LocalSyncEnabled",
|
||||||
"dataType": 0,
|
"dataType": 0,
|
||||||
"booleanActions": 120,
|
"booleanActions": 120,
|
||||||
"category": 103
|
"category": "TableHeaders.settings"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "OutlookAppConfig.allowUserChangeTitle",
|
"nameResourceKey": "OutlookAppConfig.allowUserChangeTitle",
|
||||||
@@ -202,7 +202,7 @@
|
|||||||
"booleanActions": 109,
|
"booleanActions": 109,
|
||||||
"unconfiguredValue": true,
|
"unconfiguredValue": true,
|
||||||
"allowMissing": true,
|
"allowMissing": true,
|
||||||
"category": 103,
|
"category": "TableHeaders.settings",
|
||||||
"Condition": {
|
"Condition": {
|
||||||
"Expressions": [
|
"Expressions": [
|
||||||
{
|
{
|
||||||
@@ -218,7 +218,7 @@
|
|||||||
"entityKey": "com.microsoft.outlook.Mail.officeFeedEnabled",
|
"entityKey": "com.microsoft.outlook.Mail.officeFeedEnabled",
|
||||||
"dataType": 0,
|
"dataType": 0,
|
||||||
"booleanActions": 120,
|
"booleanActions": 120,
|
||||||
"category": 103
|
"category": "TableHeaders.settings"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "OutlookAppConfig.allowSmartReplyTitle",
|
"nameResourceKey": "OutlookAppConfig.allowSmartReplyTitle",
|
||||||
@@ -226,7 +226,7 @@
|
|||||||
"entityKey": "com.microsoft.outlook.Mail.SuggestedRepliesEnabled",
|
"entityKey": "com.microsoft.outlook.Mail.SuggestedRepliesEnabled",
|
||||||
"dataType": 0,
|
"dataType": 0,
|
||||||
"booleanActions": 120,
|
"booleanActions": 120,
|
||||||
"category": 103
|
"category": "TableHeaders.settings"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "OutlookAppConfig.allowUserChangeTitle",
|
"nameResourceKey": "OutlookAppConfig.allowUserChangeTitle",
|
||||||
@@ -234,7 +234,7 @@
|
|||||||
"entityKey": "com.microsoft.outlook.Mail.SuggestedRepliesEnabled.UserChangeAllowed",
|
"entityKey": "com.microsoft.outlook.Mail.SuggestedRepliesEnabled.UserChangeAllowed",
|
||||||
"dataType": 0,
|
"dataType": 0,
|
||||||
"booleanActions": 109,
|
"booleanActions": 109,
|
||||||
"category": 103,
|
"category": "TableHeaders.settings",
|
||||||
"unconfiguredValue": true,
|
"unconfiguredValue": true,
|
||||||
"allowMissing": true,
|
"allowMissing": true,
|
||||||
"Condition": {
|
"Condition": {
|
||||||
@@ -252,7 +252,7 @@
|
|||||||
"entityKey": "com.microsoft.outlook.Mail.ExternalRecipientsToolTipEnabled",
|
"entityKey": "com.microsoft.outlook.Mail.ExternalRecipientsToolTipEnabled",
|
||||||
"dataType": 0,
|
"dataType": 0,
|
||||||
"booleanActions": 120,
|
"booleanActions": 120,
|
||||||
"category": 103
|
"category": "TableHeaders.settings"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "OutlookAppConfig.allowDefaultAppSignatureTitle",
|
"nameResourceKey": "OutlookAppConfig.allowDefaultAppSignatureTitle",
|
||||||
@@ -260,7 +260,7 @@
|
|||||||
"entityKey": "com.microsoft.outlook.Mail.DefaultSignatureEnabled",
|
"entityKey": "com.microsoft.outlook.Mail.DefaultSignatureEnabled",
|
||||||
"dataType": 0,
|
"dataType": 0,
|
||||||
"booleanActions": 120,
|
"booleanActions": 120,
|
||||||
"category": 103
|
"category": "TableHeaders.settings"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "OutlookAppConfig.blockExternalImagesTitle",
|
"nameResourceKey": "OutlookAppConfig.blockExternalImagesTitle",
|
||||||
@@ -268,7 +268,7 @@
|
|||||||
"entityKey": "com.microsoft.outlook.Mail.BlockExternalImagesEnabled",
|
"entityKey": "com.microsoft.outlook.Mail.BlockExternalImagesEnabled",
|
||||||
"dataType": 0,
|
"dataType": 0,
|
||||||
"booleanActions": 120,
|
"booleanActions": 120,
|
||||||
"category": 103
|
"category": "TableHeaders.settings"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "OutlookAppConfig.allowUserChangeTitle",
|
"nameResourceKey": "OutlookAppConfig.allowUserChangeTitle",
|
||||||
@@ -278,7 +278,7 @@
|
|||||||
"booleanActions": 109,
|
"booleanActions": 109,
|
||||||
"unconfiguredValue": true,
|
"unconfiguredValue": true,
|
||||||
"allowMissing": true,
|
"allowMissing": true,
|
||||||
"category": 103,
|
"category": "TableHeaders.settings",
|
||||||
"Condition": {
|
"Condition": {
|
||||||
"Expressions": [
|
"Expressions": [
|
||||||
{
|
{
|
||||||
@@ -294,7 +294,7 @@
|
|||||||
"entityKey": "com.microsoft.outlook.Mail.OrganizeByThreadEnabled",
|
"entityKey": "com.microsoft.outlook.Mail.OrganizeByThreadEnabled",
|
||||||
"dataType": 0,
|
"dataType": 0,
|
||||||
"booleanActions": 120,
|
"booleanActions": 120,
|
||||||
"category": 103
|
"category": "TableHeaders.settings"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "OutlookAppConfig.playMyEmailsTitle",
|
"nameResourceKey": "OutlookAppConfig.playMyEmailsTitle",
|
||||||
@@ -302,7 +302,7 @@
|
|||||||
"entityKey": "com.microsoft.outlook.Mail.PlayMyEmailsEnabled",
|
"entityKey": "com.microsoft.outlook.Mail.PlayMyEmailsEnabled",
|
||||||
"dataType": 0,
|
"dataType": 0,
|
||||||
"booleanActions": 120,
|
"booleanActions": 120,
|
||||||
"category": 103
|
"category": "TableHeaders.settings"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "OutlookAppConfig.themesEnabledTitle",
|
"nameResourceKey": "OutlookAppConfig.themesEnabledTitle",
|
||||||
@@ -310,7 +310,7 @@
|
|||||||
"entityKey": "com.microsoft.outlook.Settings.ThemesEnabled",
|
"entityKey": "com.microsoft.outlook.Settings.ThemesEnabled",
|
||||||
"dataType": 0,
|
"dataType": 0,
|
||||||
"booleanActions": 120,
|
"booleanActions": 120,
|
||||||
"category": 103
|
"category": "TableHeaders.settings"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "OutlookAppConfig.textPredictionsTitle",
|
"nameResourceKey": "OutlookAppConfig.textPredictionsTitle",
|
||||||
@@ -318,7 +318,7 @@
|
|||||||
"entityKey": "com.microsoft.outlook.Mail.TextPredictionsEnabled",
|
"entityKey": "com.microsoft.outlook.Mail.TextPredictionsEnabled",
|
||||||
"dataType": 0,
|
"dataType": 0,
|
||||||
"booleanActions": 120,
|
"booleanActions": 120,
|
||||||
"category": 103
|
"category": "TableHeaders.settings"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "OutlookAppConfig.allowUserChangeTitle",
|
"nameResourceKey": "OutlookAppConfig.allowUserChangeTitle",
|
||||||
@@ -328,7 +328,7 @@
|
|||||||
"booleanActions": 109,
|
"booleanActions": 109,
|
||||||
"unconfiguredValue": true,
|
"unconfiguredValue": true,
|
||||||
"allowMissing": true,
|
"allowMissing": true,
|
||||||
"category": 103,
|
"category": "TableHeaders.settings",
|
||||||
"Condition": {
|
"Condition": {
|
||||||
"Expressions": [
|
"Expressions": [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -7,6 +7,96 @@
|
|||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"category": "AppInformationTab.name"
|
"category": "AppInformationTab.name"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "Inputs.packageIdLabel",
|
||||||
|
"descriptionResourceKey": "",
|
||||||
|
"entityKey": "packageIdentifier",
|
||||||
|
"dataType": 20,
|
||||||
|
"booleanActions": 0,
|
||||||
|
"category": "AppInformationTab.name",
|
||||||
|
"Condition": {
|
||||||
|
"Expressions": [
|
||||||
|
{
|
||||||
|
"property": "@OData.Type",
|
||||||
|
"value": "#microsoft.graph.winGetApp"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "Inputs.packageIdLabel",
|
||||||
|
"descriptionResourceKey": "",
|
||||||
|
"entityKey": "packageIdentifier",
|
||||||
|
"dataType": 107,
|
||||||
|
"booleanActions": 0,
|
||||||
|
"category": "AppInformationTab.name",
|
||||||
|
"value": "UWP",
|
||||||
|
"Condition": {
|
||||||
|
"type": "and",
|
||||||
|
"Expressions": [
|
||||||
|
{
|
||||||
|
"property": "packageIdentifier",
|
||||||
|
"value": "9*",
|
||||||
|
"operator": "like"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"property": "@OData.Type",
|
||||||
|
"value": "#microsoft.graph.winGetApp"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "Inputs.packageIdLabel",
|
||||||
|
"descriptionResourceKey": "",
|
||||||
|
"entityKey": "packageIdentifier",
|
||||||
|
"dataType": 107,
|
||||||
|
"booleanActions": 0,
|
||||||
|
"category": "AppInformationTab.name",
|
||||||
|
"value": "Win32",
|
||||||
|
"Condition": {
|
||||||
|
"type": "and",
|
||||||
|
"Expressions": [
|
||||||
|
{
|
||||||
|
"property": "packageIdentifier",
|
||||||
|
"value": "X*",
|
||||||
|
"operator": "like"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"property": "@OData.Type",
|
||||||
|
"value": "#microsoft.graph.winGetApp"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "Inputs.packageIdLabel",
|
||||||
|
"descriptionResourceKey": "",
|
||||||
|
"entityKey": "packageIdentifier",
|
||||||
|
"dataType": 107,
|
||||||
|
"booleanActions": 0,
|
||||||
|
"category": "AppInformationTab.name",
|
||||||
|
"value": "Unsupported Store Type",
|
||||||
|
"Condition": {
|
||||||
|
"type": "and",
|
||||||
|
"Expressions": [
|
||||||
|
{
|
||||||
|
"property": "packageIdentifier",
|
||||||
|
"value": "9*",
|
||||||
|
"operator": "notlike"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"property": "packageIdentifier",
|
||||||
|
"value": "X*",
|
||||||
|
"operator": "notlike"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"property": "@OData.Type",
|
||||||
|
"value": "#microsoft.graph.winGetApp"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "Inputs.displayVersionLabel",
|
"nameResourceKey": "Inputs.displayVersionLabel",
|
||||||
"descriptionResourceKey": "",
|
"descriptionResourceKey": "",
|
||||||
@@ -836,10 +926,24 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"Columns": [
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"entityKey": "returnCode",
|
||||||
|
"nameResourceKey": "Win32ReturnCodes.Columns.returnCode"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"entityKey": "type",
|
||||||
|
"nameResourceKey": "Win32ReturnCodes.Columns.codeType"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
"nameResourceKey": "Win32ReturnCodes.selectorLabel",
|
"nameResourceKey": "Win32ReturnCodes.selectorLabel",
|
||||||
"descriptionResourceKey": "",
|
"descriptionResourceKey": "",
|
||||||
"entityKey": "returnCodes",
|
"entityKey": "returnCodes",
|
||||||
"dataType": 20,
|
"dataType": 21,
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"category": "Win32Program.selectorLabel"
|
"category": "Win32Program.selectorLabel"
|
||||||
},
|
},
|
||||||
@@ -892,10 +996,24 @@
|
|||||||
"category": "Win32Requirements.selectorLabel"
|
"category": "Win32Requirements.selectorLabel"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"Columns": [
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"entityKey": "property",
|
||||||
|
"nameResourceKey": "ApplicabilityRules.GridLabel.property"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"entityKey": "value",
|
||||||
|
"nameResourceKey": "ApplicabilityRules.GridLabel.value"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
"nameResourceKey": "Win32Requirements.AdditionalRequirements.label",
|
"nameResourceKey": "Win32Requirements.AdditionalRequirements.label",
|
||||||
"descriptionResourceKey": "",
|
"descriptionResourceKey": "",
|
||||||
"entityKey": "requirementRulesSummary",
|
"entityKey": "requirementRulesTranslated",
|
||||||
"dataType": 20,
|
"dataType": 21,
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"category": "Win32Requirements.selectorLabel"
|
"category": "Win32Requirements.selectorLabel"
|
||||||
},
|
},
|
||||||
@@ -908,10 +1026,24 @@
|
|||||||
"category": "DetectionRules.selectorLabel"
|
"category": "DetectionRules.selectorLabel"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
"Columns": [
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"entityKey": "property",
|
||||||
|
"nameResourceKey": "ApplicabilityRules.GridLabel.property"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"entityKey": "value",
|
||||||
|
"nameResourceKey": "ApplicabilityRules.GridLabel.value"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
"nameResourceKey": "DetectionRules.selectorLabel",
|
"nameResourceKey": "DetectionRules.selectorLabel",
|
||||||
"descriptionResourceKey": "",
|
"descriptionResourceKey": "",
|
||||||
"entityKey": "detectionRulesSummary",
|
"entityKey": "detectionRulesTranslated",
|
||||||
"dataType": 20,
|
"dataType": 21,
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"category": "DetectionRules.selectorLabel",
|
"category": "DetectionRules.selectorLabel",
|
||||||
"Condition": {
|
"Condition": {
|
||||||
@@ -967,12 +1099,12 @@
|
|||||||
"category": "SettingDetails.dependencyCategory"
|
"category": "SettingDetails.dependencyCategory"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "supersedenceCategory",
|
"nameResourceKey": "AppRelationshipStatus.Tabs.supersedence",
|
||||||
"descriptionResourceKey": "",
|
"descriptionResourceKey": "",
|
||||||
"entityKey": "supersededApps",
|
"entityKey": "supersededApps",
|
||||||
"dataType": 20,
|
"dataType": 20,
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"category": "SettingDetails.supersedenceCategory"
|
"category": "AppRelationshipStatus.Tabs.supersedence"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -106,8 +106,8 @@
|
|||||||
"dataType": 102,
|
"dataType": 102,
|
||||||
"category": "Autopilot.OOBE.title",
|
"category": "Autopilot.OOBE.title",
|
||||||
"entityKey": "language",
|
"entityKey": "language",
|
||||||
"booleanActions": 0
|
"booleanActions": 0,
|
||||||
},
|
"ChildSettings": [
|
||||||
{
|
{
|
||||||
"nameResourceKey": "Autopilot.OOBE.title",
|
"nameResourceKey": "Autopilot.OOBE.title",
|
||||||
"descriptionResourceKey": "",
|
"descriptionResourceKey": "",
|
||||||
@@ -115,6 +115,15 @@
|
|||||||
"dataType": 6,
|
"dataType": 6,
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"category": "Autopilot.OOBE.title",
|
"category": "Autopilot.OOBE.title",
|
||||||
|
"Condition": {
|
||||||
|
"Expressions": [
|
||||||
|
{
|
||||||
|
"property": "language",
|
||||||
|
"operator": "ne",
|
||||||
|
"value": "user-select"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
"complexOptions": [
|
"complexOptions": [
|
||||||
{
|
{
|
||||||
"nameResourceKey": "Autopilot.OOBE.skipKeyboardSelection",
|
"nameResourceKey": "Autopilot.OOBE.skipKeyboardSelection",
|
||||||
@@ -132,7 +141,20 @@
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "Autopilot.OOBE.title",
|
||||||
|
"descriptionResourceKey": "",
|
||||||
|
"entityKey": "outOfBoxExperienceSettings",
|
||||||
|
"dataType": 6,
|
||||||
|
"skipAddLevel": true,
|
||||||
|
"booleanActions": 0,
|
||||||
|
"category": "Autopilot.OOBE.title",
|
||||||
|
"complexOptions": [
|
||||||
{
|
{
|
||||||
"nameResourceKey": "Autopilot.OOBE.licenseAgreement",
|
"nameResourceKey": "Autopilot.OOBE.licenseAgreement",
|
||||||
"descriptionResourceKey": "Autopilot.OOBE.licenseAgreementInfo",
|
"descriptionResourceKey": "Autopilot.OOBE.licenseAgreementInfo",
|
||||||
@@ -189,7 +211,7 @@
|
|||||||
"nameResourceKey": "Autopilot.OOBE.ApplyComputerNameTemplate.label",
|
"nameResourceKey": "Autopilot.OOBE.ApplyComputerNameTemplate.label",
|
||||||
"descriptionResourceKey": "Autopilot.OOBE.ApplyComputerNameTemplate.infoBalloon",
|
"descriptionResourceKey": "Autopilot.OOBE.ApplyComputerNameTemplate.infoBalloon",
|
||||||
"entityKey": "applyDeviceNameTemplate",
|
"entityKey": "applyDeviceNameTemplate",
|
||||||
"dataType": 103,
|
"dataType": 0,
|
||||||
"booleanActions": 109,
|
"booleanActions": 109,
|
||||||
"category": "Autopilot.OOBE.title",
|
"category": "Autopilot.OOBE.title",
|
||||||
"ChildSettings": [
|
"ChildSettings": [
|
||||||
|
|||||||
@@ -5,7 +5,7 @@
|
|||||||
"entityKey": "versionInfo",
|
"entityKey": "versionInfo",
|
||||||
"dataType": 20,
|
"dataType": 20,
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"category": 103
|
"category": "TableHeaders.settings"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "SoftwareUpdates.IosUpdatePolicy.Settings.Schedule.label",
|
"nameResourceKey": "SoftwareUpdates.IosUpdatePolicy.Settings.Schedule.label",
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
"entityKey": "updateScheduleType",
|
"entityKey": "updateScheduleType",
|
||||||
"dataType": 16,
|
"dataType": 16,
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"category": 103,
|
"category": "TableHeaders.settings",
|
||||||
"options": [
|
"options": [
|
||||||
{
|
{
|
||||||
"nameResourceKey": "SoftwareUpdates.IosUpdatePolicy.Settings.Schedule.outsideActiveHours",
|
"nameResourceKey": "SoftwareUpdates.IosUpdatePolicy.Settings.Schedule.outsideActiveHours",
|
||||||
@@ -39,7 +39,7 @@
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"dataType": 16,
|
"dataType": 16,
|
||||||
"category": 103,
|
"category": "TableHeaders.settings",
|
||||||
"nameResourceKey": "timeZoneName",
|
"nameResourceKey": "timeZoneName",
|
||||||
"descriptionResourceKey": "timeZoneDescription",
|
"descriptionResourceKey": "timeZoneDescription",
|
||||||
"childSettings": [
|
"childSettings": [
|
||||||
@@ -249,6 +249,6 @@
|
|||||||
"entityKey": "timeWidows",
|
"entityKey": "timeWidows",
|
||||||
"dataType": 20,
|
"dataType": 20,
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"category": 103
|
"category": "TableHeaders.settings"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
+10
-10
@@ -13,7 +13,7 @@
|
|||||||
"entityKey": "showInstallationProgress",
|
"entityKey": "showInstallationProgress",
|
||||||
"dataType": 0,
|
"dataType": 0,
|
||||||
"booleanActions": 109,
|
"booleanActions": 109,
|
||||||
"category": 103
|
"category": "TableHeaders.settings"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "EnrollmentStatusScreen.timeout",
|
"nameResourceKey": "EnrollmentStatusScreen.timeout",
|
||||||
@@ -21,7 +21,7 @@
|
|||||||
"entityKey": "installProgressTimeoutInMinutes",
|
"entityKey": "installProgressTimeoutInMinutes",
|
||||||
"dataType": 14,
|
"dataType": 14,
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"category": 103
|
"category": "TableHeaders.settings"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "EnrollmentStatusScreen.customMessageToggle",
|
"nameResourceKey": "EnrollmentStatusScreen.customMessageToggle",
|
||||||
@@ -29,7 +29,7 @@
|
|||||||
"entityKey": "showCustomErrorMessage",
|
"entityKey": "showCustomErrorMessage",
|
||||||
"dataType": 0,
|
"dataType": 0,
|
||||||
"booleanActions": 109,
|
"booleanActions": 109,
|
||||||
"category": 103
|
"category": "TableHeaders.settings"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "EnrollmentStatusScreen.customMessageTextBox",
|
"nameResourceKey": "EnrollmentStatusScreen.customMessageTextBox",
|
||||||
@@ -37,7 +37,7 @@
|
|||||||
"entityKey": "customErrorMessage",
|
"entityKey": "customErrorMessage",
|
||||||
"dataType": 20,
|
"dataType": 20,
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"category": 103
|
"category": "TableHeaders.settings"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "EnrollmentStatusScreen.collectLogToggle",
|
"nameResourceKey": "EnrollmentStatusScreen.collectLogToggle",
|
||||||
@@ -45,7 +45,7 @@
|
|||||||
"entityKey": "allowLogCollectionOnInstallFailure",
|
"entityKey": "allowLogCollectionOnInstallFailure",
|
||||||
"dataType": 0,
|
"dataType": 0,
|
||||||
"booleanActions": 109,
|
"booleanActions": 109,
|
||||||
"category": 103
|
"category": "TableHeaders.settings"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "EnrollmentStatusScreen.enableForAutopilotOnlyToggle",
|
"nameResourceKey": "EnrollmentStatusScreen.enableForAutopilotOnlyToggle",
|
||||||
@@ -53,7 +53,7 @@
|
|||||||
"entityKey": "trackInstallProgressForAutopilotOnly",
|
"entityKey": "trackInstallProgressForAutopilotOnly",
|
||||||
"dataType": 0,
|
"dataType": 0,
|
||||||
"booleanActions": 109,
|
"booleanActions": 109,
|
||||||
"category": 103
|
"category": "TableHeaders.settings"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "EnrollmentStatusScreen.blockToggle",
|
"nameResourceKey": "EnrollmentStatusScreen.blockToggle",
|
||||||
@@ -61,7 +61,7 @@
|
|||||||
"entityKey": "blockDeviceSetupRetryByUser",
|
"entityKey": "blockDeviceSetupRetryByUser",
|
||||||
"dataType": 16,
|
"dataType": 16,
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"category": 103,
|
"category": "TableHeaders.settings",
|
||||||
"options": [
|
"options": [
|
||||||
{
|
{
|
||||||
"nameResourceKey": "SettingDetails.no",
|
"nameResourceKey": "SettingDetails.no",
|
||||||
@@ -77,7 +77,7 @@
|
|||||||
"entityKey": "allowDeviceResetOnInstallFailure",
|
"entityKey": "allowDeviceResetOnInstallFailure",
|
||||||
"dataType": 0,
|
"dataType": 0,
|
||||||
"booleanActions": 109,
|
"booleanActions": 109,
|
||||||
"category": 103
|
"category": "TableHeaders.settings"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "EnrollmentStatusScreen.allowToUseToggle",
|
"nameResourceKey": "EnrollmentStatusScreen.allowToUseToggle",
|
||||||
@@ -85,7 +85,7 @@
|
|||||||
"entityKey": "allowDeviceUseOnInstallFailure",
|
"entityKey": "allowDeviceUseOnInstallFailure",
|
||||||
"dataType": 0,
|
"dataType": 0,
|
||||||
"booleanActions": 109,
|
"booleanActions": 109,
|
||||||
"category": 103
|
"category": "TableHeaders.settings"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "EnrollmentStatusScreen.Apps.useSelectedAppsToggleLabel",
|
"nameResourceKey": "EnrollmentStatusScreen.Apps.useSelectedAppsToggleLabel",
|
||||||
@@ -93,7 +93,7 @@
|
|||||||
"entityKey": "waitForApps",
|
"entityKey": "waitForApps",
|
||||||
"dataType": 14,
|
"dataType": 14,
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"category": 103
|
"category": "TableHeaders.settings"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,69 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"nameResourceKey": "TableHeaders.policyType",
|
||||||
|
"descriptionResourceKey": "",
|
||||||
|
"entityKey": "WindowsDriverUpdateProfile.Subtitle.automatic",
|
||||||
|
"dataType": 200,
|
||||||
|
"booleanActions": 0,
|
||||||
|
"category": 1000,
|
||||||
|
"Condition": {
|
||||||
|
"Expressions": [
|
||||||
|
{
|
||||||
|
"property": "approvalType",
|
||||||
|
"value": "automatic"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "TableHeaders.policyType",
|
||||||
|
"descriptionResourceKey": "",
|
||||||
|
"entityKey": "WindowsDriverUpdateProfile.Subtitle.manual",
|
||||||
|
"dataType": 200,
|
||||||
|
"booleanActions": 0,
|
||||||
|
"category": 1000,
|
||||||
|
"Condition": {
|
||||||
|
"Expressions": [
|
||||||
|
{
|
||||||
|
"property": "approvalType",
|
||||||
|
"value": "manual"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "WindowsDriverUpdateProfile.Details.ApprovalMethod.label",
|
||||||
|
"descriptionResourceKey": "",
|
||||||
|
"entityKey": "approvalType",
|
||||||
|
"dataType": 16,
|
||||||
|
"booleanActions": 0,
|
||||||
|
"category": "TableHeaders.settings",
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "WindowsDriverUpdateProfile.ApprovalMethod.automatic",
|
||||||
|
"value": "automatic"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "WindowsDriverUpdateProfile.ApprovalMethod.manual",
|
||||||
|
"value": "manual"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "WindowsDriverUpdateProfile.Details.DeploymentDeferralInDays.label",
|
||||||
|
"descriptionResourceKey": "",
|
||||||
|
"entityKey": "deploymentDeferralInDays",
|
||||||
|
"formatStringKey": "WindowsDriverUpdateProfile.Details.DeploymentDeferralInDays.value",
|
||||||
|
"dataType": 108,
|
||||||
|
"booleanActions": 0,
|
||||||
|
"category": "TableHeaders.settings",
|
||||||
|
"Condition": {
|
||||||
|
"Expressions": [
|
||||||
|
{
|
||||||
|
"property": "approvalType",
|
||||||
|
"value": "automatic"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
@@ -13,7 +13,7 @@
|
|||||||
"entityKey": "deployableContentDisplayName",
|
"entityKey": "deployableContentDisplayName",
|
||||||
"dataType": 20,
|
"dataType": 20,
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"category": 103
|
"category": "TableHeaders.settings"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "WindowsQualityUpdateProfile.Details.DaysUntilForcedReboot.label",
|
"nameResourceKey": "WindowsQualityUpdateProfile.Details.DaysUntilForcedReboot.label",
|
||||||
@@ -21,13 +21,13 @@
|
|||||||
"entityKey": "expeditedUpdateSettings",
|
"entityKey": "expeditedUpdateSettings",
|
||||||
"dataType": 6,
|
"dataType": 6,
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"category": 103,
|
"category": "TableHeaders.settings",
|
||||||
"complexOptions": [
|
"complexOptions": [
|
||||||
{
|
{
|
||||||
"nameResourceKey": "WindowsQualityUpdateProfile.Details.DaysUntilForcedReboot.label",
|
"nameResourceKey": "WindowsQualityUpdateProfile.Details.DaysUntilForcedReboot.label",
|
||||||
"descriptionResourceKey": "",
|
"descriptionResourceKey": "",
|
||||||
"dataType": 16,
|
"dataType": 16,
|
||||||
"category": 103,
|
"category": "TableHeaders.settings",
|
||||||
"entityKey": "daysUntilForcedReboot",
|
"entityKey": "daysUntilForcedReboot",
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"options": [
|
"options": [
|
||||||
|
|||||||
+158
@@ -113,6 +113,164 @@
|
|||||||
"defaultValue": false,
|
"defaultValue": false,
|
||||||
"policyType": 2,
|
"policyType": 2,
|
||||||
"enabled": true
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"dataType": 20,
|
||||||
|
"category": 2,
|
||||||
|
"nameResourceKey": "appNameName",
|
||||||
|
"descriptionResourceKey": "Empty",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "name",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 2,
|
||||||
|
"enabled": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"dataType": 20,
|
||||||
|
"category": 2,
|
||||||
|
"nameResourceKey": "packageName",
|
||||||
|
"descriptionResourceKey": "Empty",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "appId",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 2,
|
||||||
|
"enabled": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"dataType": 20,
|
||||||
|
"category": 2,
|
||||||
|
"nameResourceKey": "appUrlName",
|
||||||
|
"descriptionResourceKey": "Empty",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "appStoreUrl",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 2,
|
||||||
|
"enabled": false
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"dataType": 20,
|
||||||
|
"category": 2,
|
||||||
|
"nameResourceKey": "appPublisherName",
|
||||||
|
"descriptionResourceKey": "Empty",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "publisher",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 2,
|
||||||
|
"enabled": false
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dataType": 21,
|
||||||
|
"category": 2,
|
||||||
|
"nameResourceKey": "certificateInstallTitle",
|
||||||
|
"descriptionResourceKey": "certificateInstallDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "certInstallApps",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 2,
|
||||||
|
"enabled": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"complexOptions": [
|
||||||
|
{
|
||||||
|
"dataType": 11,
|
||||||
|
"category": 2,
|
||||||
|
"nameResourceKey": "selectSecurityApp",
|
||||||
|
"descriptionResourceKey": "empty",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "securityLogAppId",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 2,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dataType": 5,
|
||||||
|
"category": 2,
|
||||||
|
"nameResourceKey": "securityLogsTitle",
|
||||||
|
"emptyValueResourceKey": "selectSecurityApp",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "securityLogApp",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 2,
|
||||||
|
"enabled": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"complexOptions": [
|
||||||
|
{
|
||||||
|
"dataType": 11,
|
||||||
|
"category": 2,
|
||||||
|
"nameResourceKey": "selectNetworkApp",
|
||||||
|
"descriptionResourceKey": "empty",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "networkLogAppId",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 2,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dataType": 5,
|
||||||
|
"category": 2,
|
||||||
|
"nameResourceKey": "networkLogsTitle",
|
||||||
|
"emptyValueResourceKey": "selectNetworkApp",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "networkLogApp",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 2,
|
||||||
|
"enabled": false
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"options": [
|
"options": [
|
||||||
|
|||||||
+28
@@ -62,6 +62,34 @@
|
|||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"policyType": 2,
|
"policyType": 2,
|
||||||
"enabled": true
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"isSettingDescription": false,
|
||||||
|
"showAsSectionHeader": true,
|
||||||
|
"dataType": 8,
|
||||||
|
"category": 3,
|
||||||
|
"nameResourceKey": "lockScreenMessageName",
|
||||||
|
"childSettings": [
|
||||||
|
{
|
||||||
|
"dataType": 25,
|
||||||
|
"category": 3,
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 2,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 2,
|
||||||
|
"enabled": true
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"options": [
|
"options": [
|
||||||
|
|||||||
-815
@@ -1,815 +0,0 @@
|
|||||||
{
|
|
||||||
"devicefirmwareconfigurationinterface_windows10devicefirmwareconfigurationinterface": [
|
|
||||||
{
|
|
||||||
"isSettingDescription": false,
|
|
||||||
"showAsSectionHeader": false,
|
|
||||||
"dataType": 8,
|
|
||||||
"category": 136,
|
|
||||||
"nameResourceKey": "dfciHeaderName",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 108,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isSettingDescription": false,
|
|
||||||
"showAsSectionHeader": false,
|
|
||||||
"dataType": 8,
|
|
||||||
"category": 136,
|
|
||||||
"nameResourceKey": "securityFeaturesName",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 108,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 16,
|
|
||||||
"category": 136,
|
|
||||||
"nameResourceKey": "changeUefiSettingsPermissionName",
|
|
||||||
"descriptionResourceKey": "changeUefiSettingsPermissionDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "notConfiguredOnly",
|
|
||||||
"value": "notConfiguredOnly",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "none",
|
|
||||||
"value": "none",
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "changeUefiSettingsPermission",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": "notConfiguredOnly",
|
|
||||||
"unconfiguredValue": "notConfiguredOnly",
|
|
||||||
"policyType": 108,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 16,
|
|
||||||
"category": 136,
|
|
||||||
"nameResourceKey": "virtualizationOfCpuAndIOName",
|
|
||||||
"descriptionResourceKey": "virtualizationOfCpuAndIODescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "notConfigured",
|
|
||||||
"value": "notConfigured",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "enabledOption",
|
|
||||||
"value": "enabled",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "disabledOption",
|
|
||||||
"value": "disabled",
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "virtualizationOfCpuAndIO",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": "notConfigured",
|
|
||||||
"unconfiguredValue": "notConfigured",
|
|
||||||
"policyType": 108,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 16,
|
|
||||||
"category": 136,
|
|
||||||
"nameResourceKey": "windowsPlatformBinaryTableName",
|
|
||||||
"descriptionResourceKey": "windowsPlatformBinaryTableDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "notConfigured",
|
|
||||||
"value": "notConfigured",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "enabledOption",
|
|
||||||
"value": "enabled",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "disabledOption",
|
|
||||||
"value": "disabled",
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "windowsPlatformBinaryTable",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": "notConfigured",
|
|
||||||
"unconfiguredValue": "notConfigured",
|
|
||||||
"policyType": 108,
|
|
||||||
"enabled": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 16,
|
|
||||||
"category": 136,
|
|
||||||
"nameResourceKey": "simultaneousMultiThreadingName",
|
|
||||||
"descriptionResourceKey": "simultaneousMultiThreadingDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "notConfigured",
|
|
||||||
"value": "notConfigured",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "enabledOption",
|
|
||||||
"value": "enabled",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "disabledOption",
|
|
||||||
"value": "disabled",
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "simultaneousMultiThreading",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": "notConfigured",
|
|
||||||
"unconfiguredValue": "notConfigured",
|
|
||||||
"policyType": 108,
|
|
||||||
"enabled": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isSettingDescription": false,
|
|
||||||
"showAsSectionHeader": false,
|
|
||||||
"dataType": 8,
|
|
||||||
"category": 136,
|
|
||||||
"nameResourceKey": "builtInHardwareName",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 108,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isSettingDescription": false,
|
|
||||||
"showAsSectionHeader": false,
|
|
||||||
"dataType": 8,
|
|
||||||
"category": 136,
|
|
||||||
"nameResourceKey": "dfciBuiltinHeaderDescName",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 108,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 16,
|
|
||||||
"category": 136,
|
|
||||||
"nameResourceKey": "camerasName",
|
|
||||||
"descriptionResourceKey": "camerasDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "notConfigured",
|
|
||||||
"value": "notConfigured",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "enabledOption",
|
|
||||||
"value": "enabled",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "disabledOption",
|
|
||||||
"value": "disabled",
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "cameras",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": "notConfigured",
|
|
||||||
"unconfiguredValue": "notConfigured",
|
|
||||||
"policyType": 108,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 16,
|
|
||||||
"category": 136,
|
|
||||||
"nameResourceKey": "frontCamerasName",
|
|
||||||
"descriptionResourceKey": "frontCamerasDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "notConfigured",
|
|
||||||
"value": "notConfigured",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "enabledOption",
|
|
||||||
"value": "enabled",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "disabledOption",
|
|
||||||
"value": "disabled",
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "frontCamera",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": "notConfigured",
|
|
||||||
"unconfiguredValue": "notConfigured",
|
|
||||||
"policyType": 108,
|
|
||||||
"enabled": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 16,
|
|
||||||
"category": 136,
|
|
||||||
"nameResourceKey": "rearCamerasName",
|
|
||||||
"descriptionResourceKey": "rearCamerasDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "notConfigured",
|
|
||||||
"value": "notConfigured",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "enabledOption",
|
|
||||||
"value": "enabled",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "disabledOption",
|
|
||||||
"value": "disabled",
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "rearCamera",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": "notConfigured",
|
|
||||||
"unconfiguredValue": "notConfigured",
|
|
||||||
"policyType": 108,
|
|
||||||
"enabled": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 16,
|
|
||||||
"category": 136,
|
|
||||||
"nameResourceKey": "infraredCamerasName",
|
|
||||||
"descriptionResourceKey": "infraredCamerasDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "notConfigured",
|
|
||||||
"value": "notConfigured",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "enabledOption",
|
|
||||||
"value": "enabled",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "disabledOption",
|
|
||||||
"value": "disabled",
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "infraredCamera",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": "notConfigured",
|
|
||||||
"unconfiguredValue": "notConfigured",
|
|
||||||
"policyType": 108,
|
|
||||||
"enabled": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 16,
|
|
||||||
"category": 136,
|
|
||||||
"nameResourceKey": "microphonesAndSpeakersName",
|
|
||||||
"descriptionResourceKey": "microphonesAndSpeakersDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "notConfigured",
|
|
||||||
"value": "notConfigured",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "enabledOption",
|
|
||||||
"value": "enabled",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "disabledOption",
|
|
||||||
"value": "disabled",
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "microphonesAndSpeakers",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": "notConfigured",
|
|
||||||
"unconfiguredValue": "notConfigured",
|
|
||||||
"policyType": 108,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 16,
|
|
||||||
"category": 136,
|
|
||||||
"nameResourceKey": "microphonesName",
|
|
||||||
"descriptionResourceKey": "microphonesDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "notConfigured",
|
|
||||||
"value": "notConfigured",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "enabledOption",
|
|
||||||
"value": "enabled",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "disabledOption",
|
|
||||||
"value": "disabled",
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "microphone",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": "notConfigured",
|
|
||||||
"unconfiguredValue": "notConfigured",
|
|
||||||
"policyType": 108,
|
|
||||||
"enabled": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 16,
|
|
||||||
"category": 136,
|
|
||||||
"nameResourceKey": "radiosName",
|
|
||||||
"descriptionResourceKey": "radiosDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "notConfigured",
|
|
||||||
"value": "notConfigured",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "enabledOption",
|
|
||||||
"value": "enabled",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "disabledOption",
|
|
||||||
"value": "disabled",
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"dataType": 10,
|
|
||||||
"category": 136,
|
|
||||||
"nameResourceKey": "radioWarningInfoBox",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 108,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "radios",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": "notConfigured",
|
|
||||||
"unconfiguredValue": "notConfigured",
|
|
||||||
"policyType": 108,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 16,
|
|
||||||
"category": 136,
|
|
||||||
"nameResourceKey": "bluetoothName",
|
|
||||||
"descriptionResourceKey": "bluetoothDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "notConfigured",
|
|
||||||
"value": "notConfigured",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "enabledOption",
|
|
||||||
"value": "enabled",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "disabledOption",
|
|
||||||
"value": "disabled",
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "bluetooth",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": "notConfigured",
|
|
||||||
"unconfiguredValue": "notConfigured",
|
|
||||||
"policyType": 108,
|
|
||||||
"enabled": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 16,
|
|
||||||
"category": 136,
|
|
||||||
"nameResourceKey": "wwanName",
|
|
||||||
"descriptionResourceKey": "wwanDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "notConfigured",
|
|
||||||
"value": "notConfigured",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "enabledOption",
|
|
||||||
"value": "enabled",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "disabledOption",
|
|
||||||
"value": "disabled",
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "wirelessWideAreaNetwork",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": "notConfigured",
|
|
||||||
"unconfiguredValue": "notConfigured",
|
|
||||||
"policyType": 108,
|
|
||||||
"enabled": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 16,
|
|
||||||
"category": 136,
|
|
||||||
"nameResourceKey": "nfcName",
|
|
||||||
"descriptionResourceKey": "nfcDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "notConfigured",
|
|
||||||
"value": "notConfigured",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "enabledOption",
|
|
||||||
"value": "enabled",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "disabledOption",
|
|
||||||
"value": "disabled",
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "nearFieldCommunication",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": "notConfigured",
|
|
||||||
"unconfiguredValue": "notConfigured",
|
|
||||||
"policyType": 108,
|
|
||||||
"enabled": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 16,
|
|
||||||
"category": 136,
|
|
||||||
"nameResourceKey": "wifiName",
|
|
||||||
"descriptionResourceKey": "wifiDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "notConfigured",
|
|
||||||
"value": "notConfigured",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "enabledOption",
|
|
||||||
"value": "enabled",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "disabledOption",
|
|
||||||
"value": "disabled",
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "wiFi",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": "notConfigured",
|
|
||||||
"unconfiguredValue": "notConfigured",
|
|
||||||
"policyType": 108,
|
|
||||||
"enabled": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isSettingDescription": false,
|
|
||||||
"showAsSectionHeader": false,
|
|
||||||
"dataType": 8,
|
|
||||||
"category": 136,
|
|
||||||
"nameResourceKey": "bootOptionsName",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 108,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 16,
|
|
||||||
"category": 136,
|
|
||||||
"nameResourceKey": "bootFromExternalMediaName",
|
|
||||||
"descriptionResourceKey": "bootFromExternalMediaDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "notConfigured",
|
|
||||||
"value": "notConfigured",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "enabledOption",
|
|
||||||
"value": "enabled",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "disabledOption",
|
|
||||||
"value": "disabled",
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "bootFromExternalMedia",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": "notConfigured",
|
|
||||||
"unconfiguredValue": "notConfigured",
|
|
||||||
"policyType": 108,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 16,
|
|
||||||
"category": 136,
|
|
||||||
"nameResourceKey": "bootFromBuiltInNetworkAdaptersName",
|
|
||||||
"descriptionResourceKey": "bootFromBuiltInNetworkAdaptersDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "notConfigured",
|
|
||||||
"value": "notConfigured",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "enabledOption",
|
|
||||||
"value": "enabled",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "disabledOption",
|
|
||||||
"value": "disabled",
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "bootFromBuiltInNetworkAdapters",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": "notConfigured",
|
|
||||||
"unconfiguredValue": "notConfigured",
|
|
||||||
"policyType": 108,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"isSettingDescription": false,
|
|
||||||
"showAsSectionHeader": false,
|
|
||||||
"dataType": 8,
|
|
||||||
"category": 136,
|
|
||||||
"nameResourceKey": "portName",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 108,
|
|
||||||
"enabled": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 16,
|
|
||||||
"category": 136,
|
|
||||||
"nameResourceKey": "usbTypeAPortName",
|
|
||||||
"descriptionResourceKey": "usbTypeAPortDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "notConfigured",
|
|
||||||
"value": "notConfigured",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "enabledOption",
|
|
||||||
"value": "enabled",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "disabledOption",
|
|
||||||
"value": "disabled",
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "usbTypeAPort",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": "notConfigured",
|
|
||||||
"unconfiguredValue": "notConfigured",
|
|
||||||
"policyType": 108,
|
|
||||||
"enabled": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 16,
|
|
||||||
"category": 136,
|
|
||||||
"nameResourceKey": "usbTypeCPortName",
|
|
||||||
"descriptionResourceKey": "usbTypeCPortDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "notConfigured",
|
|
||||||
"value": "notConfigured",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "enabledOption",
|
|
||||||
"value": "enabled",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "disabledOption",
|
|
||||||
"value": "disabled",
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "usbTypeCPort",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": "notConfigured",
|
|
||||||
"unconfiguredValue": "notConfigured",
|
|
||||||
"policyType": 108,
|
|
||||||
"enabled": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 16,
|
|
||||||
"category": 136,
|
|
||||||
"nameResourceKey": "sdCardName",
|
|
||||||
"descriptionResourceKey": "sdCardDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "notConfigured",
|
|
||||||
"value": "notConfigured",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "enabledOption",
|
|
||||||
"value": "enabled",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "disabledOption",
|
|
||||||
"value": "disabled",
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "sdCard",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": "notConfigured",
|
|
||||||
"unconfiguredValue": "notConfigured",
|
|
||||||
"policyType": 108,
|
|
||||||
"enabled": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 16,
|
|
||||||
"category": 136,
|
|
||||||
"nameResourceKey": "wakeOnLANName",
|
|
||||||
"descriptionResourceKey": "wakeOnLANDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "notConfigured",
|
|
||||||
"value": "notConfigured",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "enabledOption",
|
|
||||||
"value": "enabled",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "disabledOption",
|
|
||||||
"value": "disabled",
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "wakeOnLAN",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": "notConfigured",
|
|
||||||
"unconfiguredValue": "notConfigured",
|
|
||||||
"policyType": 108,
|
|
||||||
"enabled": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 16,
|
|
||||||
"category": 136,
|
|
||||||
"nameResourceKey": "wakeOnPowerName",
|
|
||||||
"descriptionResourceKey": "wakeOnPowerDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "notConfigured",
|
|
||||||
"value": "notConfigured",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "enabledOption",
|
|
||||||
"value": "enabled",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "disabledOption",
|
|
||||||
"value": "disabled",
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "wakeOnPower",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": "notConfigured",
|
|
||||||
"unconfiguredValue": "notConfigured",
|
|
||||||
"policyType": 108,
|
|
||||||
"enabled": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -154,8 +154,8 @@
|
|||||||
{
|
{
|
||||||
"dataType": 16,
|
"dataType": 16,
|
||||||
"category": 39,
|
"category": 39,
|
||||||
"nameResourceKey": "safetyNetAttestationOptionsName",
|
"nameResourceKey": "playIntegrityVerdictOptionsName",
|
||||||
"descriptionResourceKey": "safetyNetAttestationOptionsDescription",
|
"descriptionResourceKey": "playIntegrityVerdictOptionsDescription",
|
||||||
"childSettings": [
|
"childSettings": [
|
||||||
|
|
||||||
],
|
],
|
||||||
@@ -166,17 +166,17 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "androidSafetyNetbasicIntegrity",
|
"nameResourceKey": "androidPlayIntegrityVerdictBasicIntegrity",
|
||||||
"value": "basicIntegrity",
|
"value": "basicIntegrity",
|
||||||
"enabled": true
|
"enabled": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "androidSafetyNetBasicIntegrityAndCertified",
|
"nameResourceKey": "androidPlayIntegrityVerdictBasicAndDeviceIntegrity",
|
||||||
"value": "basicIntegrityAndCertified",
|
"value": "basicIntegrityAndCertified",
|
||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"entityKey": "androidSafetyNetAttestationOptions",
|
"entityKey": "androidPlayIntegrityVerdictOptions",
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"defaultValue": "notConfigured",
|
"defaultValue": "notConfigured",
|
||||||
"unconfiguredValue": "notConfigured",
|
"unconfiguredValue": "notConfigured",
|
||||||
|
|||||||
@@ -52,8 +52,8 @@
|
|||||||
{
|
{
|
||||||
"dataType": 16,
|
"dataType": 16,
|
||||||
"category": 39,
|
"category": 39,
|
||||||
"nameResourceKey": "safetyNetAttestationOptionsName",
|
"nameResourceKey": "playIntegrityVerdictOptionsName",
|
||||||
"descriptionResourceKey": "safetyNetAttestationOptionsDescription",
|
"descriptionResourceKey": "playIntegrityVerdictOptionsDescription",
|
||||||
"childSettings": [
|
"childSettings": [
|
||||||
|
|
||||||
],
|
],
|
||||||
@@ -64,17 +64,17 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "androidSafetyNetbasicIntegrity",
|
"nameResourceKey": "androidPlayIntegrityVerdictBasicIntegrity",
|
||||||
"value": "basicIntegrity",
|
"value": "basicIntegrity",
|
||||||
"enabled": true
|
"enabled": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "androidSafetyNetBasicIntegrityAndCertified",
|
"nameResourceKey": "androidPlayIntegrityVerdictBasicAndDeviceIntegrity",
|
||||||
"value": "basicIntegrityAndCertified",
|
"value": "basicIntegrityAndCertified",
|
||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"entityKey": "androidSafetyNetAttestationOptions",
|
"entityKey": "androidPlayIntegrityVerdictOptions",
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"defaultValue": "notConfigured",
|
"defaultValue": "notConfigured",
|
||||||
"unconfiguredValue": "notConfigured",
|
"unconfiguredValue": "notConfigured",
|
||||||
|
|||||||
@@ -103,8 +103,8 @@
|
|||||||
{
|
{
|
||||||
"dataType": 16,
|
"dataType": 16,
|
||||||
"category": 39,
|
"category": 39,
|
||||||
"nameResourceKey": "safetyNetAttestationOptionsName",
|
"nameResourceKey": "playIntegrityVerdictOptionsName",
|
||||||
"descriptionResourceKey": "safetyNetAttestationOptionsDescription",
|
"descriptionResourceKey": "playIntegrityVerdictOptionsDescription",
|
||||||
"childSettings": [
|
"childSettings": [
|
||||||
|
|
||||||
],
|
],
|
||||||
@@ -115,25 +115,25 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "androidSafetyNetbasicIntegrity",
|
"nameResourceKey": "androidPlayIntegrityVerdictBasicIntegrity",
|
||||||
"value": "basicIntegrity",
|
"value": "basicIntegrity",
|
||||||
"children": [
|
"children": [
|
||||||
{
|
{
|
||||||
"dataType": 16,
|
"dataType": 16,
|
||||||
"category": 39,
|
"category": 39,
|
||||||
"nameResourceKey": "requiredAndroidSafetyNetEvaluationTypeName",
|
"nameResourceKey": "requiredAndroidPlayIntegrityVerdictEvaluationTypeName",
|
||||||
"descriptionResourceKey": "requiredAndroidSafetyNetEvaluationTypeDescription",
|
"descriptionResourceKey": "requiredAndroidPlayIntegrityVerdictEvaluationTypeDescription",
|
||||||
"childSettings": [
|
"childSettings": [
|
||||||
|
|
||||||
],
|
],
|
||||||
"options": [
|
"options": [
|
||||||
{
|
{
|
||||||
"nameResourceKey": "requiredAndroidSafetyNetEvaluationTypeBasic",
|
"nameResourceKey": "requiredAndroidPlayIntegrityVerdictEvaluationTypeBasic",
|
||||||
"value": "basic",
|
"value": "basic",
|
||||||
"enabled": true
|
"enabled": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "requiredAndroidSafetyNetEvaluationTypeHardwareBacked",
|
"nameResourceKey": "requiredAndroidPlayIntegrityVerdictEvaluationTypeHardwareBacked",
|
||||||
"value": "hardwareBacked",
|
"value": "hardwareBacked",
|
||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
@@ -149,25 +149,25 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "androidSafetyNetBasicIntegrityAndCertified",
|
"nameResourceKey": "androidPlayIntegrityVerdictBasicAndDeviceIntegrity",
|
||||||
"value": "basicIntegrityAndCertified",
|
"value": "basicIntegrityAndCertified",
|
||||||
"children": [
|
"children": [
|
||||||
{
|
{
|
||||||
"dataType": 16,
|
"dataType": 16,
|
||||||
"category": 39,
|
"category": 39,
|
||||||
"nameResourceKey": "requiredAndroidSafetyNetEvaluationTypeName",
|
"nameResourceKey": "requiredAndroidPlayIntegrityVerdictEvaluationTypeName",
|
||||||
"descriptionResourceKey": "requiredAndroidSafetyNetEvaluationTypeDescription",
|
"descriptionResourceKey": "requiredAndroidPlayIntegrityVerdictEvaluationTypeDescription",
|
||||||
"childSettings": [
|
"childSettings": [
|
||||||
|
|
||||||
],
|
],
|
||||||
"options": [
|
"options": [
|
||||||
{
|
{
|
||||||
"nameResourceKey": "requiredAndroidSafetyNetEvaluationTypeBasic",
|
"nameResourceKey": "requiredAndroidPlayIntegrityVerdictEvaluationTypeBasic",
|
||||||
"value": "basic",
|
"value": "basic",
|
||||||
"enabled": true
|
"enabled": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "requiredAndroidSafetyNetEvaluationTypeHardwareBacked",
|
"nameResourceKey": "requiredAndroidPlayIntegrityVerdictEvaluationTypeHardwareBacked",
|
||||||
"value": "hardwareBacked",
|
"value": "hardwareBacked",
|
||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
@@ -183,7 +183,7 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"entityKey": "androidSafetyNetAttestationOptions",
|
"entityKey": "androidPlayIntegrityVerdictOptions",
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"defaultValue": "notConfigured",
|
"defaultValue": "notConfigured",
|
||||||
"unconfiguredValue": "notConfigured",
|
"unconfiguredValue": "notConfigured",
|
||||||
|
|||||||
@@ -1,16 +1,32 @@
|
|||||||
{
|
{
|
||||||
"devicehealth_compliancewindows10": {
|
"devicehealth_compliancewindows10": [
|
||||||
|
{
|
||||||
"isSettingDescription": false,
|
"isSettingDescription": false,
|
||||||
"showAsSectionHeader": false,
|
"showAsSectionHeader": false,
|
||||||
"dataType": 8,
|
"dataType": 8,
|
||||||
"category": 39,
|
"category": 39,
|
||||||
"nameResourceKey": "complianceWindowsDeviceHealthAttestationHeader",
|
"nameResourceKey": "complianceWindowsDeviceHealthAttestationHeader",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 35,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"isSettingDescription": false,
|
||||||
|
"showAsSectionHeader": false,
|
||||||
|
"dataType": 8,
|
||||||
|
"category": 39,
|
||||||
|
"nameResourceKey": "complianceWindows10DeviceHealthAttestationHeader",
|
||||||
"childSettings": [
|
"childSettings": [
|
||||||
{
|
{
|
||||||
"dataType": 0,
|
"dataType": 0,
|
||||||
"category": 39,
|
"category": 39,
|
||||||
"nameResourceKey": "bitLockerEnabledName",
|
"nameResourceKey": "bitLockerEnabledName",
|
||||||
"descriptionResourceKey": "bitLockerEnabledDescription",
|
|
||||||
"childSettings": [
|
"childSettings": [
|
||||||
|
|
||||||
],
|
],
|
||||||
@@ -27,7 +43,6 @@
|
|||||||
"dataType": 0,
|
"dataType": 0,
|
||||||
"category": 39,
|
"category": 39,
|
||||||
"nameResourceKey": "secureBootEnabledName",
|
"nameResourceKey": "secureBootEnabledName",
|
||||||
"descriptionResourceKey": "secureBootEnabledDescription",
|
|
||||||
"childSettings": [
|
"childSettings": [
|
||||||
|
|
||||||
],
|
],
|
||||||
@@ -44,7 +59,6 @@
|
|||||||
"dataType": 0,
|
"dataType": 0,
|
||||||
"category": 39,
|
"category": 39,
|
||||||
"nameResourceKey": "codeIntegrityEnabledName",
|
"nameResourceKey": "codeIntegrityEnabledName",
|
||||||
"descriptionResourceKey": "codeIntegrityEnabledDescription",
|
|
||||||
"childSettings": [
|
"childSettings": [
|
||||||
|
|
||||||
],
|
],
|
||||||
@@ -64,5 +78,101 @@
|
|||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"policyType": 35,
|
"policyType": 35,
|
||||||
"enabled": true
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"isSettingDescription": false,
|
||||||
|
"showAsSectionHeader": false,
|
||||||
|
"dataType": 8,
|
||||||
|
"category": 39,
|
||||||
|
"nameResourceKey": "complianceWindows11DeviceHealthAttestationHeader",
|
||||||
|
"childSettings": [
|
||||||
|
{
|
||||||
|
"dataType": 0,
|
||||||
|
"category": 39,
|
||||||
|
"nameResourceKey": "earlyLaunchAntiMalwareDriverEnabledName",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "earlyLaunchAntiMalwareDriverEnabled",
|
||||||
|
"booleanActions": 1,
|
||||||
|
"defaultValue": false,
|
||||||
|
"policyType": 35,
|
||||||
|
"enabled": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 0,
|
||||||
|
"category": 39,
|
||||||
|
"nameResourceKey": "firmwareProtectionEnabledName",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "firmwareProtectionEnabled",
|
||||||
|
"booleanActions": 1,
|
||||||
|
"defaultValue": false,
|
||||||
|
"policyType": 35,
|
||||||
|
"enabled": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 0,
|
||||||
|
"category": 39,
|
||||||
|
"nameResourceKey": "hvciEnabledName",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "memoryIntegrityEnabled",
|
||||||
|
"booleanActions": 1,
|
||||||
|
"defaultValue": false,
|
||||||
|
"policyType": 35,
|
||||||
|
"enabled": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 0,
|
||||||
|
"category": 39,
|
||||||
|
"nameResourceKey": "memoryAccessProtectionEnabledName",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "kernelDmaProtectionEnabled",
|
||||||
|
"booleanActions": 1,
|
||||||
|
"defaultValue": false,
|
||||||
|
"policyType": 35,
|
||||||
|
"enabled": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 0,
|
||||||
|
"category": 39,
|
||||||
|
"nameResourceKey": "virtualizationBasedSecurityEnabledName",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "virtualizationBasedSecurityEnabled",
|
||||||
|
"booleanActions": 1,
|
||||||
|
"defaultValue": false,
|
||||||
|
"policyType": 35,
|
||||||
|
"enabled": false
|
||||||
}
|
}
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 35,
|
||||||
|
"enabled": false
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1078,6 +1078,40 @@
|
|||||||
"policyType": 2,
|
"policyType": 2,
|
||||||
"enabled": true
|
"enabled": true
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"isSettingDescription": false,
|
||||||
|
"showAsSectionHeader": true,
|
||||||
|
"dataType": 8,
|
||||||
|
"category": 44,
|
||||||
|
"nameResourceKey": "fullyManagedAndCorporateOwnedWorkProfileAndroidEnrollmentTypesHeaderName",
|
||||||
|
"descriptionResourceKey": "fullyManagedAndCorporateOwnedWorkProfileAndroidEnrollmentTypesHeaderDescription",
|
||||||
|
"childSettings": [
|
||||||
|
{
|
||||||
|
"dataType": 0,
|
||||||
|
"category": 44,
|
||||||
|
"nameResourceKey": "androidDeviceOwnerLocateDeviceName",
|
||||||
|
"descriptionResourceKey": "androidDeviceOwnerLocateDeviceLostModeEnabledDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "locateDeviceLostModeEnabled",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": false,
|
||||||
|
"unconfiguredValue": false,
|
||||||
|
"policyType": 2,
|
||||||
|
"enabled": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 2,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"isSettingDescription": false,
|
"isSettingDescription": false,
|
||||||
"showAsSectionHeader": true,
|
"showAsSectionHeader": true,
|
||||||
@@ -1200,6 +1234,24 @@
|
|||||||
"defaultValue": false,
|
"defaultValue": false,
|
||||||
"policyType": 2,
|
"policyType": 2,
|
||||||
"enabled": false
|
"enabled": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 0,
|
||||||
|
"category": 44,
|
||||||
|
"nameResourceKey": "androidDeviceOwnerLocateDeviceName",
|
||||||
|
"descriptionResourceKey": "androidDeviceOwnerLocateDeviceUserlessDisabledDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "locateDeviceUserlessDisabled",
|
||||||
|
"booleanActions": 3,
|
||||||
|
"defaultValue": false,
|
||||||
|
"unconfiguredValue": false,
|
||||||
|
"policyType": 2,
|
||||||
|
"enabled": false
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"options": [
|
"options": [
|
||||||
|
|||||||
@@ -173,6 +173,110 @@
|
|||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"policyType": 9,
|
"policyType": 9,
|
||||||
"enabled": true
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 44,
|
||||||
|
"nameResourceKey": "wiFiPolicyProxySettingsName",
|
||||||
|
"descriptionResourceKey": "wiFiPolicyProxySettingsDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "noneOption",
|
||||||
|
"value": "none",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "manualOption",
|
||||||
|
"value": "manual",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"dataType": 20,
|
||||||
|
"category": 44,
|
||||||
|
"nameResourceKey": "proxyServerAddressName",
|
||||||
|
"descriptionResourceKey": "proxyServerAddressDescription",
|
||||||
|
"emptyValueResourceKey": "proxyAddressExample",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "proxyManualAddress",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 9,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 14,
|
||||||
|
"category": 44,
|
||||||
|
"nameResourceKey": "portNumberName",
|
||||||
|
"descriptionResourceKey": "portNumberDescription",
|
||||||
|
"emptyValueResourceKey": "proxyPortExample",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "proxyManualPort",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 9,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 12,
|
||||||
|
"category": 44,
|
||||||
|
"nameResourceKey": "proxyExclusionListName",
|
||||||
|
"descriptionResourceKey": "proxyExclusionListDescription",
|
||||||
|
"emptyValueResourceKey": "proxyExclusionListExample",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "proxyExclusionList",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 9,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "automaticOption",
|
||||||
|
"value": "automatic",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"dataType": 20,
|
||||||
|
"category": 44,
|
||||||
|
"nameResourceKey": "proxyServerURLName",
|
||||||
|
"descriptionResourceKey": "proxyServerURLDescription",
|
||||||
|
"emptyValueResourceKey": "proxyUrlExample",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "proxyAutomaticConfigurationUrl",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 9,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "proxySettings",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "none",
|
||||||
|
"unconfiguredValue": "noneOption",
|
||||||
|
"policyType": 9,
|
||||||
|
"enabled": true
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"enabled": true
|
"enabled": true
|
||||||
@@ -1187,6 +1291,110 @@
|
|||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"policyType": 9,
|
"policyType": 9,
|
||||||
"enabled": true
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 44,
|
||||||
|
"nameResourceKey": "wiFiPolicyProxySettingsName",
|
||||||
|
"descriptionResourceKey": "wiFiPolicyProxySettingsDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "noneOption",
|
||||||
|
"value": "none",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "manualOption",
|
||||||
|
"value": "manual",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"dataType": 20,
|
||||||
|
"category": 44,
|
||||||
|
"nameResourceKey": "proxyServerAddressName",
|
||||||
|
"descriptionResourceKey": "proxyServerAddressDescription",
|
||||||
|
"emptyValueResourceKey": "proxyAddressExample",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "proxyManualAddress",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 9,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 14,
|
||||||
|
"category": 44,
|
||||||
|
"nameResourceKey": "portNumberName",
|
||||||
|
"descriptionResourceKey": "portNumberDescription",
|
||||||
|
"emptyValueResourceKey": "proxyPortExample",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "proxyManualPort",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 9,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 12,
|
||||||
|
"category": 44,
|
||||||
|
"nameResourceKey": "proxyExclusionListName",
|
||||||
|
"descriptionResourceKey": "proxyExclusionListDescription",
|
||||||
|
"emptyValueResourceKey": "proxyExclusionListExample",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "proxyExclusionList",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 9,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "automaticOption",
|
||||||
|
"value": "automatic",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"dataType": 20,
|
||||||
|
"category": 44,
|
||||||
|
"nameResourceKey": "proxyServerURLName",
|
||||||
|
"descriptionResourceKey": "proxyServerURLDescription",
|
||||||
|
"emptyValueResourceKey": "proxyUrlExample",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "proxyAutomaticConfigurationUrl",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 9,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "proxySettings",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "none",
|
||||||
|
"unconfiguredValue": "noneOption",
|
||||||
|
"policyType": 9,
|
||||||
|
"enabled": true
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"enabled": true
|
"enabled": true
|
||||||
|
|||||||
@@ -617,6 +617,23 @@
|
|||||||
"defaultValue": false,
|
"defaultValue": false,
|
||||||
"policyType": 61,
|
"policyType": 61,
|
||||||
"enabled": true
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 0,
|
||||||
|
"category": 44,
|
||||||
|
"nameResourceKey": "allowActivationLockWhenSupervisedName",
|
||||||
|
"descriptionResourceKey": "allowActivationLockWhenSupervisedDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "activationLockWhenSupervisedAllowed",
|
||||||
|
"booleanActions": 9,
|
||||||
|
"defaultValue": false,
|
||||||
|
"policyType": 61,
|
||||||
|
"enabled": true
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"options": [
|
"options": [
|
||||||
|
|||||||
@@ -23,6 +23,23 @@
|
|||||||
"defaultValue": true,
|
"defaultValue": true,
|
||||||
"policyType": 2,
|
"policyType": 2,
|
||||||
"enabled": true
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 0,
|
||||||
|
"category": 45,
|
||||||
|
"nameResourceKey": "securityCommonCriteriaModeName",
|
||||||
|
"descriptionResourceKey": "securityCommonCriteriaModeDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "securityCommonCriteriaModeEnabled",
|
||||||
|
"booleanActions": 1,
|
||||||
|
"defaultValue": false,
|
||||||
|
"policyType": 2,
|
||||||
|
"enabled": true
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"options": [
|
"options": [
|
||||||
|
|||||||
@@ -33,20 +33,47 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"dataType": 14,
|
"dataType": 10,
|
||||||
"category": 90,
|
"category": 90,
|
||||||
"nameResourceKey": "minimumPasswordLengthName",
|
"nameResourceKey": "androidTwelveDeprecationInfoBox",
|
||||||
"descriptionResourceKey": "minimumPasswordLengthDescription",
|
|
||||||
"emptyValueResourceKey": "minimumPasswordLengthEmptyValueKeyFourToSixteen",
|
|
||||||
"childSettings": [
|
"childSettings": [
|
||||||
|
|
||||||
],
|
],
|
||||||
"options": [
|
"options": [
|
||||||
|
|
||||||
],
|
],
|
||||||
"entityKey": "passwordMinimumLength",
|
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"defaultValue": 4,
|
"policyType": 13,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"isSettingDescription": false,
|
||||||
|
"showAsSectionHeader": true,
|
||||||
|
"dataType": 8,
|
||||||
|
"category": 90,
|
||||||
|
"nameResourceKey": "allAndroidVersionsPasswordHeader",
|
||||||
|
"childSettings": [
|
||||||
|
{
|
||||||
|
"isSettingDescription": false,
|
||||||
|
"showAsSectionHeader": false,
|
||||||
|
"dataType": 8,
|
||||||
|
"category": 90,
|
||||||
|
"nameResourceKey": "allAndroidVersionsPasswordHeaderDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 13,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
"policyType": 13,
|
"policyType": 13,
|
||||||
"enabled": true
|
"enabled": true
|
||||||
},
|
},
|
||||||
@@ -153,64 +180,6 @@
|
|||||||
"policyType": 13,
|
"policyType": 13,
|
||||||
"enabled": true
|
"enabled": true
|
||||||
},
|
},
|
||||||
{
|
|
||||||
"dataType": 16,
|
|
||||||
"category": 90,
|
|
||||||
"nameResourceKey": "requiredPasswordTypeName",
|
|
||||||
"descriptionResourceKey": "requiredPasswordTypeDescription",
|
|
||||||
"emptyValueResourceKey": "passwordExpirationInDaysEmptyValueKey",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "deviceDefault",
|
|
||||||
"value": "deviceDefault",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "lowSecurityBiometricOption",
|
|
||||||
"value": "lowSecurityBiometric",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "required",
|
|
||||||
"value": "required",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "atLeastNumericOption",
|
|
||||||
"value": "atLeastNumeric",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "numericComplex",
|
|
||||||
"value": "numericComplex",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "atLeastAlphabeticOption",
|
|
||||||
"value": "atLeastAlphabetic",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "atLeastAlphanumericOption",
|
|
||||||
"value": "atLeastAlphanumeric",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "atLeastAlphanumericWithSymbolsOption",
|
|
||||||
"value": "alphanumericWithSymbols",
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "passwordRequiredType",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": "atLeastNumeric",
|
|
||||||
"unconfiguredValue": "atLeastNumeric",
|
|
||||||
"policyType": 13,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"dataType": 14,
|
"dataType": 14,
|
||||||
"category": 90,
|
"category": 90,
|
||||||
@@ -296,6 +265,181 @@
|
|||||||
"defaultValue": false,
|
"defaultValue": false,
|
||||||
"policyType": 13,
|
"policyType": 13,
|
||||||
"enabled": true
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"isSettingDescription": false,
|
||||||
|
"showAsSectionHeader": true,
|
||||||
|
"dataType": 8,
|
||||||
|
"category": 90,
|
||||||
|
"nameResourceKey": "androidTwelveAndAbovePasswordHeader",
|
||||||
|
"childSettings": [
|
||||||
|
{
|
||||||
|
"isSettingDescription": false,
|
||||||
|
"showAsSectionHeader": false,
|
||||||
|
"dataType": 8,
|
||||||
|
"category": 90,
|
||||||
|
"nameResourceKey": "androidTwelveAndAbovePasswordHeaderDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 13,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 13,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 90,
|
||||||
|
"nameResourceKey": "requiredPasswordComplexityName",
|
||||||
|
"descriptionResourceKey": "requiredPasswordComplexityDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "none",
|
||||||
|
"value": "none",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "low",
|
||||||
|
"value": "low",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "medium",
|
||||||
|
"value": "medium",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "high",
|
||||||
|
"value": "high",
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "requiredPasswordComplexity",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "none",
|
||||||
|
"unconfiguredValue": "none",
|
||||||
|
"policyType": 13,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"isSettingDescription": false,
|
||||||
|
"showAsSectionHeader": true,
|
||||||
|
"dataType": 8,
|
||||||
|
"category": 90,
|
||||||
|
"nameResourceKey": "androidElevenAndBelowPasswordHeader",
|
||||||
|
"childSettings": [
|
||||||
|
{
|
||||||
|
"isSettingDescription": false,
|
||||||
|
"showAsSectionHeader": false,
|
||||||
|
"dataType": 8,
|
||||||
|
"category": 90,
|
||||||
|
"nameResourceKey": "androidElevenAndBelowPasswordHeaderDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 13,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 13,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 90,
|
||||||
|
"nameResourceKey": "requiredPasswordTypeName",
|
||||||
|
"descriptionResourceKey": "requiredPasswordTypeDescription",
|
||||||
|
"emptyValueResourceKey": "passwordExpirationInDaysEmptyValueKey",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "deviceDefault",
|
||||||
|
"value": "deviceDefault",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "lowSecurityBiometricOption",
|
||||||
|
"value": "lowSecurityBiometric",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "required",
|
||||||
|
"value": "required",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "atLeastNumericOption",
|
||||||
|
"value": "atLeastNumeric",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "numericComplex",
|
||||||
|
"value": "numericComplex",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "atLeastAlphabeticOption",
|
||||||
|
"value": "atLeastAlphabetic",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "atLeastAlphanumericOption",
|
||||||
|
"value": "atLeastAlphanumeric",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "atLeastAlphanumericWithSymbolsOption",
|
||||||
|
"value": "alphanumericWithSymbols",
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "passwordRequiredType",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "atLeastNumeric",
|
||||||
|
"unconfiguredValue": "atLeastNumeric",
|
||||||
|
"policyType": 13,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 14,
|
||||||
|
"category": 90,
|
||||||
|
"nameResourceKey": "minimumPasswordLengthName",
|
||||||
|
"descriptionResourceKey": "minimumPasswordLengthDescription",
|
||||||
|
"emptyValueResourceKey": "minimumPasswordLengthEmptyValueKeyFourToSixteen",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "passwordMinimumLength",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": 4,
|
||||||
|
"policyType": 13,
|
||||||
|
"enabled": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -448,6 +448,12 @@
|
|||||||
"displayText": "2048",
|
"displayText": "2048",
|
||||||
"value": "size2048",
|
"value": "size2048",
|
||||||
"enabled": true
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "",
|
||||||
|
"displayText": "4096",
|
||||||
|
"value": "size4096",
|
||||||
|
"enabled": false
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"entityKey": "keySize",
|
"entityKey": "keySize",
|
||||||
|
|||||||
@@ -418,6 +418,12 @@
|
|||||||
"displayText": "2048",
|
"displayText": "2048",
|
||||||
"value": "size2048",
|
"value": "size2048",
|
||||||
"enabled": true
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "",
|
||||||
|
"displayText": "4096",
|
||||||
|
"value": "size4096",
|
||||||
|
"enabled": false
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"entityKey": "keySize",
|
"entityKey": "keySize",
|
||||||
|
|||||||
@@ -195,6 +195,12 @@
|
|||||||
"displayText": "2048",
|
"displayText": "2048",
|
||||||
"value": "size2048",
|
"value": "size2048",
|
||||||
"enabled": true
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "",
|
||||||
|
"displayText": "4096",
|
||||||
|
"value": "size4096",
|
||||||
|
"enabled": false
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"entityKey": "keySize",
|
"entityKey": "keySize",
|
||||||
|
|||||||
@@ -418,6 +418,12 @@
|
|||||||
"displayText": "2048",
|
"displayText": "2048",
|
||||||
"value": "size2048",
|
"value": "size2048",
|
||||||
"enabled": true
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "",
|
||||||
|
"displayText": "4096",
|
||||||
|
"value": "size4096",
|
||||||
|
"enabled": false
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"entityKey": "keySize",
|
"entityKey": "keySize",
|
||||||
|
|||||||
@@ -457,6 +457,12 @@
|
|||||||
"displayText": "2048",
|
"displayText": "2048",
|
||||||
"value": "size2048",
|
"value": "size2048",
|
||||||
"enabled": true
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "",
|
||||||
|
"displayText": "4096",
|
||||||
|
"value": "size4096",
|
||||||
|
"enabled": false
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"entityKey": "keySize",
|
"entityKey": "keySize",
|
||||||
|
|||||||
@@ -457,6 +457,12 @@
|
|||||||
"displayText": "2048",
|
"displayText": "2048",
|
||||||
"value": "size2048",
|
"value": "size2048",
|
||||||
"enabled": true
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "",
|
||||||
|
"displayText": "4096",
|
||||||
|
"value": "size4096",
|
||||||
|
"enabled": false
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"entityKey": "keySize",
|
"entityKey": "keySize",
|
||||||
|
|||||||
@@ -234,6 +234,12 @@
|
|||||||
"displayText": "2048",
|
"displayText": "2048",
|
||||||
"value": "size2048",
|
"value": "size2048",
|
||||||
"enabled": true
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "",
|
||||||
|
"displayText": "4096",
|
||||||
|
"value": "size4096",
|
||||||
|
"enabled": false
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"entityKey": "keySize",
|
"entityKey": "keySize",
|
||||||
|
|||||||
@@ -14,7 +14,7 @@
|
|||||||
],
|
],
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"policyType": 69,
|
"policyType": 69,
|
||||||
"enabled": false
|
"enabled": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"isSettingDescription": false,
|
"isSettingDescription": false,
|
||||||
@@ -30,7 +30,7 @@
|
|||||||
],
|
],
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"policyType": 69,
|
"policyType": 69,
|
||||||
"enabled": false
|
"enabled": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"isSettingDescription": false,
|
"isSettingDescription": false,
|
||||||
@@ -46,7 +46,7 @@
|
|||||||
],
|
],
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"policyType": 69,
|
"policyType": 69,
|
||||||
"enabled": false
|
"enabled": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"isSettingDescription": false,
|
"isSettingDescription": false,
|
||||||
@@ -62,7 +62,7 @@
|
|||||||
],
|
],
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"policyType": 69,
|
"policyType": 69,
|
||||||
"enabled": false
|
"enabled": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"dataType": 16,
|
"dataType": 16,
|
||||||
@@ -87,7 +87,7 @@
|
|||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"defaultValue": "notConfigured",
|
"defaultValue": "notConfigured",
|
||||||
"policyType": 69,
|
"policyType": 69,
|
||||||
"enabled": false
|
"enabled": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"dataType": 16,
|
"dataType": 16,
|
||||||
@@ -112,7 +112,7 @@
|
|||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"defaultValue": "notConfigured",
|
"defaultValue": "notConfigured",
|
||||||
"policyType": 69,
|
"policyType": 69,
|
||||||
"enabled": false
|
"enabled": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"dataType": 16,
|
"dataType": 16,
|
||||||
@@ -137,7 +137,7 @@
|
|||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"defaultValue": "notConfigured",
|
"defaultValue": "notConfigured",
|
||||||
"policyType": 69,
|
"policyType": 69,
|
||||||
"enabled": false
|
"enabled": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"dataType": 16,
|
"dataType": 16,
|
||||||
@@ -162,7 +162,7 @@
|
|||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"defaultValue": "notConfigured",
|
"defaultValue": "notConfigured",
|
||||||
"policyType": 69,
|
"policyType": 69,
|
||||||
"enabled": false
|
"enabled": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"isSettingDescription": false,
|
"isSettingDescription": false,
|
||||||
@@ -178,7 +178,7 @@
|
|||||||
],
|
],
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"policyType": 69,
|
"policyType": 69,
|
||||||
"enabled": false
|
"enabled": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"isSettingDescription": false,
|
"isSettingDescription": false,
|
||||||
@@ -194,7 +194,7 @@
|
|||||||
],
|
],
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"policyType": 69,
|
"policyType": 69,
|
||||||
"enabled": false
|
"enabled": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"dataType": 16,
|
"dataType": 16,
|
||||||
@@ -226,7 +226,7 @@
|
|||||||
],
|
],
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"policyType": 69,
|
"policyType": 69,
|
||||||
"enabled": false
|
"enabled": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"dataType": 16,
|
"dataType": 16,
|
||||||
@@ -432,7 +432,7 @@
|
|||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"defaultValue": 0,
|
"defaultValue": 0,
|
||||||
"policyType": 69,
|
"policyType": 69,
|
||||||
"enabled": false
|
"enabled": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"columns": [
|
"columns": [
|
||||||
@@ -484,7 +484,7 @@
|
|||||||
"entityKey": "startDay",
|
"entityKey": "startDay",
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"policyType": 69,
|
"policyType": 69,
|
||||||
"enabled": false
|
"enabled": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -620,7 +620,7 @@
|
|||||||
"entityKey": "startTime",
|
"entityKey": "startTime",
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"policyType": 69,
|
"policyType": 69,
|
||||||
"enabled": false
|
"enabled": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -671,7 +671,7 @@
|
|||||||
"entityKey": "endDay",
|
"entityKey": "endDay",
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"policyType": 69,
|
"policyType": 69,
|
||||||
"enabled": false
|
"enabled": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -808,7 +808,7 @@
|
|||||||
"entityKey": "endTime",
|
"entityKey": "endTime",
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"policyType": 69,
|
"policyType": 69,
|
||||||
"enabled": false
|
"enabled": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -825,7 +825,7 @@
|
|||||||
"entityKey": "customUpdateTimeWindows",
|
"entityKey": "customUpdateTimeWindows",
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"policyType": 69,
|
"policyType": 69,
|
||||||
"enabled": false
|
"enabled": true
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"enabled": true
|
"enabled": true
|
||||||
@@ -846,7 +846,7 @@
|
|||||||
],
|
],
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"policyType": 69,
|
"policyType": 69,
|
||||||
"enabled": false
|
"enabled": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"dataType": 16,
|
"dataType": 16,
|
||||||
@@ -1052,7 +1052,7 @@
|
|||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"defaultValue": 0,
|
"defaultValue": 0,
|
||||||
"policyType": 69,
|
"policyType": 69,
|
||||||
"enabled": false
|
"enabled": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"columns": [
|
"columns": [
|
||||||
@@ -1104,7 +1104,7 @@
|
|||||||
"entityKey": "startDay",
|
"entityKey": "startDay",
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"policyType": 69,
|
"policyType": 69,
|
||||||
"enabled": false
|
"enabled": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1240,7 +1240,7 @@
|
|||||||
"entityKey": "startTime",
|
"entityKey": "startTime",
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"policyType": 69,
|
"policyType": 69,
|
||||||
"enabled": false
|
"enabled": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1291,7 +1291,7 @@
|
|||||||
"entityKey": "endDay",
|
"entityKey": "endDay",
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"policyType": 69,
|
"policyType": 69,
|
||||||
"enabled": false
|
"enabled": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -1428,7 +1428,7 @@
|
|||||||
"entityKey": "endTime",
|
"entityKey": "endTime",
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"policyType": 69,
|
"policyType": 69,
|
||||||
"enabled": false
|
"enabled": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
@@ -1445,7 +1445,7 @@
|
|||||||
"entityKey": "customUpdateTimeWindows",
|
"entityKey": "customUpdateTimeWindows",
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"policyType": 69,
|
"policyType": 69,
|
||||||
"enabled": false
|
"enabled": true
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"enabled": true
|
"enabled": true
|
||||||
@@ -1456,7 +1456,7 @@
|
|||||||
"defaultValue": "alwaysUpdate",
|
"defaultValue": "alwaysUpdate",
|
||||||
"unconfiguredValue": "alwaysUpdate",
|
"unconfiguredValue": "alwaysUpdate",
|
||||||
"policyType": 69,
|
"policyType": 69,
|
||||||
"enabled": false
|
"enabled": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,451 +1,5 @@
|
|||||||
{
|
{
|
||||||
"systemsecurity_complianceandroidforwork": [
|
"systemsecurity_complianceandroidforwork": [
|
||||||
{
|
|
||||||
"isSettingDescription": false,
|
|
||||||
"showAsSectionHeader": false,
|
|
||||||
"dataType": 8,
|
|
||||||
"category": 113,
|
|
||||||
"nameResourceKey": "androidPasswordHeader",
|
|
||||||
"childSettings": [
|
|
||||||
{
|
|
||||||
"isSettingDescription": false,
|
|
||||||
"showAsSectionHeader": false,
|
|
||||||
"dataType": 8,
|
|
||||||
"category": 113,
|
|
||||||
"nameResourceKey": "learnMore",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 30,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 0,
|
|
||||||
"category": 113,
|
|
||||||
"nameResourceKey": "compliancePasswordRequirementName",
|
|
||||||
"descriptionResourceKey": "compliancePasswordRequirementDescription",
|
|
||||||
"childSettings": [
|
|
||||||
{
|
|
||||||
"dataType": 16,
|
|
||||||
"category": 113,
|
|
||||||
"nameResourceKey": "requiredPasswordTypeName",
|
|
||||||
"descriptionResourceKey": "complianceRequiredPasswordTypeDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "selectTypeOption",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "deviceDefault",
|
|
||||||
"value": "deviceDefault",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "lowSecurityBiometricOption",
|
|
||||||
"value": "lowSecurityBiometric",
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"dataType": 14,
|
|
||||||
"category": 113,
|
|
||||||
"nameResourceKey": "passwordExpirationName",
|
|
||||||
"descriptionResourceKey": "passwordExpirationDescription",
|
|
||||||
"emptyValueResourceKey": "passwordExpirationInDaysEmptyValueOneYearKey",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "passwordExpirationDays",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 30,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "atLeastNumericOption",
|
|
||||||
"value": "numeric",
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"dataType": 14,
|
|
||||||
"category": 113,
|
|
||||||
"nameResourceKey": "complianceMinimumPasswordLengthName",
|
|
||||||
"descriptionResourceKey": "passwordMinimumLengthDescription",
|
|
||||||
"emptyValueResourceKey": "minimumPasswordLengthEmptyValueKeyFourToSixteen",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "passwordMinimumLength",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 30,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 14,
|
|
||||||
"category": 113,
|
|
||||||
"nameResourceKey": "passwordExpirationName",
|
|
||||||
"descriptionResourceKey": "passwordExpirationDescription",
|
|
||||||
"emptyValueResourceKey": "passwordExpirationInDaysEmptyValueOneYearKey",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "passwordExpirationDays",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 30,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 14,
|
|
||||||
"category": 113,
|
|
||||||
"nameResourceKey": "complianceNumberOfPreviousPasswordsToBlockName",
|
|
||||||
"descriptionResourceKey": "complianceNumberOfPreviousPasswordsToBlockDescription",
|
|
||||||
"emptyValueResourceKey": "numberOfPreviousPasswordsToBlockEmptyValueKey",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "passwordPreviousPasswordBlockCount",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 30,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "numericComplex",
|
|
||||||
"value": "numericComplex",
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"dataType": 14,
|
|
||||||
"category": 113,
|
|
||||||
"nameResourceKey": "complianceMinimumPasswordLengthName",
|
|
||||||
"descriptionResourceKey": "passwordMinimumLengthDescription",
|
|
||||||
"emptyValueResourceKey": "minimumPasswordLengthEmptyValueKeyFourToSixteen",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "passwordMinimumLength",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 30,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 14,
|
|
||||||
"category": 113,
|
|
||||||
"nameResourceKey": "passwordExpirationName",
|
|
||||||
"descriptionResourceKey": "passwordExpirationDescription",
|
|
||||||
"emptyValueResourceKey": "passwordExpirationInDaysEmptyValueOneYearKey",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "passwordExpirationDays",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 30,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 14,
|
|
||||||
"category": 113,
|
|
||||||
"nameResourceKey": "complianceNumberOfPreviousPasswordsToBlockName",
|
|
||||||
"descriptionResourceKey": "complianceNumberOfPreviousPasswordsToBlockDescription",
|
|
||||||
"emptyValueResourceKey": "numberOfPreviousPasswordsToBlockEmptyValueKey",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "passwordPreviousPasswordBlockCount",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 30,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "atLeastAlphabeticOption",
|
|
||||||
"value": "alphabetic",
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"dataType": 14,
|
|
||||||
"category": 113,
|
|
||||||
"nameResourceKey": "complianceMinimumPasswordLengthName",
|
|
||||||
"descriptionResourceKey": "passwordMinimumLengthDescription",
|
|
||||||
"emptyValueResourceKey": "minimumPasswordLengthEmptyValueKeyFourToSixteen",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "passwordMinimumLength",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 30,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 14,
|
|
||||||
"category": 113,
|
|
||||||
"nameResourceKey": "passwordExpirationName",
|
|
||||||
"descriptionResourceKey": "passwordExpirationDescription",
|
|
||||||
"emptyValueResourceKey": "passwordExpirationInDaysEmptyValueOneYearKey",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "passwordExpirationDays",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 30,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 14,
|
|
||||||
"category": 113,
|
|
||||||
"nameResourceKey": "complianceNumberOfPreviousPasswordsToBlockName",
|
|
||||||
"descriptionResourceKey": "complianceNumberOfPreviousPasswordsToBlockDescription",
|
|
||||||
"emptyValueResourceKey": "numberOfPreviousPasswordsToBlockEmptyValueKey",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "passwordPreviousPasswordBlockCount",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 30,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "atLeastAlphanumericOption",
|
|
||||||
"value": "alphanumeric",
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"dataType": 14,
|
|
||||||
"category": 113,
|
|
||||||
"nameResourceKey": "complianceMinimumPasswordLengthName",
|
|
||||||
"descriptionResourceKey": "passwordMinimumLengthDescription",
|
|
||||||
"emptyValueResourceKey": "minimumPasswordLengthEmptyValueKeyFourToSixteen",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "passwordMinimumLength",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 30,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 14,
|
|
||||||
"category": 113,
|
|
||||||
"nameResourceKey": "passwordExpirationName",
|
|
||||||
"descriptionResourceKey": "passwordExpirationDescription",
|
|
||||||
"emptyValueResourceKey": "passwordExpirationInDaysEmptyValueOneYearKey",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "passwordExpirationDays",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 30,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 14,
|
|
||||||
"category": 113,
|
|
||||||
"nameResourceKey": "complianceNumberOfPreviousPasswordsToBlockName",
|
|
||||||
"descriptionResourceKey": "complianceNumberOfPreviousPasswordsToBlockDescription",
|
|
||||||
"emptyValueResourceKey": "numberOfPreviousPasswordsToBlockEmptyValueKey",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "passwordPreviousPasswordBlockCount",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 30,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "atLeastAlphanumericWithSymbolsOption",
|
|
||||||
"value": "alphanumericWithSymbols",
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"dataType": 14,
|
|
||||||
"category": 113,
|
|
||||||
"nameResourceKey": "complianceMinimumPasswordLengthName",
|
|
||||||
"descriptionResourceKey": "passwordMinimumLengthDescription",
|
|
||||||
"emptyValueResourceKey": "minimumPasswordLengthEmptyValueKeyFourToSixteen",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "passwordMinimumLength",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 30,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 14,
|
|
||||||
"category": 113,
|
|
||||||
"nameResourceKey": "passwordExpirationName",
|
|
||||||
"descriptionResourceKey": "passwordExpirationDescription",
|
|
||||||
"emptyValueResourceKey": "passwordExpirationInDaysEmptyValueOneYearKey",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "passwordExpirationDays",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 30,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 14,
|
|
||||||
"category": 113,
|
|
||||||
"nameResourceKey": "complianceNumberOfPreviousPasswordsToBlockName",
|
|
||||||
"descriptionResourceKey": "complianceNumberOfPreviousPasswordsToBlockDescription",
|
|
||||||
"emptyValueResourceKey": "numberOfPreviousPasswordsToBlockEmptyValueKey",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "passwordPreviousPasswordBlockCount",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 30,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "passwordRequiredType",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": "deviceDefault",
|
|
||||||
"unconfiguredValue": "deviceDefault",
|
|
||||||
"policyType": 30,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "passwordRequired",
|
|
||||||
"booleanActions": 1,
|
|
||||||
"defaultValue": false,
|
|
||||||
"policyType": 30,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 16,
|
|
||||||
"category": 113,
|
|
||||||
"nameResourceKey": "complianceMinutesOfInactivityBeforePasswordRequiredName",
|
|
||||||
"descriptionResourceKey": "complianceMinutesOfInactivityBeforePasswordRequiredDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "notConfigured",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "oneMinuteOption",
|
|
||||||
"value": 1,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "fiveMinutesOption",
|
|
||||||
"value": 5,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "tenMinutesOption",
|
|
||||||
"value": 10,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "fifteenMinutesOption",
|
|
||||||
"value": 15,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "thirtyMinutesOption",
|
|
||||||
"value": 30,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "oneHourOption",
|
|
||||||
"value": 60,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "fourHoursOption",
|
|
||||||
"value": 240,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "eightHoursOption",
|
|
||||||
"value": 480,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "passwordMinutesOfInactivityBeforeLock",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 30,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 30,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
{
|
||||||
"isSettingDescription": false,
|
"isSettingDescription": false,
|
||||||
"showAsSectionHeader": false,
|
"showAsSectionHeader": false,
|
||||||
@@ -576,6 +130,410 @@
|
|||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"policyType": 30,
|
"policyType": 30,
|
||||||
"enabled": true
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 0,
|
||||||
|
"category": 113,
|
||||||
|
"nameResourceKey": "compliancePasswordRequirementName",
|
||||||
|
"descriptionResourceKey": "compliancePasswordRequirementDescription",
|
||||||
|
"childSettings": [
|
||||||
|
{
|
||||||
|
"dataType": 10,
|
||||||
|
"category": 113,
|
||||||
|
"nameResourceKey": "androidTwelveDeprecationInfoBox",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 30,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"isSettingDescription": false,
|
||||||
|
"showAsSectionHeader": true,
|
||||||
|
"dataType": 8,
|
||||||
|
"category": 113,
|
||||||
|
"nameResourceKey": "allAndroidVersionsPasswordHeader",
|
||||||
|
"childSettings": [
|
||||||
|
{
|
||||||
|
"isSettingDescription": false,
|
||||||
|
"showAsSectionHeader": false,
|
||||||
|
"dataType": 8,
|
||||||
|
"category": 113,
|
||||||
|
"nameResourceKey": "allAndroidVersionsPasswordHeaderDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 30,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 30,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 14,
|
||||||
|
"category": 113,
|
||||||
|
"nameResourceKey": "passwordExpirationName",
|
||||||
|
"descriptionResourceKey": "passwordExpirationDescription",
|
||||||
|
"emptyValueResourceKey": "passwordExpirationInDaysEmptyValueOneYearKey",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "passwordExpirationDays",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 30,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 14,
|
||||||
|
"category": 113,
|
||||||
|
"nameResourceKey": "complianceNumberOfPreviousPasswordsToBlockName",
|
||||||
|
"descriptionResourceKey": "complianceNumberOfPreviousPasswordsToBlockDescription",
|
||||||
|
"emptyValueResourceKey": "numberOfPreviousPasswordsToBlockEmptyValueKey",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "passwordPreviousPasswordBlockCount",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 30,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 113,
|
||||||
|
"nameResourceKey": "complianceMinutesOfInactivityBeforePasswordRequiredName",
|
||||||
|
"descriptionResourceKey": "complianceMinutesOfInactivityBeforePasswordRequiredDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "notConfigured",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "oneMinuteOption",
|
||||||
|
"value": 1,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "fiveMinutesOption",
|
||||||
|
"value": 5,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "tenMinutesOption",
|
||||||
|
"value": 10,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "fifteenMinutesOption",
|
||||||
|
"value": 15,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "thirtyMinutesOption",
|
||||||
|
"value": 30,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "oneHourOption",
|
||||||
|
"value": 60,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "fourHoursOption",
|
||||||
|
"value": 240,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "eightHoursOption",
|
||||||
|
"value": 480,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "passwordMinutesOfInactivityBeforeLock",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 30,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"isSettingDescription": false,
|
||||||
|
"showAsSectionHeader": true,
|
||||||
|
"dataType": 8,
|
||||||
|
"category": 113,
|
||||||
|
"nameResourceKey": "androidTwelveAndAbovePasswordHeader",
|
||||||
|
"childSettings": [
|
||||||
|
{
|
||||||
|
"isSettingDescription": false,
|
||||||
|
"showAsSectionHeader": false,
|
||||||
|
"dataType": 8,
|
||||||
|
"category": 113,
|
||||||
|
"nameResourceKey": "androidTwelveAndAbovePasswordHeaderDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 30,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 30,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 113,
|
||||||
|
"nameResourceKey": "requiredPasswordComplexityName",
|
||||||
|
"descriptionResourceKey": "requiredPasswordComplexityDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "none",
|
||||||
|
"value": "none",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "low",
|
||||||
|
"value": "low",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "medium",
|
||||||
|
"value": "medium",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "high",
|
||||||
|
"value": "high",
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "requiredPasswordComplexity",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "none",
|
||||||
|
"unconfiguredValue": "none",
|
||||||
|
"policyType": 30,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"isSettingDescription": false,
|
||||||
|
"showAsSectionHeader": true,
|
||||||
|
"dataType": 8,
|
||||||
|
"category": 113,
|
||||||
|
"nameResourceKey": "androidElevenAndBelowPasswordHeader",
|
||||||
|
"childSettings": [
|
||||||
|
{
|
||||||
|
"isSettingDescription": false,
|
||||||
|
"showAsSectionHeader": false,
|
||||||
|
"dataType": 8,
|
||||||
|
"category": 113,
|
||||||
|
"nameResourceKey": "androidElevenAndBelowPasswordHeaderDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 30,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 30,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 113,
|
||||||
|
"nameResourceKey": "requiredPasswordTypeName",
|
||||||
|
"descriptionResourceKey": "complianceRequiredPasswordTypeDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "selectTypeOption",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "deviceDefault",
|
||||||
|
"value": "deviceDefault",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "lowSecurityBiometricOption",
|
||||||
|
"value": "lowSecurityBiometric",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "atLeastNumericOption",
|
||||||
|
"value": "numeric",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"dataType": 14,
|
||||||
|
"category": 113,
|
||||||
|
"nameResourceKey": "complianceMinimumPasswordLengthName",
|
||||||
|
"descriptionResourceKey": "passwordMinimumLengthDescription",
|
||||||
|
"emptyValueResourceKey": "minimumPasswordLengthEmptyValueKeyFourToSixteen",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "passwordMinimumLength",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 30,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "numericComplex",
|
||||||
|
"value": "numericComplex",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"dataType": 14,
|
||||||
|
"category": 113,
|
||||||
|
"nameResourceKey": "complianceMinimumPasswordLengthName",
|
||||||
|
"descriptionResourceKey": "passwordMinimumLengthDescription",
|
||||||
|
"emptyValueResourceKey": "minimumPasswordLengthEmptyValueKeyFourToSixteen",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "passwordMinimumLength",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 30,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "atLeastAlphabeticOption",
|
||||||
|
"value": "alphabetic",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"dataType": 14,
|
||||||
|
"category": 113,
|
||||||
|
"nameResourceKey": "complianceMinimumPasswordLengthName",
|
||||||
|
"descriptionResourceKey": "passwordMinimumLengthDescription",
|
||||||
|
"emptyValueResourceKey": "minimumPasswordLengthEmptyValueKeyFourToSixteen",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "passwordMinimumLength",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 30,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "atLeastAlphanumericOption",
|
||||||
|
"value": "alphanumeric",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"dataType": 14,
|
||||||
|
"category": 113,
|
||||||
|
"nameResourceKey": "complianceMinimumPasswordLengthName",
|
||||||
|
"descriptionResourceKey": "passwordMinimumLengthDescription",
|
||||||
|
"emptyValueResourceKey": "minimumPasswordLengthEmptyValueKeyFourToSixteen",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "passwordMinimumLength",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 30,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "atLeastAlphanumericWithSymbolsOption",
|
||||||
|
"value": "alphanumericWithSymbols",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"dataType": 14,
|
||||||
|
"category": 113,
|
||||||
|
"nameResourceKey": "complianceMinimumPasswordLengthName",
|
||||||
|
"descriptionResourceKey": "passwordMinimumLengthDescription",
|
||||||
|
"emptyValueResourceKey": "minimumPasswordLengthEmptyValueKeyFourToSixteen",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "passwordMinimumLength",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 30,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "passwordRequiredType",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "deviceDefault",
|
||||||
|
"unconfiguredValue": "deviceDefault",
|
||||||
|
"policyType": 30,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "passwordRequired",
|
||||||
|
"booleanActions": 1,
|
||||||
|
"defaultValue": false,
|
||||||
|
"policyType": 30,
|
||||||
|
"enabled": true
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1707,303 +1707,6 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"enabled": true
|
"enabled": true
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "microsoftTunnelOption",
|
|
||||||
"value": "microsoftTunnel",
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"complexOptions": [
|
|
||||||
{
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "vPNPolicyConnectionName",
|
|
||||||
"descriptionResourceKey": "vPNPolicyConnectionDescription",
|
|
||||||
"emptyValueResourceKey": "vPNConnectionExample",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "connectionName",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 8,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"complexOptions": [
|
|
||||||
{
|
|
||||||
"dataType": 26,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "changeMicrosoftTunnelSite",
|
|
||||||
"descriptionResourceKey": "microsoftTunnelSite",
|
|
||||||
"emptyValueResourceKey": "selectMicrosoftTunnelSite",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "microsoftTunnelSiteId",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 8,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 5,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "microsoftTunnelSite",
|
|
||||||
"descriptionResourceKey": "microsoftTunnelSiteDescription",
|
|
||||||
"emptyValueResourceKey": "selectMicrosoftTunnelSite",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 8,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 5,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "vpn",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 8,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"complexOptions": [
|
|
||||||
{
|
|
||||||
"isSettingDescription": true,
|
|
||||||
"showAsSectionHeader": false,
|
|
||||||
"dataType": 8,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "vPNAppsName",
|
|
||||||
"descriptionResourceKey": "vPNAppsDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 8,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "appId",
|
|
||||||
"descriptionResourceKey": "Empty",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "appId",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 8,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "appNameName",
|
|
||||||
"descriptionResourceKey": "Empty",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "name",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 8,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 21,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "Empty",
|
|
||||||
"descriptionResourceKey": "Empty",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "targetedMobileApps",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 8,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 5,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "vpnPerApp",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 8,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"complexOptions": [
|
|
||||||
{
|
|
||||||
"dataType": 0,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "androidPersonalWorkProfileAlwaysOnVpnEnabledName",
|
|
||||||
"descriptionResourceKey": "androidEnterpriseWorkProfileAlwaysOnVpnEnabledDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "alwaysOn",
|
|
||||||
"booleanActions": 2,
|
|
||||||
"defaultValue": false,
|
|
||||||
"policyType": 8,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 5,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "vpnAlwaysOn",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 8,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"complexOptions": [
|
|
||||||
{
|
|
||||||
"isSettingDescription": false,
|
|
||||||
"showAsSectionHeader": false,
|
|
||||||
"dataType": 8,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "vPNPolicyUseProxyServerName",
|
|
||||||
"descriptionResourceKey": "vPNPolicyUseProxyServerDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 8,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"complexOptions": [
|
|
||||||
{
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "vPNPolicyAutomaticConfigurationScriptName",
|
|
||||||
"descriptionResourceKey": "vPNPolicyAutomaticConfigurationScriptDescription",
|
|
||||||
"emptyValueResourceKey": "vPNScriptExample",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "automaticConfigurationScriptUrl",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 8,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "vPNPolicyAddressName",
|
|
||||||
"descriptionResourceKey": "vPNPolicyAddressDescription",
|
|
||||||
"emptyValueResourceKey": "vPNAddressExample",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "address",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 8,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 14,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "vPNPolicyPortNumberName",
|
|
||||||
"descriptionResourceKey": "empty",
|
|
||||||
"emptyValueResourceKey": "proxyPortExample",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "port",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 8,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 6,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "vPNPolicyUseProxyServerName",
|
|
||||||
"descriptionResourceKey": "vPNPolicyUseProxyServerDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "proxyServer",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 8,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 5,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "vpnProxy",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 8,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"enabled": false
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"entityKey": "connectionType",
|
"entityKey": "connectionType",
|
||||||
|
|||||||
@@ -1683,303 +1683,6 @@
|
|||||||
}
|
}
|
||||||
],
|
],
|
||||||
"enabled": true
|
"enabled": true
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "microsoftTunnelOption",
|
|
||||||
"value": "microsoftTunnel",
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"complexOptions": [
|
|
||||||
{
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "vPNPolicyConnectionName",
|
|
||||||
"descriptionResourceKey": "vPNPolicyConnectionDescription",
|
|
||||||
"emptyValueResourceKey": "vPNConnectionExample",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "connectionName",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 12,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"complexOptions": [
|
|
||||||
{
|
|
||||||
"dataType": 26,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "changeMicrosoftTunnelSite",
|
|
||||||
"descriptionResourceKey": "microsoftTunnelSite",
|
|
||||||
"emptyValueResourceKey": "selectMicrosoftTunnelSite",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "microsoftTunnelSiteId",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 12,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 5,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "microsoftTunnelSite",
|
|
||||||
"descriptionResourceKey": "microsoftTunnelSiteDescription",
|
|
||||||
"emptyValueResourceKey": "selectMicrosoftTunnelSite",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 12,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 5,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "vpn",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 12,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"complexOptions": [
|
|
||||||
{
|
|
||||||
"isSettingDescription": true,
|
|
||||||
"showAsSectionHeader": false,
|
|
||||||
"dataType": 8,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "vPNAppsName",
|
|
||||||
"descriptionResourceKey": "vPNAppsDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 12,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "appId",
|
|
||||||
"descriptionResourceKey": "Empty",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "appId",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 12,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "appNameName",
|
|
||||||
"descriptionResourceKey": "Empty",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "name",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 12,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 21,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "Empty",
|
|
||||||
"descriptionResourceKey": "Empty",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "targetedMobileApps",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 12,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 5,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "vpnPerApp",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 12,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"complexOptions": [
|
|
||||||
{
|
|
||||||
"dataType": 0,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "androidPersonalWorkProfileAlwaysOnVpnEnabledName",
|
|
||||||
"descriptionResourceKey": "androidEnterpriseWorkProfileAlwaysOnVpnEnabledDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "alwaysOn",
|
|
||||||
"booleanActions": 2,
|
|
||||||
"defaultValue": false,
|
|
||||||
"policyType": 12,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 5,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "vpnAlwaysOn",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 12,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"complexOptions": [
|
|
||||||
{
|
|
||||||
"isSettingDescription": false,
|
|
||||||
"showAsSectionHeader": false,
|
|
||||||
"dataType": 8,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "vPNPolicyUseProxyServerName",
|
|
||||||
"descriptionResourceKey": "vPNPolicyUseProxyServerDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 12,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"complexOptions": [
|
|
||||||
{
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "vPNPolicyAutomaticConfigurationScriptName",
|
|
||||||
"descriptionResourceKey": "vPNPolicyAutomaticConfigurationScriptDescription",
|
|
||||||
"emptyValueResourceKey": "vPNScriptExample",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "automaticConfigurationScriptUrl",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 12,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "vPNPolicyAddressName",
|
|
||||||
"descriptionResourceKey": "vPNPolicyAddressDescription",
|
|
||||||
"emptyValueResourceKey": "vPNAddressExample",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "address",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 12,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 14,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "vPNPolicyPortNumberName",
|
|
||||||
"descriptionResourceKey": "empty",
|
|
||||||
"emptyValueResourceKey": "proxyPortExample",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "port",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 12,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 6,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "vPNPolicyUseProxyServerName",
|
|
||||||
"descriptionResourceKey": "vPNPolicyUseProxyServerDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "proxyServer",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 12,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 5,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "vpnProxy",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 12,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"enabled": false
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"entityKey": "connectionType",
|
"entityKey": "connectionType",
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@@ -559,6 +559,34 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 129,
|
||||||
|
"nameResourceKey": "trafficRuleDirectionName",
|
||||||
|
"descriptionResourceKey": "trafficRuleDirectionDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "outboundOption",
|
||||||
|
"value": "outbound",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "inboundOption",
|
||||||
|
"value": "inbound",
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "vpnTrafficDirection",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "outbound",
|
||||||
|
"policyType": 89,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"dataType": 14,
|
"dataType": 14,
|
||||||
@@ -2276,6 +2304,34 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 129,
|
||||||
|
"nameResourceKey": "trafficRuleDirectionName",
|
||||||
|
"descriptionResourceKey": "trafficRuleDirectionDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "outboundOption",
|
||||||
|
"value": "outbound",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "inboundOption",
|
||||||
|
"value": "inbound",
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "vpnTrafficDirection",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "outbound",
|
||||||
|
"policyType": 89,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"dataType": 14,
|
"dataType": 14,
|
||||||
@@ -3993,6 +4049,34 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 129,
|
||||||
|
"nameResourceKey": "trafficRuleDirectionName",
|
||||||
|
"descriptionResourceKey": "trafficRuleDirectionDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "outboundOption",
|
||||||
|
"value": "outbound",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "inboundOption",
|
||||||
|
"value": "inbound",
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "vpnTrafficDirection",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "outbound",
|
||||||
|
"policyType": 89,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"dataType": 14,
|
"dataType": 14,
|
||||||
@@ -5710,6 +5794,34 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 129,
|
||||||
|
"nameResourceKey": "trafficRuleDirectionName",
|
||||||
|
"descriptionResourceKey": "trafficRuleDirectionDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "outboundOption",
|
||||||
|
"value": "outbound",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "inboundOption",
|
||||||
|
"value": "inbound",
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "vpnTrafficDirection",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "outbound",
|
||||||
|
"policyType": 89,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"dataType": 14,
|
"dataType": 14,
|
||||||
@@ -7915,6 +8027,34 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 129,
|
||||||
|
"nameResourceKey": "trafficRuleDirectionName",
|
||||||
|
"descriptionResourceKey": "trafficRuleDirectionDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "outboundOption",
|
||||||
|
"value": "outbound",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "inboundOption",
|
||||||
|
"value": "inbound",
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "vpnTrafficDirection",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "outbound",
|
||||||
|
"policyType": 89,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"dataType": 14,
|
"dataType": 14,
|
||||||
@@ -9632,6 +9772,34 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 129,
|
||||||
|
"nameResourceKey": "trafficRuleDirectionName",
|
||||||
|
"descriptionResourceKey": "trafficRuleDirectionDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "outboundOption",
|
||||||
|
"value": "outbound",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "inboundOption",
|
||||||
|
"value": "inbound",
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "vpnTrafficDirection",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "outbound",
|
||||||
|
"policyType": 89,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"dataType": 14,
|
"dataType": 14,
|
||||||
@@ -11349,6 +11517,34 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 129,
|
||||||
|
"nameResourceKey": "trafficRuleDirectionName",
|
||||||
|
"descriptionResourceKey": "trafficRuleDirectionDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "outboundOption",
|
||||||
|
"value": "outbound",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "inboundOption",
|
||||||
|
"value": "inbound",
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "vpnTrafficDirection",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "outbound",
|
||||||
|
"policyType": 89,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"dataType": 14,
|
"dataType": 14,
|
||||||
@@ -13051,6 +13247,34 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 129,
|
||||||
|
"nameResourceKey": "trafficRuleDirectionName",
|
||||||
|
"descriptionResourceKey": "trafficRuleDirectionDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "outboundOption",
|
||||||
|
"value": "outbound",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "inboundOption",
|
||||||
|
"value": "inbound",
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "vpnTrafficDirection",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "outbound",
|
||||||
|
"policyType": 89,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"dataType": 14,
|
"dataType": 14,
|
||||||
@@ -15141,6 +15365,34 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 129,
|
||||||
|
"nameResourceKey": "trafficRuleDirectionName",
|
||||||
|
"descriptionResourceKey": "trafficRuleDirectionDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "outboundOption",
|
||||||
|
"value": "outbound",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "inboundOption",
|
||||||
|
"value": "inbound",
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "vpnTrafficDirection",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "outbound",
|
||||||
|
"policyType": 89,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"dataType": 14,
|
"dataType": 14,
|
||||||
@@ -16843,6 +17095,34 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 129,
|
||||||
|
"nameResourceKey": "trafficRuleDirectionName",
|
||||||
|
"descriptionResourceKey": "trafficRuleDirectionDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "outboundOption",
|
||||||
|
"value": "outbound",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "inboundOption",
|
||||||
|
"value": "inbound",
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "vpnTrafficDirection",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "outbound",
|
||||||
|
"policyType": 89,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"dataType": 14,
|
"dataType": 14,
|
||||||
@@ -18545,6 +18825,34 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 129,
|
||||||
|
"nameResourceKey": "trafficRuleDirectionName",
|
||||||
|
"descriptionResourceKey": "trafficRuleDirectionDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "outboundOption",
|
||||||
|
"value": "outbound",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "inboundOption",
|
||||||
|
"value": "inbound",
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "vpnTrafficDirection",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "outbound",
|
||||||
|
"policyType": 89,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"dataType": 14,
|
"dataType": 14,
|
||||||
@@ -20289,6 +20597,34 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 129,
|
||||||
|
"nameResourceKey": "trafficRuleDirectionName",
|
||||||
|
"descriptionResourceKey": "trafficRuleDirectionDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "outboundOption",
|
||||||
|
"value": "outbound",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "inboundOption",
|
||||||
|
"value": "inbound",
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "vpnTrafficDirection",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "outbound",
|
||||||
|
"policyType": 89,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"dataType": 14,
|
"dataType": 14,
|
||||||
@@ -22006,6 +22342,34 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 129,
|
||||||
|
"nameResourceKey": "trafficRuleDirectionName",
|
||||||
|
"descriptionResourceKey": "trafficRuleDirectionDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "outboundOption",
|
||||||
|
"value": "outbound",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "inboundOption",
|
||||||
|
"value": "inbound",
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "vpnTrafficDirection",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "outbound",
|
||||||
|
"policyType": 89,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"dataType": 14,
|
"dataType": 14,
|
||||||
@@ -23723,6 +24087,34 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 129,
|
||||||
|
"nameResourceKey": "trafficRuleDirectionName",
|
||||||
|
"descriptionResourceKey": "trafficRuleDirectionDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "outboundOption",
|
||||||
|
"value": "outbound",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "inboundOption",
|
||||||
|
"value": "inbound",
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "vpnTrafficDirection",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "outbound",
|
||||||
|
"policyType": 89,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"dataType": 14,
|
"dataType": 14,
|
||||||
@@ -25440,6 +25832,34 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 129,
|
||||||
|
"nameResourceKey": "trafficRuleDirectionName",
|
||||||
|
"descriptionResourceKey": "trafficRuleDirectionDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "outboundOption",
|
||||||
|
"value": "outbound",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "inboundOption",
|
||||||
|
"value": "inbound",
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "vpnTrafficDirection",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "outbound",
|
||||||
|
"policyType": 89,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"dataType": 14,
|
"dataType": 14,
|
||||||
@@ -27645,6 +28065,34 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 129,
|
||||||
|
"nameResourceKey": "trafficRuleDirectionName",
|
||||||
|
"descriptionResourceKey": "trafficRuleDirectionDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "outboundOption",
|
||||||
|
"value": "outbound",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "inboundOption",
|
||||||
|
"value": "inbound",
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "vpnTrafficDirection",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "outbound",
|
||||||
|
"policyType": 89,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"dataType": 14,
|
"dataType": 14,
|
||||||
@@ -29362,6 +29810,34 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 129,
|
||||||
|
"nameResourceKey": "trafficRuleDirectionName",
|
||||||
|
"descriptionResourceKey": "trafficRuleDirectionDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "outboundOption",
|
||||||
|
"value": "outbound",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "inboundOption",
|
||||||
|
"value": "inbound",
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "vpnTrafficDirection",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "outbound",
|
||||||
|
"policyType": 89,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"dataType": 14,
|
"dataType": 14,
|
||||||
@@ -31079,6 +31555,34 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 129,
|
||||||
|
"nameResourceKey": "trafficRuleDirectionName",
|
||||||
|
"descriptionResourceKey": "trafficRuleDirectionDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "outboundOption",
|
||||||
|
"value": "outbound",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "inboundOption",
|
||||||
|
"value": "inbound",
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "vpnTrafficDirection",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "outbound",
|
||||||
|
"policyType": 89,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"dataType": 14,
|
"dataType": 14,
|
||||||
@@ -32781,6 +33285,34 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 129,
|
||||||
|
"nameResourceKey": "trafficRuleDirectionName",
|
||||||
|
"descriptionResourceKey": "trafficRuleDirectionDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "outboundOption",
|
||||||
|
"value": "outbound",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "inboundOption",
|
||||||
|
"value": "inbound",
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "vpnTrafficDirection",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "outbound",
|
||||||
|
"policyType": 89,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"dataType": 14,
|
"dataType": 14,
|
||||||
@@ -34871,6 +35403,34 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 129,
|
||||||
|
"nameResourceKey": "trafficRuleDirectionName",
|
||||||
|
"descriptionResourceKey": "trafficRuleDirectionDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "outboundOption",
|
||||||
|
"value": "outbound",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "inboundOption",
|
||||||
|
"value": "inbound",
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "vpnTrafficDirection",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "outbound",
|
||||||
|
"policyType": 89,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"dataType": 14,
|
"dataType": 14,
|
||||||
@@ -36573,6 +37133,34 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 129,
|
||||||
|
"nameResourceKey": "trafficRuleDirectionName",
|
||||||
|
"descriptionResourceKey": "trafficRuleDirectionDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "outboundOption",
|
||||||
|
"value": "outbound",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "inboundOption",
|
||||||
|
"value": "inbound",
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "vpnTrafficDirection",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "outbound",
|
||||||
|
"policyType": 89,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"dataType": 14,
|
"dataType": 14,
|
||||||
@@ -38275,6 +38863,34 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 129,
|
||||||
|
"nameResourceKey": "trafficRuleDirectionName",
|
||||||
|
"descriptionResourceKey": "trafficRuleDirectionDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "outboundOption",
|
||||||
|
"value": "outbound",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "inboundOption",
|
||||||
|
"value": "inbound",
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "vpnTrafficDirection",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "outbound",
|
||||||
|
"policyType": 89,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"metadata": {
|
"metadata": {
|
||||||
"dataType": 14,
|
"dataType": 14,
|
||||||
|
|||||||
@@ -1,509 +0,0 @@
|
|||||||
{
|
|
||||||
"vpnappsandtrafficrules_windows10vpn": [
|
|
||||||
{
|
|
||||||
"dataType": 16,
|
|
||||||
"category": 124,
|
|
||||||
"nameResourceKey": "vPNWipOrAppsName",
|
|
||||||
"descriptionResourceKey": "vPNWipOrAppsDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "notConfigured",
|
|
||||||
"value": 0,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "wipOption",
|
|
||||||
"value": 1,
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 124,
|
|
||||||
"nameResourceKey": "wipName",
|
|
||||||
"descriptionResourceKey": "wipDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "windowsInformationProtectionDomain",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "associateAppsOption",
|
|
||||||
"value": 2,
|
|
||||||
"children": [
|
|
||||||
{
|
|
||||||
"dataType": 19,
|
|
||||||
"category": 124,
|
|
||||||
"nameResourceKey": "vPNPolicyOnlyTheseAppsCanUseVPNName",
|
|
||||||
"descriptionResourceKey": "vPNPolicyOnlyTheseAppsCanUseVPNDescription",
|
|
||||||
"childSettings": [
|
|
||||||
{
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 124,
|
|
||||||
"nameResourceKey": "appIdentifierName",
|
|
||||||
"descriptionResourceKey": "appIdentifierDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "identifier",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 16,
|
|
||||||
"category": 124,
|
|
||||||
"nameResourceKey": "eDPPolicyNetworkLocationsListTypeName",
|
|
||||||
"descriptionResourceKey": "empty",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "notConfigured",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "desktopOption",
|
|
||||||
"value": "desktop",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "universalOption",
|
|
||||||
"value": "universal",
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "appType",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 21,
|
|
||||||
"category": 124,
|
|
||||||
"nameResourceKey": "vPNPolicyAssociatedAppsName",
|
|
||||||
"descriptionResourceKey": "vPNPolicyAssociatedAppsDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "associatedApps",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": false,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "enableOption",
|
|
||||||
"value": true,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "disableOption",
|
|
||||||
"value": false,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "onlyAssociatedAppsCanUseConnection",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": false,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "syntheticWipOrApps",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": 0,
|
|
||||||
"unconfiguredValue": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 124,
|
|
||||||
"nameResourceKey": "ruleName",
|
|
||||||
"descriptionResourceKey": "empty",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "name",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 16,
|
|
||||||
"category": 124,
|
|
||||||
"nameResourceKey": "trafficRuleRoutingPolicyTypeName",
|
|
||||||
"descriptionResourceKey": "trafficRuleRoutingPolicyTypeDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "noneOption",
|
|
||||||
"value": "none",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "splitTunnelOption",
|
|
||||||
"value": "splitTunnel",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "forceTunnelOption",
|
|
||||||
"value": "forceTunnel",
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "routingPolicyType",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": "none",
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 14,
|
|
||||||
"category": 124,
|
|
||||||
"nameResourceKey": "protocolsName",
|
|
||||||
"descriptionResourceKey": "empty",
|
|
||||||
"childSettings": [
|
|
||||||
{
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 14,
|
|
||||||
"category": 124,
|
|
||||||
"nameResourceKey": "lowerPortName",
|
|
||||||
"descriptionResourceKey": "empty",
|
|
||||||
"emptyValueResourceKey": "proxyPortExample",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "lowerNumber",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 14,
|
|
||||||
"category": 124,
|
|
||||||
"nameResourceKey": "upperPortName",
|
|
||||||
"descriptionResourceKey": "empty",
|
|
||||||
"emptyValueResourceKey": "proxyPortExampleUpper",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "upperNumber",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 21,
|
|
||||||
"category": 124,
|
|
||||||
"nameResourceKey": "localPortRangesName",
|
|
||||||
"descriptionResourceKey": "localPortRangesDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "localPortRanges",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 14,
|
|
||||||
"category": 124,
|
|
||||||
"nameResourceKey": "lowerPortName",
|
|
||||||
"descriptionResourceKey": "empty",
|
|
||||||
"emptyValueResourceKey": "proxyPortExample",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "lowerNumber",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 14,
|
|
||||||
"category": 124,
|
|
||||||
"nameResourceKey": "upperPortName",
|
|
||||||
"descriptionResourceKey": "empty",
|
|
||||||
"emptyValueResourceKey": "proxyPortExampleUpper",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "upperNumber",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 21,
|
|
||||||
"category": 124,
|
|
||||||
"nameResourceKey": "remotePortRangesName",
|
|
||||||
"descriptionResourceKey": "remotePortRangesDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "remotePortRanges",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "protocols",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 124,
|
|
||||||
"nameResourceKey": "trafficRuleAppName",
|
|
||||||
"descriptionResourceKey": "empty",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "appId",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 16,
|
|
||||||
"category": 124,
|
|
||||||
"nameResourceKey": "trafficRuleAppTypeName",
|
|
||||||
"descriptionResourceKey": "empty",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "desktopOption",
|
|
||||||
"value": "desktop",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "universalOption",
|
|
||||||
"value": "universal",
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "appType",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 124,
|
|
||||||
"nameResourceKey": "lowerIPv4AddressName",
|
|
||||||
"descriptionResourceKey": "empty",
|
|
||||||
"emptyValueResourceKey": "proxyAddressExample",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "lowerAddress",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 124,
|
|
||||||
"nameResourceKey": "upperIPv4AddressName",
|
|
||||||
"descriptionResourceKey": "empty",
|
|
||||||
"emptyValueResourceKey": "proxyAddressExampleUpper",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "upperAddress",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 21,
|
|
||||||
"category": 124,
|
|
||||||
"nameResourceKey": "localAddressRangesName",
|
|
||||||
"descriptionResourceKey": "localAddressRangesDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "localAddressRanges",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 124,
|
|
||||||
"nameResourceKey": "lowerIPv4AddressName",
|
|
||||||
"descriptionResourceKey": "empty",
|
|
||||||
"emptyValueResourceKey": "proxyAddressExample",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "lowerAddress",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 124,
|
|
||||||
"nameResourceKey": "upperIPv4AddressName",
|
|
||||||
"descriptionResourceKey": "empty",
|
|
||||||
"emptyValueResourceKey": "proxyAddressExampleUpper",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "upperAddress",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 21,
|
|
||||||
"category": 124,
|
|
||||||
"nameResourceKey": "remoteAddressRangesName",
|
|
||||||
"descriptionResourceKey": "remoteAddressRangesDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "remoteAddressRanges",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 21,
|
|
||||||
"category": 124,
|
|
||||||
"nameResourceKey": "vPNPolicyNetworkTrafficRulesName",
|
|
||||||
"descriptionResourceKey": "vPNPolicyNetworkTrafficRulesDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "trafficRules",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": false,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,116 +0,0 @@
|
|||||||
{
|
|
||||||
"vpnconditionalaccess_windows10vpn": {
|
|
||||||
"dataType": 19,
|
|
||||||
"category": 125,
|
|
||||||
"nameResourceKey": "enableConditionalAccessName",
|
|
||||||
"descriptionResourceKey": "enableConditionalAccessDescription",
|
|
||||||
"childSettings": [
|
|
||||||
{
|
|
||||||
"dataType": 19,
|
|
||||||
"category": 125,
|
|
||||||
"nameResourceKey": "enableSingleSignOnName",
|
|
||||||
"descriptionResourceKey": "enableSingleSignOnDescription",
|
|
||||||
"childSettings": [
|
|
||||||
{
|
|
||||||
"complexOptions": [
|
|
||||||
{
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 125,
|
|
||||||
"nameResourceKey": "eDPPolicyAppsListNameName",
|
|
||||||
"descriptionResourceKey": "eDPPolicyAppsListNameDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "name",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 125,
|
|
||||||
"nameResourceKey": "sCEPPolicyObjectIdentifierColumnName",
|
|
||||||
"descriptionResourceKey": "sCEPPolicyObjectIdentifierColumnDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "objectIdentifier",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 6,
|
|
||||||
"category": 125,
|
|
||||||
"nameResourceKey": "sCEPPolicyExtendedKeyUsageName",
|
|
||||||
"descriptionResourceKey": "empty",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "singleSignOnEku",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 125,
|
|
||||||
"nameResourceKey": "issuerHashName",
|
|
||||||
"descriptionResourceKey": "issuerHashDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "singleSignOnIssuerHash",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "enableOption",
|
|
||||||
"value": true,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "disableOption",
|
|
||||||
"value": false,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "enableSingleSignOnWithAlternateCertificate",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "enableOption",
|
|
||||||
"value": true,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "disableOption",
|
|
||||||
"value": false,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "enableConditionalAccess",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,438 +0,0 @@
|
|||||||
{
|
|
||||||
"vpndnstriggers_windows10vpn": [
|
|
||||||
{
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 126,
|
|
||||||
"nameResourceKey": "vPNPolicyDNSSuffixesName",
|
|
||||||
"descriptionResourceKey": "empty",
|
|
||||||
"emptyValueResourceKey": "dNSSuffixExample",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "unusedForSingleItems",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 21,
|
|
||||||
"category": 126,
|
|
||||||
"nameResourceKey": "vPNPolicyDNSSuffixSearchListName",
|
|
||||||
"descriptionResourceKey": "vPNPolicyDNSSuffixSearchListDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "dnsSuffixes",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 126,
|
|
||||||
"nameResourceKey": "dNSName",
|
|
||||||
"descriptionResourceKey": "dNSNameDescription1809",
|
|
||||||
"emptyValueResourceKey": "dNSNameExample",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "name",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 126,
|
|
||||||
"nameResourceKey": "dNSServer",
|
|
||||||
"descriptionResourceKey": "dNSServerDescription",
|
|
||||||
"emptyValueResourceKey": "vPNAddressExample",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "unusedForSingleItems",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 21,
|
|
||||||
"category": 126,
|
|
||||||
"nameResourceKey": "dNSServer",
|
|
||||||
"descriptionResourceKey": "enterOnlyOneForDns",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "servers",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 126,
|
|
||||||
"nameResourceKey": "proxy",
|
|
||||||
"descriptionResourceKey": "vPNProxyDescription1809",
|
|
||||||
"emptyValueResourceKey": "proxyDNSExample",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "proxyServerUri",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 19,
|
|
||||||
"category": 126,
|
|
||||||
"nameResourceKey": "vPNDnsAutoTriggerName",
|
|
||||||
"descriptionResourceKey": "vPNDnsAutoTriggerDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "enabledOption",
|
|
||||||
"value": true,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "notConfigured",
|
|
||||||
"value": false,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "autoTrigger",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": false,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 19,
|
|
||||||
"category": 126,
|
|
||||||
"nameResourceKey": "vPNDnsPersistentName",
|
|
||||||
"descriptionResourceKey": "vPNDnsPersistentDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "enabledOption",
|
|
||||||
"value": true,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "notConfigured",
|
|
||||||
"value": false,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "persistent",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": false,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 21,
|
|
||||||
"category": 126,
|
|
||||||
"nameResourceKey": "vPNPolicyNameResolutionPolicyTableRulesName",
|
|
||||||
"descriptionResourceKey": "vPNPolicyNameResolutionPolicyTableRulesDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "dnsRules",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": false,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"isSettingDescription": false,
|
|
||||||
"showAsSectionHeader": false,
|
|
||||||
"dataType": 8,
|
|
||||||
"category": 126,
|
|
||||||
"nameResourceKey": "vPNPolicyNameResolutionPolicyTableRulesName",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 126,
|
|
||||||
"nameResourceKey": "dNSName",
|
|
||||||
"descriptionResourceKey": "dNSNameDescription1809",
|
|
||||||
"emptyValueResourceKey": "dNSNameExample",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "name",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"isSettingDescription": false,
|
|
||||||
"showAsSectionHeader": false,
|
|
||||||
"dataType": 8,
|
|
||||||
"category": 126,
|
|
||||||
"nameResourceKey": "enterOnlyOneForDns",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 126,
|
|
||||||
"nameResourceKey": "dNSServer",
|
|
||||||
"descriptionResourceKey": "dNSServerDescription",
|
|
||||||
"emptyValueResourceKey": "vPNAddressExample",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "unusedForSingleItems",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 21,
|
|
||||||
"category": 126,
|
|
||||||
"nameResourceKey": "dNSServer",
|
|
||||||
"descriptionResourceKey": "empty",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "servers",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 126,
|
|
||||||
"nameResourceKey": "proxy",
|
|
||||||
"descriptionResourceKey": "vPNProxyDescription1809",
|
|
||||||
"emptyValueResourceKey": "proxyDNSExample",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "proxyServerUri",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 21,
|
|
||||||
"category": 126,
|
|
||||||
"nameResourceKey": "vPNPolicyNameResolutionPolicyTableRulesName",
|
|
||||||
"descriptionResourceKey": "vPNPolicyNameResolutionPolicyTableRulesDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "dnsRules",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": false,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": false
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 126,
|
|
||||||
"nameResourceKey": "dNSName",
|
|
||||||
"descriptionResourceKey": "dNSNameDescription",
|
|
||||||
"emptyValueResourceKey": "dNSNameExample",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "name",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"isSettingDescription": false,
|
|
||||||
"showAsSectionHeader": false,
|
|
||||||
"dataType": 8,
|
|
||||||
"category": 126,
|
|
||||||
"nameResourceKey": "enterOnlyOneForDns",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 126,
|
|
||||||
"nameResourceKey": "dNSServer",
|
|
||||||
"descriptionResourceKey": "dNSServerDescription",
|
|
||||||
"emptyValueResourceKey": "vPNAddressExample",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "unusedForSingleItems",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 21,
|
|
||||||
"category": 126,
|
|
||||||
"nameResourceKey": "dNSServer",
|
|
||||||
"descriptionResourceKey": "empty",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "servers",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 126,
|
|
||||||
"nameResourceKey": "proxy",
|
|
||||||
"emptyValueResourceKey": "proxyDNSExample",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "proxyServerUri",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 21,
|
|
||||||
"category": 126,
|
|
||||||
"nameResourceKey": "vPNPolicyDNSNamesAndServersName",
|
|
||||||
"descriptionResourceKey": "vPNPolicyDNSNamesAndServersName",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "dnsRules",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"defaultValue": false,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": false
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,119 +0,0 @@
|
|||||||
{
|
|
||||||
"vpnproxy_windows10vpn": [
|
|
||||||
{
|
|
||||||
"isSettingDescription": false,
|
|
||||||
"showAsSectionHeader": false,
|
|
||||||
"dataType": 8,
|
|
||||||
"category": 128,
|
|
||||||
"nameResourceKey": "vPNPolicyUseProxyServerName",
|
|
||||||
"descriptionResourceKey": "vPNPolicyUseProxyServerDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"complexOptions": [
|
|
||||||
{
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 128,
|
|
||||||
"nameResourceKey": "vPNPolicyAutomaticConfigurationScriptName",
|
|
||||||
"descriptionResourceKey": "vPNPolicyAutomaticConfigurationScriptDescription",
|
|
||||||
"emptyValueResourceKey": "vPNScriptExample",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "automaticConfigurationScriptUrl",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 128,
|
|
||||||
"nameResourceKey": "vPNPolicyAddressName",
|
|
||||||
"descriptionResourceKey": "vPNPolicyAddressDescription",
|
|
||||||
"emptyValueResourceKey": "vPNAddressExample",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "address",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 14,
|
|
||||||
"category": 128,
|
|
||||||
"nameResourceKey": "vPNPolicyPortNumberName",
|
|
||||||
"descriptionResourceKey": "empty",
|
|
||||||
"emptyValueResourceKey": "proxyPortExample",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "port",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 16,
|
|
||||||
"category": 128,
|
|
||||||
"nameResourceKey": "vPNPolicyBypassProxySettingsForLocalAddressesName",
|
|
||||||
"descriptionResourceKey": "empty",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "notConfigured",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "enableOption",
|
|
||||||
"value": "true",
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "disableOption",
|
|
||||||
"value": "false",
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "bypassProxyServerForLocalAddress",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 6,
|
|
||||||
"category": 128,
|
|
||||||
"nameResourceKey": "vPNPolicyUseProxyServerName",
|
|
||||||
"descriptionResourceKey": "vPNPolicyUseProxyServerDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "proxyServer",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}
|
|
||||||
@@ -1,81 +0,0 @@
|
|||||||
{
|
|
||||||
"vpnsplittunneling_windows10vpn": {
|
|
||||||
"dataType": 19,
|
|
||||||
"category": 123,
|
|
||||||
"nameResourceKey": "vPNPolicySendAllNetworkTrafficThroughVPNName",
|
|
||||||
"descriptionResourceKey": "vPNPolicySendAllNetworkTrafficThroughVPNDescription",
|
|
||||||
"childSettings": [
|
|
||||||
{
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 123,
|
|
||||||
"nameResourceKey": "vPNPolicyDestinationPrefixName",
|
|
||||||
"descriptionResourceKey": "vPNPolicyDestinationPrefixName",
|
|
||||||
"emptyValueResourceKey": "proxyAddressExample",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "destinationPrefix",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 14,
|
|
||||||
"category": 123,
|
|
||||||
"nameResourceKey": "vPNPolicyPrefixSizeName",
|
|
||||||
"descriptionResourceKey": "vPNPolicyPrefixSizeName",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "prefixSize",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 21,
|
|
||||||
"category": 123,
|
|
||||||
"nameResourceKey": "vPNPolicyRoutesForThisConnectionName",
|
|
||||||
"descriptionResourceKey": "vPNPolicyRoutesForThisConnectionDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "routes",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
{
|
|
||||||
"nameResourceKey": "enableOption",
|
|
||||||
"value": true,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"nameResourceKey": "disableOption",
|
|
||||||
"value": false,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"entityKey": "enableSplitTunneling",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
{
|
|
||||||
"vpntrustednetwork_windows10vpn": {
|
|
||||||
"columns": [
|
|
||||||
{
|
|
||||||
"metadata": {
|
|
||||||
"dataType": 20,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "vPNPolicyTrustedNetworkDomainColumnName",
|
|
||||||
"descriptionResourceKey": "",
|
|
||||||
"emptyValueResourceKey": "VPNPolicyTrustedNetworkDomainExample",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "trustedNetworkDomains",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"dataType": 21,
|
|
||||||
"category": 129,
|
|
||||||
"nameResourceKey": "vPNPolicyTrustedNetworkDomainName",
|
|
||||||
"descriptionResourceKey": "vPNPolicyTrustedNetworkDomainDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "trustedNetworkDomains",
|
|
||||||
"booleanActions": 0,
|
|
||||||
"policyType": 89,
|
|
||||||
"enabled": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -50,7 +50,7 @@
|
|||||||
"dataType": 20,
|
"dataType": 20,
|
||||||
"category": 140,
|
"category": 140,
|
||||||
"nameResourceKey": "webContentFilterTypePermittedUrlsColumnName",
|
"nameResourceKey": "webContentFilterTypePermittedUrlsColumnName",
|
||||||
"emptyValueResourceKey": "WebContentFilterWhiteListedUrlExample",
|
"emptyValueResourceKey": "WebContentFilterPermittedUrlExample",
|
||||||
"childSettings": [
|
"childSettings": [
|
||||||
|
|
||||||
],
|
],
|
||||||
@@ -86,7 +86,7 @@
|
|||||||
"dataType": 20,
|
"dataType": 20,
|
||||||
"category": 140,
|
"category": 140,
|
||||||
"nameResourceKey": "webContentFilterTypeBlockedUrlsColumnName",
|
"nameResourceKey": "webContentFilterTypeBlockedUrlsColumnName",
|
||||||
"emptyValueResourceKey": "WebContentFilterBlackListedUrlExample",
|
"emptyValueResourceKey": "WebContentFilterBlockedUrlExample",
|
||||||
"childSettings": [
|
"childSettings": [
|
||||||
|
|
||||||
],
|
],
|
||||||
@@ -119,7 +119,7 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "webContentFilterTypeWhitelistedUrlsOption",
|
"nameResourceKey": "webContentFilterTypePermittedUrlsOption",
|
||||||
"value": "#microsoft.graph.iosWebContentFilterSpecificWebsitesAccess",
|
"value": "#microsoft.graph.iosWebContentFilterSpecificWebsitesAccess",
|
||||||
"children": [
|
"children": [
|
||||||
{
|
{
|
||||||
@@ -127,7 +127,7 @@
|
|||||||
"showAsSectionHeader": false,
|
"showAsSectionHeader": false,
|
||||||
"dataType": 8,
|
"dataType": 8,
|
||||||
"category": 140,
|
"category": 140,
|
||||||
"nameResourceKey": "webContentFilterTypeWhitelistedUrlsHeaderName",
|
"nameResourceKey": "webContentFilterTypePermittedUrlsHeaderName",
|
||||||
"descriptionResourceKey": "empty",
|
"descriptionResourceKey": "empty",
|
||||||
"childSettings": [
|
"childSettings": [
|
||||||
|
|
||||||
@@ -144,7 +144,7 @@
|
|||||||
"showAsSectionHeader": false,
|
"showAsSectionHeader": false,
|
||||||
"dataType": 8,
|
"dataType": 8,
|
||||||
"category": 140,
|
"category": 140,
|
||||||
"nameResourceKey": "webContentFilterTypeWhitelistedUrlsLinkTextName",
|
"nameResourceKey": "webContentFilterTypePermittedUrlsLinkTextName",
|
||||||
"descriptionResourceKey": "empty",
|
"descriptionResourceKey": "empty",
|
||||||
"childSettings": [
|
"childSettings": [
|
||||||
|
|
||||||
@@ -162,7 +162,7 @@
|
|||||||
"metadata": {
|
"metadata": {
|
||||||
"dataType": 20,
|
"dataType": 20,
|
||||||
"category": 140,
|
"category": 140,
|
||||||
"nameResourceKey": "webContentFilterTypeWhitelistedUrlsColumnUrlName",
|
"nameResourceKey": "webContentFilterTypePermittedUrlsColumnUrlName",
|
||||||
"emptyValueResourceKey": "kioskModeAppStoreExample",
|
"emptyValueResourceKey": "kioskModeAppStoreExample",
|
||||||
"childSettings": [
|
"childSettings": [
|
||||||
|
|
||||||
@@ -180,7 +180,7 @@
|
|||||||
"metadata": {
|
"metadata": {
|
||||||
"dataType": 20,
|
"dataType": 20,
|
||||||
"category": 140,
|
"category": 140,
|
||||||
"nameResourceKey": "webContentFilterTypeWhitelistedUrlsColumnBookmarkPathName",
|
"nameResourceKey": "webContentFilterTypePermittedUrlsColumnBookmarkPathName",
|
||||||
"emptyValueResourceKey": "WebContentFilterBookmarkPathExample",
|
"emptyValueResourceKey": "WebContentFilterBookmarkPathExample",
|
||||||
"childSettings": [
|
"childSettings": [
|
||||||
|
|
||||||
@@ -198,7 +198,7 @@
|
|||||||
"metadata": {
|
"metadata": {
|
||||||
"dataType": 20,
|
"dataType": 20,
|
||||||
"category": 140,
|
"category": 140,
|
||||||
"nameResourceKey": "webContentFilterTypeWhitelistedUrlsColumnTitleName",
|
"nameResourceKey": "webContentFilterTypePermittedUrlsColumnTitleName",
|
||||||
"emptyValueResourceKey": "WebContentFilterBookmarkTitleExample",
|
"emptyValueResourceKey": "WebContentFilterBookmarkTitleExample",
|
||||||
"childSettings": [
|
"childSettings": [
|
||||||
|
|
||||||
@@ -215,8 +215,8 @@
|
|||||||
],
|
],
|
||||||
"dataType": 21,
|
"dataType": 21,
|
||||||
"category": 140,
|
"category": 140,
|
||||||
"nameResourceKey": "webContentFilterTypeWhitelistedUrlsTableName",
|
"nameResourceKey": "webContentFilterTypeSpecificUrlsTableName",
|
||||||
"descriptionResourceKey": "webContentFilterTypeWhitelistedUrlsTableDescription",
|
"descriptionResourceKey": "webContentFilterTypeSpecificUrlsTableDescription",
|
||||||
"childSettings": [
|
"childSettings": [
|
||||||
|
|
||||||
],
|
],
|
||||||
|
|||||||
@@ -125,6 +125,748 @@
|
|||||||
],
|
],
|
||||||
"enabled": true
|
"enabled": true
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "eAPTLSName",
|
||||||
|
"value": "eapTls",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"isSettingDescription": false,
|
||||||
|
"showAsSectionHeader": false,
|
||||||
|
"dataType": 8,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "trust",
|
||||||
|
"descriptionResourceKey": "trustDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"dataType": 20,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "empty",
|
||||||
|
"descriptionResourceKey": "empty",
|
||||||
|
"emptyValueResourceKey": "trustedServerCertificateNameExample",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "trustedServerCertificateNamesName",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dataType": 21,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "trustedServerCertificateNamesName",
|
||||||
|
"descriptionResourceKey": "trustedServerCertificateNamesDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "trustedServerCertificateNames",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"complexOptions": [
|
||||||
|
{
|
||||||
|
"dataType": 4,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "selectCertificateProfiles",
|
||||||
|
"descriptionResourceKey": "selectRootCertificatesForServerValidationName",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "rootCertificatesForServerValidation",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"unconfiguredValue": "notConfigured",
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dataType": 5,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "selectRootCertificatesForServerValidationName",
|
||||||
|
"descriptionResourceKey": "empty",
|
||||||
|
"emptyValueResourceKey": "selectCertificates",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"isSettingDescription": false,
|
||||||
|
"showAsSectionHeader": false,
|
||||||
|
"dataType": 8,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "authentication",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"value": "certificate",
|
||||||
|
"dataType": 9,
|
||||||
|
"category": 149,
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "authenticationMethod",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"complexOptions": [
|
||||||
|
{
|
||||||
|
"dataType": 4,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "selectCertificateProfile",
|
||||||
|
"descriptionResourceKey": "empty",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "identityCertificateForClientAuthentication",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dataType": 5,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "certificatesOption",
|
||||||
|
"descriptionResourceKey": "empty",
|
||||||
|
"emptyValueResourceKey": "selectCertificate",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 20,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "enableIdentityPrivacyName",
|
||||||
|
"descriptionResourceKey": "enableIdentityPrivacyDescription",
|
||||||
|
"emptyValueResourceKey": "identityPrivacyExample",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "enableOuterIdentityPrivacy",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "eAPTTLSName",
|
||||||
|
"value": "eapTtls",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"isSettingDescription": false,
|
||||||
|
"showAsSectionHeader": false,
|
||||||
|
"dataType": 8,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "trust",
|
||||||
|
"descriptionResourceKey": "trustDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"dataType": 20,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "empty",
|
||||||
|
"descriptionResourceKey": "empty",
|
||||||
|
"emptyValueResourceKey": "trustedServerCertificateNameExample",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "trustedServerCertificateNamesName",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dataType": 21,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "trustedServerCertificateNamesName",
|
||||||
|
"descriptionResourceKey": "trustedServerCertificateNamesDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "trustedServerCertificateNames",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"complexOptions": [
|
||||||
|
{
|
||||||
|
"dataType": 4,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "selectCertificateProfiles",
|
||||||
|
"descriptionResourceKey": "selectRootCertificatesForServerValidationName",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "rootCertificatesForServerValidation",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"unconfiguredValue": "notConfigured",
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dataType": 5,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "selectRootCertificatesForServerValidationName",
|
||||||
|
"descriptionResourceKey": "empty",
|
||||||
|
"emptyValueResourceKey": "selectCertificates",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"isSettingDescription": false,
|
||||||
|
"showAsSectionHeader": false,
|
||||||
|
"dataType": 8,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "authentication",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "authenticationMethodName",
|
||||||
|
"descriptionResourceKey": "authenticationMethodTTLSDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "notConfigured",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "usernameAndPasswordOption",
|
||||||
|
"value": "usernameAndPassword",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "nonEapMethodName",
|
||||||
|
"descriptionResourceKey": "nonEapMethodDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "selectNonEapMethod",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "pAPName",
|
||||||
|
"value": "unencryptedPassword",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "cHAPName",
|
||||||
|
"value": "challengeHandshakeAuthenticationProtocol",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "mSCHAPName",
|
||||||
|
"value": "microsoftChap",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "cHAPTWOName",
|
||||||
|
"value": "microsoftChapVersionTwo",
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "nonEapAuthenticationMethodForEapTtls",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 20,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "enableIdentityPrivacyName",
|
||||||
|
"descriptionResourceKey": "enableIdentityPrivacyDescription",
|
||||||
|
"emptyValueResourceKey": "identityPrivacyExample",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "enableOuterIdentityPrivacy",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "certificatesOption",
|
||||||
|
"value": "certificate",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"complexOptions": [
|
||||||
|
{
|
||||||
|
"dataType": 4,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "selectCertificateProfile",
|
||||||
|
"descriptionResourceKey": "empty",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "identityCertificateForClientAuthentication",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dataType": 5,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "certificatesOption",
|
||||||
|
"descriptionResourceKey": "empty",
|
||||||
|
"emptyValueResourceKey": "selectCertificate",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 20,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "enableIdentityPrivacyName",
|
||||||
|
"descriptionResourceKey": "enableIdentityPrivacyDescription",
|
||||||
|
"emptyValueResourceKey": "identityPrivacyExample",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "enableOuterIdentityPrivacy",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "authenticationMethod",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "lEAPName",
|
||||||
|
"value": "leap",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"value": "certificate",
|
||||||
|
"dataType": 9,
|
||||||
|
"category": 149,
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "authenticationMethod",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "pEAPName",
|
||||||
|
"value": "peap",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"isSettingDescription": false,
|
||||||
|
"showAsSectionHeader": false,
|
||||||
|
"dataType": 8,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "trust",
|
||||||
|
"descriptionResourceKey": "trustDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"dataType": 20,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "empty",
|
||||||
|
"descriptionResourceKey": "empty",
|
||||||
|
"emptyValueResourceKey": "trustedServerCertificateNameExample",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "trustedServerCertificateNamesName",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dataType": 21,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "trustedServerCertificateNamesName",
|
||||||
|
"descriptionResourceKey": "trustedServerCertificateNamesDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "trustedServerCertificateNames",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"complexOptions": [
|
||||||
|
{
|
||||||
|
"dataType": 4,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "selectCertificateProfiles",
|
||||||
|
"descriptionResourceKey": "selectRootCertificatesForServerValidationName",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "rootCertificatesForServerValidation",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"unconfiguredValue": "notConfigured",
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dataType": 5,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "selectRootCertificatesForServerValidationName",
|
||||||
|
"descriptionResourceKey": "empty",
|
||||||
|
"emptyValueResourceKey": "selectCertificates",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"isSettingDescription": false,
|
||||||
|
"showAsSectionHeader": false,
|
||||||
|
"dataType": 8,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "authentication",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "authenticationMethodName",
|
||||||
|
"descriptionResourceKey": "authenticationMethodName",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "notConfigured",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "usernameAndPasswordOption",
|
||||||
|
"value": "usernameAndPassword",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"dataType": 20,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "enableIdentityPrivacyName",
|
||||||
|
"descriptionResourceKey": "enableIdentityPrivacyDescription",
|
||||||
|
"emptyValueResourceKey": "identityPrivacyExample",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "enableOuterIdentityPrivacy",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "certificatesOption",
|
||||||
|
"value": "certificate",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"complexOptions": [
|
||||||
|
{
|
||||||
|
"dataType": 4,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "selectCertificateProfile",
|
||||||
|
"descriptionResourceKey": "empty",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "identityCertificateForClientAuthentication",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dataType": 5,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "certificatesOption",
|
||||||
|
"descriptionResourceKey": "empty",
|
||||||
|
"emptyValueResourceKey": "selectCertificate",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 20,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "enableIdentityPrivacyName",
|
||||||
|
"descriptionResourceKey": "enableIdentityPrivacyDescription",
|
||||||
|
"emptyValueResourceKey": "identityPrivacyExample",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "enableOuterIdentityPrivacy",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "authenticationMethod",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "eapType",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "eAPTypeName",
|
||||||
|
"descriptionResourceKey": "eAPTypeDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "selectEAP",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "eAPFASTName",
|
||||||
|
"value": "eapFast",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"value": "certificate",
|
||||||
|
"dataType": 9,
|
||||||
|
"category": 149,
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "authenticationMethod",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 149,
|
||||||
|
"nameResourceKey": "pACHeading",
|
||||||
|
"descriptionResourceKey": "empty",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "dontUsePACName",
|
||||||
|
"value": "noProtectedAccessCredential",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "usePACName",
|
||||||
|
"value": "useProtectedAccessCredential",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "provisionPACName",
|
||||||
|
"value": "useProtectedAccessCredentialAndProvision",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "provisionPACAnonName",
|
||||||
|
"value": "useProtectedAccessCredentialAndProvisionAnonymously",
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "eapFastConfiguration",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "noProtectedAccessCredential",
|
||||||
|
"policyType": 68,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"nameResourceKey": "eAPTLSName",
|
"nameResourceKey": "eAPTLSName",
|
||||||
"value": "eapTls",
|
"value": "eapTls",
|
||||||
@@ -794,7 +1536,7 @@
|
|||||||
"entityKey": "eapType",
|
"entityKey": "eapType",
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"policyType": 68,
|
"policyType": 68,
|
||||||
"enabled": true
|
"enabled": false
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -183,8 +183,78 @@
|
|||||||
"booleanActions": 3,
|
"booleanActions": 3,
|
||||||
"defaultValue": false,
|
"defaultValue": false,
|
||||||
"policyType": 13,
|
"policyType": 13,
|
||||||
|
"enabled": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 127,
|
||||||
|
"nameResourceKey": "blockAddingAccountsName",
|
||||||
|
"descriptionResourceKey": "blockAddingAccountsDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "allowAllAccountsExceptGoogle",
|
||||||
|
"value": "allowAllExceptGoogleAccounts",
|
||||||
"enabled": true
|
"enabled": true
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "allowAllAccounts",
|
||||||
|
"value": "allowAll",
|
||||||
|
"children": [
|
||||||
|
{
|
||||||
|
"columns": [
|
||||||
|
{
|
||||||
|
"metadata": {
|
||||||
|
"dataType": 20,
|
||||||
|
"category": 127,
|
||||||
|
"nameResourceKey": "domainAllowListTableName",
|
||||||
|
"emptyValueResourceKey": "domainAllowListTableEmptyValueExample",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "empty",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 13,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dataType": 21,
|
||||||
|
"category": 127,
|
||||||
|
"nameResourceKey": "domainAllowListName",
|
||||||
|
"descriptionResourceKey": "domainAllowListDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "allowedGoogleAccountDomains",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 13,
|
||||||
|
"enabled": false
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "blockAllAccounts",
|
||||||
|
"value": "blockAll",
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "workProfileAccountUse",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "allowAllExceptGoogleAccounts",
|
||||||
|
"unconfiguredValue": "allowAllExceptGoogleAccounts",
|
||||||
|
"policyType": 13,
|
||||||
|
"enabled": false
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"dataType": 0,
|
"dataType": 0,
|
||||||
"category": 127,
|
"category": 127,
|
||||||
@@ -304,29 +374,56 @@
|
|||||||
"enabled": true
|
"enabled": true
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"dataType": 0,
|
"dataType": 10,
|
||||||
"category": 127,
|
"category": 127,
|
||||||
"nameResourceKey": "workProfileRequirePasswordName",
|
"nameResourceKey": "androidTwelveDeprecationInfoBox",
|
||||||
"descriptionResourceKey": "workProfileRequirePasswordDescription",
|
|
||||||
"childSettings": [
|
|
||||||
{
|
|
||||||
"dataType": 14,
|
|
||||||
"category": 127,
|
|
||||||
"nameResourceKey": "workProfileMinimumPasswordLengthName",
|
|
||||||
"descriptionResourceKey": "workProfileMinimumPasswordLengthDescription",
|
|
||||||
"emptyValueResourceKey": "workProfileMinimumPasswordLengthEmptyValueKey",
|
|
||||||
"childSettings": [
|
"childSettings": [
|
||||||
|
|
||||||
],
|
],
|
||||||
"options": [
|
"options": [
|
||||||
|
|
||||||
],
|
],
|
||||||
"entityKey": "workProfilePasswordMinimumLength",
|
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"defaultValue": 4,
|
|
||||||
"policyType": 13,
|
"policyType": 13,
|
||||||
"enabled": true
|
"enabled": true
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"isSettingDescription": false,
|
||||||
|
"showAsSectionHeader": true,
|
||||||
|
"dataType": 8,
|
||||||
|
"category": 127,
|
||||||
|
"nameResourceKey": "allAndroidVersionsPasswordHeader",
|
||||||
|
"childSettings": [
|
||||||
|
{
|
||||||
|
"isSettingDescription": false,
|
||||||
|
"showAsSectionHeader": false,
|
||||||
|
"dataType": 8,
|
||||||
|
"category": 127,
|
||||||
|
"nameResourceKey": "allAndroidVersionsPasswordHeaderDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 13,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 13,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 0,
|
||||||
|
"category": 127,
|
||||||
|
"nameResourceKey": "workProfileRequirePasswordName",
|
||||||
|
"descriptionResourceKey": "workProfileRequirePasswordDescription",
|
||||||
|
"childSettings": [
|
||||||
{
|
{
|
||||||
"dataType": 16,
|
"dataType": 16,
|
||||||
"category": 127,
|
"category": 127,
|
||||||
@@ -430,6 +527,208 @@
|
|||||||
"policyType": 13,
|
"policyType": 13,
|
||||||
"enabled": true
|
"enabled": true
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"dataType": 14,
|
||||||
|
"category": 127,
|
||||||
|
"nameResourceKey": "workProfileNumberOfPreviousPasswordsToBlockName",
|
||||||
|
"descriptionResourceKey": "workProfileNumberOfPreviousPasswordsToBlockDescription",
|
||||||
|
"emptyValueResourceKey": "workProfileNumberOfPreviousPasswordsToBlockEmptyValueKey",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "workProfilePasswordPreviousPasswordBlockCount",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": 5,
|
||||||
|
"policyType": 13,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 0,
|
||||||
|
"category": 127,
|
||||||
|
"nameResourceKey": "workProfileBlockFaceUnlockName",
|
||||||
|
"descriptionResourceKey": "workProfileBlockFaceUnlockDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "workProfilePasswordBlockFaceUnlock",
|
||||||
|
"booleanActions": 3,
|
||||||
|
"defaultValue": false,
|
||||||
|
"policyType": 13,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 0,
|
||||||
|
"category": 127,
|
||||||
|
"nameResourceKey": "workProfileBlockFingerprintUnlockName",
|
||||||
|
"descriptionResourceKey": "workProfileBlockFingerprintUnlockDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "workProfilePasswordBlockFingerprintUnlock",
|
||||||
|
"booleanActions": 3,
|
||||||
|
"defaultValue": false,
|
||||||
|
"policyType": 13,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 0,
|
||||||
|
"category": 127,
|
||||||
|
"nameResourceKey": "workProfileBlockIrisUnlockName",
|
||||||
|
"descriptionResourceKey": "workProfileBlockIrisUnlockDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "workProfilePasswordBlockIrisUnlock",
|
||||||
|
"booleanActions": 3,
|
||||||
|
"defaultValue": false,
|
||||||
|
"policyType": 13,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 0,
|
||||||
|
"category": 127,
|
||||||
|
"nameResourceKey": "workProfileBlockSmartLockName",
|
||||||
|
"descriptionResourceKey": "workProfileBlockSmartLockDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "workProfilePasswordBlockTrustAgents",
|
||||||
|
"booleanActions": 3,
|
||||||
|
"defaultValue": false,
|
||||||
|
"policyType": 13,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 0,
|
||||||
|
"category": 127,
|
||||||
|
"nameResourceKey": "blockUnifiedPasswordForWorkProfileName",
|
||||||
|
"descriptionResourceKey": "blockUnifiedPasswordForWorkProfileDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"entityKey": "blockUnifiedPasswordForWorkProfile",
|
||||||
|
"booleanActions": 3,
|
||||||
|
"defaultValue": false,
|
||||||
|
"policyType": 13,
|
||||||
|
"enabled": false
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"isSettingDescription": false,
|
||||||
|
"showAsSectionHeader": true,
|
||||||
|
"dataType": 8,
|
||||||
|
"category": 127,
|
||||||
|
"nameResourceKey": "androidTwelveAndAbovePasswordHeader",
|
||||||
|
"childSettings": [
|
||||||
|
{
|
||||||
|
"isSettingDescription": false,
|
||||||
|
"showAsSectionHeader": false,
|
||||||
|
"dataType": 8,
|
||||||
|
"category": 127,
|
||||||
|
"nameResourceKey": "androidTwelveAndAbovePasswordHeaderDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 13,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 13,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"dataType": 16,
|
||||||
|
"category": 127,
|
||||||
|
"nameResourceKey": "workProfileRequiredPasswordComplexityName",
|
||||||
|
"descriptionResourceKey": "workProfileRequiredPasswordComplexityDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
{
|
||||||
|
"nameResourceKey": "none",
|
||||||
|
"value": "none",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "low",
|
||||||
|
"value": "low",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "medium",
|
||||||
|
"value": "medium",
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"nameResourceKey": "high",
|
||||||
|
"value": "high",
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"entityKey": "workProfileRequiredPasswordComplexity",
|
||||||
|
"booleanActions": 0,
|
||||||
|
"defaultValue": "none",
|
||||||
|
"unconfiguredValue": "none",
|
||||||
|
"policyType": 13,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"isSettingDescription": false,
|
||||||
|
"showAsSectionHeader": true,
|
||||||
|
"dataType": 8,
|
||||||
|
"category": 127,
|
||||||
|
"nameResourceKey": "androidElevenAndBelowPasswordHeader",
|
||||||
|
"childSettings": [
|
||||||
|
{
|
||||||
|
"isSettingDescription": false,
|
||||||
|
"showAsSectionHeader": false,
|
||||||
|
"dataType": 8,
|
||||||
|
"category": 127,
|
||||||
|
"nameResourceKey": "androidElevenAndBelowPasswordHeaderDescription",
|
||||||
|
"childSettings": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 13,
|
||||||
|
"enabled": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"options": [
|
||||||
|
|
||||||
|
],
|
||||||
|
"booleanActions": 0,
|
||||||
|
"policyType": 13,
|
||||||
|
"enabled": true
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"dataType": 16,
|
"dataType": 16,
|
||||||
"category": 127,
|
"category": 127,
|
||||||
@@ -549,86 +848,18 @@
|
|||||||
{
|
{
|
||||||
"dataType": 14,
|
"dataType": 14,
|
||||||
"category": 127,
|
"category": 127,
|
||||||
"nameResourceKey": "workProfileNumberOfPreviousPasswordsToBlockName",
|
"nameResourceKey": "workProfileMinimumPasswordLengthName",
|
||||||
"descriptionResourceKey": "workProfileNumberOfPreviousPasswordsToBlockDescription",
|
"descriptionResourceKey": "workProfileMinimumPasswordLengthDescription",
|
||||||
"emptyValueResourceKey": "workProfileNumberOfPreviousPasswordsToBlockEmptyValueKey",
|
"emptyValueResourceKey": "workProfileMinimumPasswordLengthEmptyValueKey",
|
||||||
"childSettings": [
|
"childSettings": [
|
||||||
|
|
||||||
],
|
],
|
||||||
"options": [
|
"options": [
|
||||||
|
|
||||||
],
|
],
|
||||||
"entityKey": "workProfilePasswordPreviousPasswordBlockCount",
|
"entityKey": "workProfilePasswordMinimumLength",
|
||||||
"booleanActions": 0,
|
"booleanActions": 0,
|
||||||
"defaultValue": 5,
|
"defaultValue": 4,
|
||||||
"policyType": 13,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 0,
|
|
||||||
"category": 127,
|
|
||||||
"nameResourceKey": "workProfileBlockFaceUnlockName",
|
|
||||||
"descriptionResourceKey": "workProfileBlockFaceUnlockDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "workProfilePasswordBlockFaceUnlock",
|
|
||||||
"booleanActions": 3,
|
|
||||||
"defaultValue": false,
|
|
||||||
"policyType": 13,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 0,
|
|
||||||
"category": 127,
|
|
||||||
"nameResourceKey": "workProfileBlockFingerprintUnlockName",
|
|
||||||
"descriptionResourceKey": "workProfileBlockFingerprintUnlockDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "workProfilePasswordBlockFingerprintUnlock",
|
|
||||||
"booleanActions": 3,
|
|
||||||
"defaultValue": false,
|
|
||||||
"policyType": 13,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 0,
|
|
||||||
"category": 127,
|
|
||||||
"nameResourceKey": "workProfileBlockIrisUnlockName",
|
|
||||||
"descriptionResourceKey": "workProfileBlockIrisUnlockDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "workProfilePasswordBlockIrisUnlock",
|
|
||||||
"booleanActions": 3,
|
|
||||||
"defaultValue": false,
|
|
||||||
"policyType": 13,
|
|
||||||
"enabled": true
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"dataType": 0,
|
|
||||||
"category": 127,
|
|
||||||
"nameResourceKey": "workProfileBlockSmartLockName",
|
|
||||||
"descriptionResourceKey": "workProfileBlockSmartLockDescription",
|
|
||||||
"childSettings": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"options": [
|
|
||||||
|
|
||||||
],
|
|
||||||
"entityKey": "workProfilePasswordBlockTrustAgents",
|
|
||||||
"booleanActions": 3,
|
|
||||||
"defaultValue": false,
|
|
||||||
"policyType": 13,
|
"policyType": 13,
|
||||||
"enabled": true
|
"enabled": true
|
||||||
}
|
}
|
||||||
|
|||||||
+3001
-1677
File diff suppressed because it is too large
Load Diff
+3002
-1678
File diff suppressed because it is too large
Load Diff
+2979
-1655
File diff suppressed because it is too large
Load Diff
+2996
-1672
File diff suppressed because it is too large
Load Diff
+3026
-1702
File diff suppressed because it is too large
Load Diff
+2994
-1670
File diff suppressed because it is too large
Load Diff
+3003
-1679
File diff suppressed because it is too large
Load Diff
+3001
-1677
File diff suppressed because it is too large
Load Diff
+3005
-1681
File diff suppressed because it is too large
Load Diff
+2992
-1668
File diff suppressed because it is too large
Load Diff
+3002
-1678
File diff suppressed because it is too large
Load Diff
+2979
-1655
File diff suppressed because it is too large
Load Diff
+2999
-1675
File diff suppressed because it is too large
Load Diff
+3002
-1678
File diff suppressed because it is too large
Load Diff
+3001
-1677
File diff suppressed because it is too large
Load Diff
+2979
-1655
File diff suppressed because it is too large
Load Diff
+2979
-1655
File diff suppressed because it is too large
Load Diff
+2993
-1669
File diff suppressed because it is too large
Load Diff
+2989
-1665
File diff suppressed because it is too large
Load Diff
+2979
-1655
File diff suppressed because it is too large
Load Diff
@@ -11,7 +11,7 @@ Objects can be compared based on Properties or Documentatation info.
|
|||||||
|
|
||||||
function Get-ModuleVersion
|
function Get-ModuleVersion
|
||||||
{
|
{
|
||||||
'1.0.9'
|
'1.0.11'
|
||||||
}
|
}
|
||||||
|
|
||||||
function Invoke-InitializeModule
|
function Invoke-InitializeModule
|
||||||
@@ -422,7 +422,7 @@ function Invoke-BulkCompareNamedObjects
|
|||||||
Write-Log "Compare $($item.ObjectType.Title) objects"
|
Write-Log "Compare $($item.ObjectType.Title) objects"
|
||||||
Write-Log "----------------------------------------------------------------"
|
Write-Log "----------------------------------------------------------------"
|
||||||
|
|
||||||
$graphObjects = @(Get-GraphObjects -property $item.ObjectType.ViewProperties -objectType $item.ObjectType)
|
[array]$graphObjects = Get-GraphObjects -property $item.ObjectType.ViewProperties -objectType $item.ObjectType
|
||||||
|
|
||||||
$nameProp = ?? $item.ObjectType.NameProperty "displayName"
|
$nameProp = ?? $item.ObjectType.NameProperty "displayName"
|
||||||
|
|
||||||
@@ -516,7 +516,11 @@ function Start-BulkCompareExportObjects
|
|||||||
Write-Log "****************************************************************"
|
Write-Log "****************************************************************"
|
||||||
$compareObjectsResult = @()
|
$compareObjectsResult = @()
|
||||||
|
|
||||||
$txtNameFilter = (Get-XamlProperty $global:ccContentProviderOptions.Content "txtCompareNameFilter" "Text").Trim()
|
$txtNameFilter = (Get-XamlProperty $global:ccContentProviderOptions.Content "txtCompareNameFilter" "Text")
|
||||||
|
if($txtNameFilter -is [String])
|
||||||
|
{
|
||||||
|
$txtNameFilter = $txtNameFilter.Trim()
|
||||||
|
}
|
||||||
$rootFolder = (Get-XamlProperty $global:ccContentProviderOptions.Content "txtExportPath" "Text")
|
$rootFolder = (Get-XamlProperty $global:ccContentProviderOptions.Content "txtExportPath" "Text")
|
||||||
|
|
||||||
$compareProps = $script:defaultCompareProps
|
$compareProps = $script:defaultCompareProps
|
||||||
@@ -561,7 +565,7 @@ function Start-BulkCompareExportObjects
|
|||||||
{
|
{
|
||||||
Save-Setting "" "LastUsedFullPath" $folder
|
Save-Setting "" "LastUsedFullPath" $folder
|
||||||
|
|
||||||
$graphObjects = @(Get-GraphObjects -property $item.ObjectType.ViewProperties -objectType $item.ObjectType)
|
[array]$graphObjects = Get-GraphObjects -property $item.ObjectType.ViewProperties -objectType $item.ObjectType
|
||||||
|
|
||||||
foreach ($fileObj in @(Get-GraphFileObjects $folder -ObjectType $item.ObjectType))
|
foreach ($fileObj in @(Get-GraphFileObjects $folder -ObjectType $item.ObjectType))
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -1,6 +1,6 @@
|
|||||||
function Get-ModuleVersion
|
function Get-ModuleVersion
|
||||||
{
|
{
|
||||||
'1.0.1'
|
'1.0.2'
|
||||||
}
|
}
|
||||||
|
|
||||||
function Invoke-InitializeModule
|
function Invoke-InitializeModule
|
||||||
@@ -106,7 +106,7 @@ function Start-BulkCopyObjects
|
|||||||
Write-Log "Copy $($item.ObjectType.Title) objects"
|
Write-Log "Copy $($item.ObjectType.Title) objects"
|
||||||
Write-Log "----------------------------------------------------------------"
|
Write-Log "----------------------------------------------------------------"
|
||||||
|
|
||||||
$graphObjects = @(Get-GraphObjects -property $item.ObjectType.ViewProperties -objectType $item.ObjectType)
|
[array]$graphObjects = Get-GraphObjects -property $item.ObjectType.ViewProperties -objectType $item.ObjectType
|
||||||
|
|
||||||
$nameProp = ?? $item.ObjectType.NameProperty "displayName"
|
$nameProp = ?? $item.ObjectType.NameProperty "displayName"
|
||||||
|
|
||||||
|
|||||||
+899
-222
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,657 @@
|
|||||||
|
function Get-ModuleVersion
|
||||||
|
{
|
||||||
|
'1.0.1'
|
||||||
|
}
|
||||||
|
|
||||||
|
function Invoke-InitializeModule
|
||||||
|
{
|
||||||
|
Add-OutputType ([PSCustomObject]@{
|
||||||
|
Name="HTML"
|
||||||
|
Value="html"
|
||||||
|
OutputOptions = (Add-HTMLOptionsControl)
|
||||||
|
#Activate = { Invoke-HTMLActivate @args }
|
||||||
|
PreProcess = { Invoke-HTMLPreProcessItems @args }
|
||||||
|
NewObjectGroup = { Invoke-HTMLNewObjectGroup2 @args }
|
||||||
|
NewObjectType = { Invoke-HTMLNewObjectType2 @args }
|
||||||
|
Process = { Invoke-HTMLProcessItem @args }
|
||||||
|
PostProcess = { Invoke-HTMLPostProcessItems @args }
|
||||||
|
ProcessAllObjects = { Invoke-HTMLProcessAllObjects @args }
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function Add-HTMLOptionsControl
|
||||||
|
{
|
||||||
|
$script:htmlForm = Get-XamlObject ($global:AppRootFolder + "\Xaml\DocumentationHTMLOptions.xaml") -AddVariables
|
||||||
|
|
||||||
|
Set-XamlProperty $script:htmlForm "cbHTMLDocumentOutputFile" "ItemsSource" ("[ { Name: `"Single file`",Value: `"Full`" }, { Name: `"One file per object`",Value: `"Object`" }]" | ConvertFrom-Json)
|
||||||
|
Set-XamlProperty $script:htmlForm "cbHTMLDocumentOutputFile" "SelectedValue" (Get-Setting "Documentation" "HTMLDocumentFileType" "Full")
|
||||||
|
Set-XamlProperty $script:htmlForm "chkHTMLOpenDocument" "IsChecked" (Get-Setting "Documentation" "HTMLOpenFile" $true)
|
||||||
|
|
||||||
|
Set-XamlProperty $script:htmlForm "txtHTMLDocumentName" "Text" (Get-Setting "Documentation" "HTMLDocumentName" "")
|
||||||
|
Set-XamlProperty $script:htmlForm "txtHTMLCSSFile" "Text" (Get-Setting "Documentation" "HTMLCSSFile" "")
|
||||||
|
|
||||||
|
Add-XamlEvent $script:htmlForm "browseHTMLDocumentName" "add_click" {
|
||||||
|
$sf = [System.Windows.Forms.SaveFileDialog]::new()
|
||||||
|
$sf.DefaultExt = "*.html"
|
||||||
|
$sf.Filter = "HTML (*.html)|*.html|All files (*.*)|*.*"
|
||||||
|
if($sf.ShowDialog() -eq "OK")
|
||||||
|
{
|
||||||
|
Set-XamlProperty $script:htmlForm "txtHTMLDocumentName" "Text" $sf.FileName
|
||||||
|
Save-Setting "Documentation" "HTMLDocumentName" $sf.FileName
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Add-XamlEvent $script:htmlForm "browseHTMLCSSFile" "add_click" {
|
||||||
|
$of = [System.Windows.Forms.OpenFileDialog]::new()
|
||||||
|
$of.Multiselect = $false
|
||||||
|
$of.Filter = "CSS Files (*.css)|*.css|All files (*.*)|*.*"
|
||||||
|
if($of.ShowDialog())
|
||||||
|
{
|
||||||
|
Set-XamlProperty $script:htmlForm "txtHTMLCSSFile" "Text" $of.FileName
|
||||||
|
Save-Setting "Documentation" "HTMLCSSFile" $of.FileName
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$script:htmlForm
|
||||||
|
}
|
||||||
|
function Invoke-HTMLPreProcessItems
|
||||||
|
{
|
||||||
|
$script:sectionAnchors = @()
|
||||||
|
$script:totAnchors = @()
|
||||||
|
$script:htmlStrings = $null
|
||||||
|
$script:currentItemFileName = $null
|
||||||
|
|
||||||
|
Save-Setting "Documentation" "HTMLDocumentName" (Get-XamlProperty $script:htmlForm "txtHTMLDocumentName" "Text" "")
|
||||||
|
Save-Setting "Documentation" "HTMLCSSFile" (Get-XamlProperty $script:htmlForm "txtHTMLCSSFile" "Text" "")
|
||||||
|
Save-Setting "Documentation" "HTMLOpenFile" (Get-XamlProperty $script:htmlForm "chkHTMLOpenDocument" "IsChecked")
|
||||||
|
Save-Setting "Documentation" "HTMLDocumentFileType" (Get-XamlProperty $script:htmlForm "cbHTMLDocumentOutputFile" "SelectedValue" '')
|
||||||
|
|
||||||
|
$defaultCSSFile = $global:AppRootFolder + "\Documentation\DefaultHTMLStyle.css"
|
||||||
|
$HTMLCssFile = Get-XamlProperty $script:htmlForm "txtHTMLCSSFile" "Text" $defaultCSSFile
|
||||||
|
|
||||||
|
if(-not $HTMLCssFile)
|
||||||
|
{
|
||||||
|
Write-Log "CSS file not specified. Using default" 2
|
||||||
|
$HTMLCssFile = $defaultCSSFile
|
||||||
|
}
|
||||||
|
elseif([IO.File]::Exists($HTMLCssFile) -eq -$false)
|
||||||
|
{
|
||||||
|
Write-Log "CSS file $($HTMLCssFile) not found. Using default" 2
|
||||||
|
$HTMLCssFile = $defaultCSSFile
|
||||||
|
}
|
||||||
|
|
||||||
|
$cssStyle = ""
|
||||||
|
if([IO.File]::Exists($HTMLCssFile))
|
||||||
|
{
|
||||||
|
Write-Log "Using CSS file $($HTMLCssFile)"
|
||||||
|
$cssStyle = ((Get-Content -Raw -Path $HTMLCssFile) + [System.Environment]::NewLine)
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Write-Log "CSS file $($HTMLCssFile) not found. No styles applied" 2
|
||||||
|
}
|
||||||
|
|
||||||
|
$script:cssStyle = $cssStyle
|
||||||
|
|
||||||
|
$fileName = Expand-FileName (Get-XamlProperty $script:htmlForm "txtHTMLDocumentName" "Text" "%MyDocuments%\%Organization%-%Date%.html")
|
||||||
|
|
||||||
|
$script:outFile = $fileName
|
||||||
|
$script:documentPath = [io.path]::GetDirectoryName($fileName)
|
||||||
|
|
||||||
|
$script:outputType = (Get-XamlProperty $script:htmlForm "cbHTMLDocumentOutputFile" "SelectedValue" "Full")
|
||||||
|
|
||||||
|
if($script:outputType -eq "Object")
|
||||||
|
{
|
||||||
|
Write-Log "Document one file for each object + index file"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Write-Log "Document one single file for all objects"
|
||||||
|
$script:outputType = "Full"
|
||||||
|
$script:htmlStrings = [System.Text.StringBuilder]::new()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function Invoke-HTMLPostProcessItems
|
||||||
|
{
|
||||||
|
$userName = $global:me.displayName
|
||||||
|
if($global:me.givenName -and $global:me.surname)
|
||||||
|
{
|
||||||
|
$userName = ($global:me.givenName + " " + $global:me.surname)
|
||||||
|
}
|
||||||
|
|
||||||
|
$script:htmlContent = [System.Text.StringBuilder]::new()
|
||||||
|
$script:htmlContent.AppendLine("<HTML>")
|
||||||
|
|
||||||
|
$script:htmlContent.AppendLine($script:cssStyle)
|
||||||
|
|
||||||
|
$script:htmlContent.AppendLine("<H1 class='header-level1'>$((?? $script:htmlDocTitle "Intune documentation"))</H1>")
|
||||||
|
|
||||||
|
$mail = ""
|
||||||
|
if($global:me.mail)
|
||||||
|
{
|
||||||
|
$mail = " ($($global:me.mail))"
|
||||||
|
}
|
||||||
|
|
||||||
|
$script:htmlContent.AppendLine("Organization: $($global:Organization.displayName)<br />")
|
||||||
|
$script:htmlContent.AppendLine("Generated by: $userName$mail<br />")
|
||||||
|
$script:htmlContent.AppendLine("Generated: $((Get-Date).ToShortDateString()) $((Get-Date).ToLongTimeString())<br />")
|
||||||
|
|
||||||
|
if($script:sectionAnchors.Count -gt 0)
|
||||||
|
{
|
||||||
|
$script:htmlContent.AppendLine("<br />")
|
||||||
|
$script:htmlContent.AppendLine("<H2 class='header-level2'>Table of Contents</H2>")
|
||||||
|
}
|
||||||
|
|
||||||
|
$tocMaxLevel = 4
|
||||||
|
foreach($header in $script:sectionAnchors)
|
||||||
|
{
|
||||||
|
if($tocMaxLevel -gt 0 -and $header.Level -gt $tocMaxLevel)
|
||||||
|
{
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
$script:htmlContent.AppendLine("<a href='$($header.FileName)#$($header.Anchor)' class='anchor-style anchor-level$($header.Level)'>$($header.Name)</a><br />")
|
||||||
|
}
|
||||||
|
|
||||||
|
if($script:sectionAnchors.Count -gt 0)
|
||||||
|
{
|
||||||
|
$script:htmlContent.AppendLine("<br />")
|
||||||
|
}
|
||||||
|
|
||||||
|
$htmlText = $script:htmlContent.ToString()
|
||||||
|
if($script:outputType -eq "Full")
|
||||||
|
{
|
||||||
|
$htmlText += $script:htmlStrings.ToString()
|
||||||
|
}
|
||||||
|
$htmlText += "</HTML>"
|
||||||
|
|
||||||
|
Save-DocumentationFile $htmlText $script:outFile -OpenFile:((Get-Setting "Documentation" "HTMLOpenFile" $true) -eq $true)
|
||||||
|
}
|
||||||
|
|
||||||
|
function Invoke-HTMLNewObjectGroup
|
||||||
|
{
|
||||||
|
param($obj, $documentedObj)
|
||||||
|
|
||||||
|
$script:objectHeaderLevel = 2
|
||||||
|
|
||||||
|
$objectTypeString = Get-ObjectTypeString $obj.Object $obj.ObjectType
|
||||||
|
|
||||||
|
Add-HTMLHeader (?? $objectTypeString $obj.ObjectType.Title)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function Invoke-HTMLNewObjectType
|
||||||
|
{
|
||||||
|
param($obj, $documentedObj, [int]$groupCategoryCount = 0)
|
||||||
|
|
||||||
|
$script:objectHeaderLevel = 3
|
||||||
|
|
||||||
|
if($obj.ObjectType.GroupId -eq "EndpointSecurity")
|
||||||
|
{
|
||||||
|
$objectTypeString = $obj.CategoryName
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$objectTypeString = $obj.ObjectType.Title
|
||||||
|
}
|
||||||
|
|
||||||
|
Add-HTMLHeader (?? $objectTypeString $obj.ObjectType.Title)
|
||||||
|
|
||||||
|
$script:objectHeaderLevel = 4
|
||||||
|
}
|
||||||
|
|
||||||
|
function Invoke-HTMLNewObjectGroup2
|
||||||
|
{
|
||||||
|
param($groupId)
|
||||||
|
|
||||||
|
$script:objectHeaderLevel = 2
|
||||||
|
|
||||||
|
$objectTypeString = Get-ObjectTypeString -ObjectType $groupId
|
||||||
|
|
||||||
|
Add-HTMLHeader (?? $objectTypeString $obj.ObjectType.Title)
|
||||||
|
}
|
||||||
|
|
||||||
|
function Invoke-HTMLNewObjectType2
|
||||||
|
{
|
||||||
|
param($objectTypeName)
|
||||||
|
|
||||||
|
$script:objectHeaderLevel = 3
|
||||||
|
|
||||||
|
Add-HTMLHeader $objectTypeName
|
||||||
|
|
||||||
|
$script:objectHeaderLevel = 4
|
||||||
|
}
|
||||||
|
|
||||||
|
function Add-HTMLHeader
|
||||||
|
{
|
||||||
|
param ($headerText, [int]$level = $script:objectHeaderLevel, [switch]$ToT, [switch]$SkipTOC)
|
||||||
|
|
||||||
|
if($script:htmlStrings)
|
||||||
|
{
|
||||||
|
$prefix = ""
|
||||||
|
if($ToT -eq $true)
|
||||||
|
{
|
||||||
|
$prefix = "Table $(($script:totAnchors.Count + 1)). "
|
||||||
|
}
|
||||||
|
|
||||||
|
if($ToT -eq $true)
|
||||||
|
{
|
||||||
|
$sectionAnchor = "table-$(($script:totAnchors.Count + 1))"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$sectionAnchor = "section-$(($script:sectionAnchors.Count + 1))"
|
||||||
|
}
|
||||||
|
|
||||||
|
$script:htmlStrings.AppendLine("<H$($level) id=`"$prefix$($sectionAnchor)`" class='header-level$($level)'>$headerText</H$($level)>")
|
||||||
|
|
||||||
|
$FileName = $script:currentItemFileName
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$sectionAnchor = $null
|
||||||
|
$FileName = $null
|
||||||
|
}
|
||||||
|
|
||||||
|
if($ToT -eq $true)
|
||||||
|
{
|
||||||
|
$script:totAnchors += [PSCustomObject]@{
|
||||||
|
Name = $headerText
|
||||||
|
Anchor = $sectionAnchor
|
||||||
|
Level = $level
|
||||||
|
FileName = $FileName
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elseif($SkipTOC -ne $true)
|
||||||
|
{
|
||||||
|
$script:sectionAnchors += [PSCustomObject]@{
|
||||||
|
Name = $headerText
|
||||||
|
Anchor = $sectionAnchor
|
||||||
|
Level = $level
|
||||||
|
FileName = $FileName
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
function Invoke-HTMLProcessItem
|
||||||
|
{
|
||||||
|
param($obj, $objectType, $documentedObj)
|
||||||
|
|
||||||
|
if(!$documentedObj -or !$obj -or !$objectType) { return }
|
||||||
|
|
||||||
|
$objName = Get-GraphObjectName $obj $objectType
|
||||||
|
|
||||||
|
if($script:outputType -eq "Object")
|
||||||
|
{
|
||||||
|
$script:totAnchors = @()
|
||||||
|
$script:htmlStrings = [System.Text.StringBuilder]::new()
|
||||||
|
$script:currentItemFileName = (Remove-InvalidFileNameChars "$($objName).html")
|
||||||
|
}
|
||||||
|
|
||||||
|
Add-HTMLHeader $objName
|
||||||
|
|
||||||
|
$script:htmlStrings.AppendLine("<br />")
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
foreach($tableType in @("BasicInfo","FilteredSettings"))
|
||||||
|
{
|
||||||
|
if($tableType -eq "BasicInfo")
|
||||||
|
{
|
||||||
|
$properties = @("Name","Value")
|
||||||
|
}
|
||||||
|
elseif($global:txtHTMLDocumentationProperties.SelectedValue -eq 'extended' -and $documentedObj.DisplayProperties)
|
||||||
|
{
|
||||||
|
$properties = @("Name","Value","Description")
|
||||||
|
}
|
||||||
|
elseif($global:txtHTMLDocumentationProperties.SelectedValue -eq 'custom' -and $global:txtHTMLCustomProperties.Text)
|
||||||
|
{
|
||||||
|
$properties = @()
|
||||||
|
|
||||||
|
foreach($prop in $global:txtHTMLCustomProperties.Text.Split(","))
|
||||||
|
{
|
||||||
|
# This will add language support for custom columens (or replacing existing header)
|
||||||
|
$propInfo = $prop.Split('=')
|
||||||
|
if(($propInfo | measure).Count -gt 1)
|
||||||
|
{
|
||||||
|
$properties += $propInfo[0]
|
||||||
|
Set-DocColumnHeaderLanguageId $propInfo[0] $propInfo[1]
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$properties += $prop
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$properties = (?? $documentedObj.DefaultDocumentationProperties (@("Name","Value")))
|
||||||
|
}
|
||||||
|
|
||||||
|
$lngId = ?: ($tableType -eq "BasicInfo") "SettingDetails.basics" "TableHeaders.settings" -AddCategories
|
||||||
|
|
||||||
|
Add-HTMLTableItems $obj $objectType ($documentedObj.$tableType) $properties $lngId -AddCategories -AddSubcategories
|
||||||
|
}
|
||||||
|
|
||||||
|
if(($documentedObj.ComplianceActions | measure).Count -gt 0)
|
||||||
|
{
|
||||||
|
$properties = @("Action","Schedule","MessageTemplate","EmailCC")
|
||||||
|
|
||||||
|
Add-HTMLTableItems $obj $objectType $documentedObj.ComplianceActions $properties "Category.complianceActionsLabel"
|
||||||
|
}
|
||||||
|
|
||||||
|
if(($documentedObj.ApplicabilityRules | measure).Count -gt 0)
|
||||||
|
{
|
||||||
|
$properties = @("Rule","Property","Value")
|
||||||
|
|
||||||
|
Add-HTMLTableItems $obj $objectType $documentedObj.ApplicabilityRules $properties "SettingDetails.applicabilityRules"
|
||||||
|
}
|
||||||
|
|
||||||
|
Add-HTMLObjectSettings $obj $objectType $documentedObj
|
||||||
|
|
||||||
|
if(($documentedObj.Assignments | measure).Count -gt 0)
|
||||||
|
{
|
||||||
|
if($documentedObj.Assignments[0].RawIntent)
|
||||||
|
{
|
||||||
|
$properties = @("GroupMode","Group","Filter","FilterMode")
|
||||||
|
|
||||||
|
$settingsObj = $documentedObj.Assignments | Where { $_.Settings -ne $null } | Select -First 1
|
||||||
|
|
||||||
|
if($settingsObj)
|
||||||
|
{
|
||||||
|
foreach($objProp in $settingsObj.Settings.Keys)
|
||||||
|
{
|
||||||
|
if($objProp -in $properties) { continue }
|
||||||
|
if($objProp -in @("Category","RawIntent")) { continue }
|
||||||
|
$properties += ("Settings." + $objProp)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$isFilterAssignment = $false
|
||||||
|
foreach($assignment in $documentedObj.Assignments)
|
||||||
|
{
|
||||||
|
if(($assignment.PSObject.Properties | Where Name -eq "FilterMode"))
|
||||||
|
{
|
||||||
|
$isFilterAssignment = $true
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
$properties = @("Group")
|
||||||
|
if($isFilterAssignment)
|
||||||
|
{
|
||||||
|
$properties += @("Filter","FilterMode")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Add-HTMLTableItems $obj $objectType $documentedObj.Assignments $properties "TableHeaders.assignments" -AddCategories
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
Write-LogError "Failed to process object $objName" $_.Exception
|
||||||
|
}
|
||||||
|
|
||||||
|
if($script:outputType -eq "Object")
|
||||||
|
{
|
||||||
|
$script:htmlContent = [System.Text.StringBuilder]::new()
|
||||||
|
$script:htmlContent.AppendLine("<HTML>")
|
||||||
|
$script:htmlContent.AppendLine($script:cssStyle)
|
||||||
|
$htmlText = $script:htmlContent.ToString()
|
||||||
|
$htmlText += $script:htmlStrings.ToString()
|
||||||
|
$htmlText += "</HTML>"
|
||||||
|
|
||||||
|
$fileName = "$($script:documentPath)\$($script:currentItemFileName)"
|
||||||
|
Save-DocumentationFile $htmlText $fileName
|
||||||
|
$script:htmlStrings = $null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function Add-HTMLTableItems
|
||||||
|
{
|
||||||
|
param($obj, $objectType, $items, $properties, $lngId, [switch]$AddCategories, [switch]$AddSubcategories, $captionOverride)
|
||||||
|
|
||||||
|
if($captionOverride)
|
||||||
|
{
|
||||||
|
$caption = $captionOverride
|
||||||
|
}
|
||||||
|
elseif($lngId)
|
||||||
|
{
|
||||||
|
$caption = "$((Get-LanguageString $lngId)) - $((Get-GraphObjectName $obj $objectType))"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$caption = "$((Get-GraphObjectName $obj $objectType)) ($($objectType.Title))"
|
||||||
|
}
|
||||||
|
|
||||||
|
$tableText = [System.Text.StringBuilder]::new()
|
||||||
|
$tableText.AppendLine("<table class='table-settings'>")
|
||||||
|
# Add Header row
|
||||||
|
$tableText.AppendLine("<tr>")
|
||||||
|
$columnCount = 0
|
||||||
|
foreach($prop in $properties)
|
||||||
|
{
|
||||||
|
$tableText.AppendLine("<th>$((Invoke-DocTranslateColumnHeader $prop.Split(".")[-1]))</th>")
|
||||||
|
$columnCount++
|
||||||
|
}
|
||||||
|
$tableText.AppendLine("</tr>")
|
||||||
|
|
||||||
|
$curCategory = ""
|
||||||
|
$curSubCategory = ""
|
||||||
|
|
||||||
|
$columnCategory = $null
|
||||||
|
$columnSubCategory = $null
|
||||||
|
|
||||||
|
$row = 1
|
||||||
|
|
||||||
|
foreach($itemObj in $items)
|
||||||
|
{
|
||||||
|
$newCategory = $false
|
||||||
|
$newSubCategory = $false
|
||||||
|
$additionalRowClass = ""
|
||||||
|
if($itemObj.Category -and $curCategory -ne $itemObj.Category -and $AddCategories -eq $true)
|
||||||
|
{
|
||||||
|
# Add Category row
|
||||||
|
$tableText.AppendLine("<tr>")
|
||||||
|
$tableText.AppendLine("<td colspan=`"$($columnCount)`" class='category-level1'>$($itemObj.Category)</td>")
|
||||||
|
$tableText.AppendLine("</tr>")
|
||||||
|
|
||||||
|
$curCategory = $itemObj.Category
|
||||||
|
$curSubCategory = ""
|
||||||
|
$row = 1
|
||||||
|
$newCategory = $true
|
||||||
|
$curentPropertyIndex = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
if($itemObj.SubCategory -and $curSubCategory -ne $itemObj.SubCategory -and $AddSubcategories -eq $true)
|
||||||
|
{
|
||||||
|
# Add Sub-category row
|
||||||
|
$tableText.AppendLine("<tr>")
|
||||||
|
$tableText.AppendLine("<td colspan=`"$($columnCount)`" class='category-level2'>$($itemObj.SubCategory)</td>")
|
||||||
|
$tableText.AppendLine("</tr>")
|
||||||
|
|
||||||
|
$curSubCategory = $itemObj.SubCategory
|
||||||
|
$row = 1
|
||||||
|
$newSubCategory = $true
|
||||||
|
$curentPropertyIndex = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
if($itemObj.PropertyIndex -is [int] -and $itemObj.PropertyIndex -gt 0 -and $itemObj.PropertyIndex -eq 1)
|
||||||
|
{
|
||||||
|
$curentPropertyIndex = $itemObj.PropertyIndex
|
||||||
|
$additionalRowClass = "row-new-property"
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if(($row % 2) -eq 1)
|
||||||
|
{
|
||||||
|
$rowClass = "row-odd"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$rowClass = "row-even"
|
||||||
|
}
|
||||||
|
|
||||||
|
$row++
|
||||||
|
|
||||||
|
$tableText.AppendLine("<tr class='$($rowClass) $($additionalRowClass)'>")
|
||||||
|
|
||||||
|
$curCol = 1
|
||||||
|
foreach($prop in $properties)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
$propArr = $prop.Split('.')
|
||||||
|
$tmpObj = $itemObj
|
||||||
|
$propName = $propArr[-1]
|
||||||
|
for($x = 0; $x -lt ($propArr.Count - 1);$x++)
|
||||||
|
{
|
||||||
|
$tmpObj = $tmpObj."$($propArr[$x])"
|
||||||
|
}
|
||||||
|
|
||||||
|
if($propName -eq "Value" -and ($itemObj.FullValueTable | measure).Count -gt 0)
|
||||||
|
{
|
||||||
|
$tableText.AppendLine("<td><table class='table-value'>")
|
||||||
|
$tableText.AppendLine("<tr>")
|
||||||
|
foreach($tableObjectProp in $itemObj.FullValueTable[0].PSObject.Properties)
|
||||||
|
{
|
||||||
|
$tableText.AppendLine("<th>$($tableObjectProp.Name)</th>")
|
||||||
|
}
|
||||||
|
$tableText.AppendLine("</tr>")
|
||||||
|
|
||||||
|
foreach($tableValue in $itemObj.FullValueTable)
|
||||||
|
{
|
||||||
|
$tableText.AppendLine("<tr>")
|
||||||
|
foreach($tableObjectProp in $itemObj.FullValueTable[0].PSObject.Properties)
|
||||||
|
{
|
||||||
|
$tableText.AppendLine("<td>$($tableValue."$($tableObjectProp.Name)")</td>")
|
||||||
|
}
|
||||||
|
$tableText.AppendLine("</tr>")
|
||||||
|
}
|
||||||
|
$tableText.AppendLine("</table></td>")
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$style = ""
|
||||||
|
if($curCol -eq 1 -and $itemObj.Level)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
$level = [int]$itemObj.Level
|
||||||
|
$style = " style='padding-left:$((5 + ($level * 5)))px;'"
|
||||||
|
}
|
||||||
|
catch{}
|
||||||
|
}
|
||||||
|
$tableText.AppendLine("<td class='property-column$($curCol)'$style>$((Set-HTMLText $tmpObj.$propName))</td>")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
Write-LogError "Failed to add property value for $prop" $_.Exception
|
||||||
|
}
|
||||||
|
$curCol++
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
Write-Log "Failed to process property" 2
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
$tableText.AppendLine("</tr>")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$tableText.AppendLine("</table>")
|
||||||
|
$script:htmlStrings.Append($tableText.ToString())
|
||||||
|
Add-HTMLHeader $caption -level 6
|
||||||
|
}
|
||||||
|
|
||||||
|
function Invoke-HTMLProcessAllObjects
|
||||||
|
{
|
||||||
|
param($documentationInfo)
|
||||||
|
|
||||||
|
$scopeTagInfo = Get-TableObjects "ScopeTags"
|
||||||
|
|
||||||
|
if($allObjectTypeObjdocumentationInfoects.ObjectType.Id -eq "ScopeTags")
|
||||||
|
{
|
||||||
|
if(($documentationInfo.Items | measure).Count -gt 0)
|
||||||
|
{
|
||||||
|
Add-HTMLHeader $documentationInfo.TypeName
|
||||||
|
|
||||||
|
Add-HTMLTableItems $null $documentationInfo.ObjectType $documentationInfo.Items -captionOverride (Get-LanguageString "SettingDetails.scopeTags")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function Set-HTMLText
|
||||||
|
{
|
||||||
|
param([string]$text, [switch]$NoCodeBlock)
|
||||||
|
|
||||||
|
if(-not $text)
|
||||||
|
{
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
$txtSummary = ""
|
||||||
|
if($text -and $text.Length -gt 250)
|
||||||
|
{
|
||||||
|
$summaryMax = 40
|
||||||
|
# Show the first row or the first $max characters if first row is too short or too long
|
||||||
|
$idx = $text.IndexOfAny(@("`r","`n"))
|
||||||
|
if($idx -gt 10 -and $idx -lt 50)
|
||||||
|
{
|
||||||
|
$summaryMax = $idx
|
||||||
|
}
|
||||||
|
$txtSummary = $text.SubString(0,$summaryMax)
|
||||||
|
}
|
||||||
|
|
||||||
|
$code = $false
|
||||||
|
if($NoCodeBlock -ne $true)
|
||||||
|
{
|
||||||
|
$trimText = $text.Trim()
|
||||||
|
if($trimText.StartsWith("<") -and $trimText.EndsWith(">"))
|
||||||
|
{
|
||||||
|
$code = $true
|
||||||
|
$text = "<pre class='code'>$($text.Replace('&', '&').Replace('<', '<').Replace('>', '>').Replace('"', '"'))</pre>"
|
||||||
|
if($txtSummary)
|
||||||
|
{
|
||||||
|
$txtSummary = $txtSummary.Replace('&', '&').Replace('<', '<').Replace('>', '>').Replace('"', '"')
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($code -eq $false)
|
||||||
|
{
|
||||||
|
$text = $text.Replace("`r`n", "<br />")
|
||||||
|
$text = $text.Replace("`n", "<br />")
|
||||||
|
$text = $text.Replace('&', '&')
|
||||||
|
}
|
||||||
|
|
||||||
|
if($txtSummary)
|
||||||
|
{
|
||||||
|
"<details class='description'><summary data-open='Minimize' data-close='$($txtSummary)...expand'></summary>$text</details>"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$text
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function Add-HTMLObjectSettings
|
||||||
|
{
|
||||||
|
param($obj, $objectType, $documentedObj)
|
||||||
|
|
||||||
|
foreach($objectScript in $documentedObj.Scripts)
|
||||||
|
{
|
||||||
|
if(-not $objectScript.ScriptContent -or -not $objectScript.Caption) { continue }
|
||||||
|
$script:htmlStrings.AppendLine("<pre class='code'>")
|
||||||
|
$script:htmlStrings.AppendLine($objectScript.ScriptContent)
|
||||||
|
$script:htmlStrings.AppendLine("</pre>")
|
||||||
|
Add-HTMLHeader $objectScript.Caption -Level 6 -SkipTOC
|
||||||
|
}
|
||||||
|
}
|
||||||
+282
-99
@@ -1,34 +1,127 @@
|
|||||||
function Get-ModuleVersion
|
function Get-ModuleVersion
|
||||||
{
|
{
|
||||||
'1.0.0'
|
'1.1.1'
|
||||||
}
|
}
|
||||||
|
|
||||||
function Invoke-InitializeModule
|
function Invoke-InitializeModule
|
||||||
{
|
{
|
||||||
Add-OutputType ([PSCustomObject]@{
|
Add-OutputType ([PSCustomObject]@{
|
||||||
Name="Markdown (Experimental)"
|
Name="Markdown"
|
||||||
Value="md"
|
Value="md"
|
||||||
#OutputOptions = (Add-MDOptionsControl)
|
OutputOptions = (Add-MDOptionsControl)
|
||||||
#Activate = { Invoke-MDActivate @args }
|
#Activate = { Invoke-MDActivate @args }
|
||||||
PreProcess = { Invoke-MDPreProcessItems @args }
|
PreProcess = { Invoke-MDPreProcessItems @args }
|
||||||
NewObjectGroup = { Invoke-MDNewObjectGroup @args }
|
NewObjectGroup = { Invoke-MDNewObjectGroup2 @args }
|
||||||
|
NewObjectType = { Invoke-MDNewObjectType2 @args }
|
||||||
Process = { Invoke-MDProcessItem @args }
|
Process = { Invoke-MDProcessItem @args }
|
||||||
PostProcess = { Invoke-MDPostProcessItems @args }
|
PostProcess = { Invoke-MDPostProcessItems @args }
|
||||||
ProcessAllObjects = { Invoke-MDProcessAllObjects @args }
|
ProcessAllObjects = { Invoke-MDProcessAllObjects @args }
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function Add-MDOptionsControl
|
||||||
|
{
|
||||||
|
$script:mdForm = Get-XamlObject ($global:AppRootFolder + "\Xaml\DocumentationMDOptions.xaml") -AddVariables
|
||||||
|
|
||||||
|
Set-XamlProperty $script:mdForm "txtMDDocumentName" "Text" (Get-Setting "Documentation" "MDDocumentName" "")
|
||||||
|
Set-XamlProperty $script:mdForm "txtMDCSSFile" "Text" (Get-Setting "Documentation" "MDCSSFile" "")
|
||||||
|
Set-XamlProperty $script:mdForm "chkMDIncludeCSS" "IsChecked" (Get-Setting "Documentation" "MDIncludeCSS" $true)
|
||||||
|
Set-XamlProperty $script:mdForm "chkMDOpenDocument" "IsChecked" (Get-Setting "Documentation" "MDOpenFile" $true)
|
||||||
|
Set-XamlProperty $script:mdForm "cbMDDocumentOutputFile" "ItemsSource" ("[ { Name: `"Single file`",Value: `"Full`" }, { Name: `"One file per object`",Value: `"Object`" }]" | ConvertFrom-Json)
|
||||||
|
Set-XamlProperty $script:mdForm "cbMDDocumentOutputFile" "SelectedValue" (Get-Setting "Documentation" "MDDocumentFileType" "Full")
|
||||||
|
|
||||||
|
Add-XamlEvent $script:mdForm "browseMDDocumentName" "add_click" {
|
||||||
|
$sf = [System.Windows.Forms.SaveFileDialog]::new()
|
||||||
|
$sf.DefaultExt = "*.md"
|
||||||
|
$sf.Filter = "MD (*.md)|*.md|All files (*.*)|*.*"
|
||||||
|
if($sf.ShowDialog() -eq "OK")
|
||||||
|
{
|
||||||
|
Set-XamlProperty $script:MDForm "txtMDDocumentName" "Text" $sf.FileName
|
||||||
|
Save-Setting "Documentation" "MDDocumentName" $sf.FileName
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Add-XamlEvent $script:mdForm "browseMDCSSFile" "add_click" {
|
||||||
|
$of = [System.Windows.Forms.OpenFileDialog]::new()
|
||||||
|
$of.Multiselect = $false
|
||||||
|
$of.Filter = "CSS Files (*.css)|*.css|All files (*.*)|*.*"
|
||||||
|
if($of.ShowDialog())
|
||||||
|
{
|
||||||
|
Set-XamlProperty $script:mdForm "txtMDCSSFile" "Text" $of.FileName
|
||||||
|
Save-Setting "Documentation" "txtMDCSSFile" $of.FileName
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$script:mdForm
|
||||||
|
}
|
||||||
|
|
||||||
|
function Invoke-MDProcessAllObjects
|
||||||
|
{
|
||||||
|
param($allObjectTypeObjects, $objectType)
|
||||||
|
}
|
||||||
|
|
||||||
function Invoke-MDPreProcessItems
|
function Invoke-MDPreProcessItems
|
||||||
{
|
{
|
||||||
$script:mdStrings = [System.Text.StringBuilder]::new()
|
|
||||||
$script:sectionAnchors = @()
|
$script:sectionAnchors = @()
|
||||||
$script:totAnchors = @()
|
$script:totAnchors = @()
|
||||||
|
$script:mdStrings = $null
|
||||||
|
$script:currentItemFileName = $null
|
||||||
|
|
||||||
|
Save-Setting "Documentation" "MDDocumentName" (Get-XamlProperty $script:mdForm "txtMDDocumentName" "Text" "")
|
||||||
|
Save-Setting "Documentation" "MDIncludeCSS" (Get-XamlProperty $script:mdForm "chkMDIncludeCSS" "IsChecked")
|
||||||
|
Save-Setting "Documentation" "MDCSSFile" (Get-XamlProperty $script:mdForm "txtMDCSSFile" "Text" "")
|
||||||
|
Save-Setting "Documentation" "MDOpenFile" (Get-XamlProperty $script:mdForm "chkMDOpenDocument" "IsChecked")
|
||||||
|
Save-Setting "Documentation" "MDDocumentFileType" (Get-XamlProperty $script:mdForm "cbMDDocumentOutputFile" "SelectedValue" '')
|
||||||
|
|
||||||
|
$defaultCSSFile = $global:AppRootFolder + "\Documentation\DefaultMDStyle.css"
|
||||||
|
$MDCssFile = Get-XamlProperty $script:mdForm "txtMDCSSFile" "Text" $defaultCSSFile
|
||||||
|
|
||||||
|
if(-not $MDCssFile)
|
||||||
|
{
|
||||||
|
Write-Log "CSS file not specified. Using default" 2
|
||||||
|
$MDCssFile = $defaultCSSFile
|
||||||
|
}
|
||||||
|
elseif([IO.File]::Exists($MDCssFile) -eq -$false)
|
||||||
|
{
|
||||||
|
Write-Log "CSS file $($MDCssFile) not found. Using default" 2
|
||||||
|
$MDCssFile = $defaultCSSFile
|
||||||
|
}
|
||||||
|
|
||||||
|
$cssStyle = ""
|
||||||
|
if([IO.File]::Exists($MDCssFile))
|
||||||
|
{
|
||||||
|
Write-Log "Using CSS file $($MDCssFile)"
|
||||||
|
$cssStyle = Get-Content -Raw -Path $MDCssFile
|
||||||
|
$cssStyle += [System.Environment]::NewLine
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Write-Log "CSS file $($MDCssFile) not found. No styles applied" 2
|
||||||
|
}
|
||||||
|
$script:cssStyle = $cssStyle
|
||||||
|
|
||||||
|
$fileName = Expand-FileName (Get-XamlProperty $script:mdForm "txtMDDocumentName" "Text" "%MyDocuments%\%Organization%-%Date%.md")
|
||||||
|
|
||||||
|
$script:outFile = $fileName
|
||||||
|
$script:documentPath = [io.path]::GetDirectoryName($fileName)
|
||||||
|
|
||||||
|
$script:outputType = (Get-XamlProperty $script:mdForm "cbMDDocumentOutputFile" "SelectedValue" "Full")
|
||||||
|
|
||||||
|
if($script:outputType -eq "Object")
|
||||||
|
{
|
||||||
|
Write-Log "Document one file for each object + index file"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Write-Log "Document one single file for all objects"
|
||||||
|
$script:outputType = "Full"
|
||||||
|
$script:mdStrings = [System.Text.StringBuilder]::new()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function Invoke-MDPostProcessItems
|
function Invoke-MDPostProcessItems
|
||||||
{
|
{
|
||||||
|
|
||||||
$userName = $global:me.displayName
|
$userName = $global:me.displayName
|
||||||
if($global:me.givenName -and $global:me.surname)
|
if($global:me.givenName -and $global:me.surname)
|
||||||
{
|
{
|
||||||
@@ -59,24 +152,38 @@ function Invoke-MDPostProcessItems
|
|||||||
|
|
||||||
foreach($header in $script:sectionAnchors)
|
foreach($header in $script:sectionAnchors)
|
||||||
{
|
{
|
||||||
$script:mdContent.AppendLine("[$($header.Name)](#$($header.Anchor))`n")
|
$indent = [String]::new(" ", (($header.Level - 1) * 2))
|
||||||
|
$script:mdContent.AppendLine("$($indent)- [$($header.Name)]($($header.FileName)#$($header.Anchor))`n")
|
||||||
}
|
}
|
||||||
|
|
||||||
$script:mdContent.AppendLine("")
|
$mdText = $script:cssStyle
|
||||||
$mdText = $script:mdContent.ToString()
|
|
||||||
$mdText += $script:mdStrings.ToString()
|
|
||||||
|
|
||||||
$fileName = Expand-FileName "%MyDocuments%\%Organization%-%Date%.md"
|
$script:mdContent.AppendLine("")
|
||||||
|
$mdText += $script:mdContent.ToString()
|
||||||
|
if($script:outputType -eq "Full")
|
||||||
|
{
|
||||||
|
$mdText += $script:mdStrings.ToString()
|
||||||
|
}
|
||||||
|
|
||||||
|
Save-DocumentationFile $mdText $script:outFile -OpenFile:((Get-Setting "Documentation" "MDOpenFile" $true) -eq $true)
|
||||||
|
<#
|
||||||
|
$fileName = Expand-FileName (Get-XamlProperty $script:mdForm "txtMDDocumentName" "Text" "%MyDocuments%\%Organization%-%Date%.md")
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
$mdText | Out-File -FilePath $fileName -Force -Encoding utf8 -ErrorAction Stop
|
$mdText | Out-File -FilePath $fileName -Force -Encoding utf8 -ErrorAction Stop
|
||||||
Write-Log "Markdown document $fileName saved successfully"
|
Write-Log "Markdown document $fileName saved successfully"
|
||||||
|
|
||||||
|
if((Get-Setting "Documentation" "MDOpenFile" $true) -eq $true)
|
||||||
|
{
|
||||||
|
Invoke-Item $fileName
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
Write-LogError "Failed to save Markdown file" $_.Exception
|
Write-LogError "Failed to save Markdown file: $fileName." $_.Exception
|
||||||
}
|
}
|
||||||
|
#>
|
||||||
}
|
}
|
||||||
|
|
||||||
function Invoke-MDNewObjectGroup
|
function Invoke-MDNewObjectGroup
|
||||||
@@ -86,7 +193,39 @@ function Invoke-MDNewObjectGroup
|
|||||||
$objectTypeString = Get-ObjectTypeString $obj.Object $obj.ObjectType
|
$objectTypeString = Get-ObjectTypeString $obj.Object $obj.ObjectType
|
||||||
|
|
||||||
Add-MDHeader "$((?? $objectTypeString $obj.ObjectType.Title))" -Level 1 -USEHtml
|
Add-MDHeader "$((?? $objectTypeString $obj.ObjectType.Title))" -Level 1 -USEHtml
|
||||||
|
}
|
||||||
|
|
||||||
|
function Invoke-MDNewObjectType
|
||||||
|
{
|
||||||
|
param($obj, $documentedObj, [int]$groupCategoryCount = 0)
|
||||||
|
|
||||||
|
if($obj.ObjectType.GroupId -eq "EndpointSecurity")
|
||||||
|
{
|
||||||
|
$objectTypeString = $obj.CategoryName
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$objectTypeString = $obj.ObjectType.Title
|
||||||
|
}
|
||||||
|
|
||||||
|
Add-MDHeader "$((?? $objectTypeString $obj.ObjectType.Title))" -Level 2 -USEHtml
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function Invoke-MDNewObjectGroup2
|
||||||
|
{
|
||||||
|
param($groupId)
|
||||||
|
|
||||||
|
$objectTypeString = Get-ObjectTypeString -ObjectType $groupId
|
||||||
|
|
||||||
|
Add-MDHeader $objectTypeString -Level 1 -USEHtml
|
||||||
|
}
|
||||||
|
|
||||||
|
function Invoke-MDNewObjectType2
|
||||||
|
{
|
||||||
|
param($objectTypeName)
|
||||||
|
|
||||||
|
Add-MDHeader $objectTypeName -Level 2 -USEHtml
|
||||||
}
|
}
|
||||||
|
|
||||||
function Invoke-MDProcessItem
|
function Invoke-MDProcessItem
|
||||||
@@ -97,7 +236,14 @@ function Invoke-MDProcessItem
|
|||||||
|
|
||||||
$objName = Get-GraphObjectName $obj $objectType
|
$objName = Get-GraphObjectName $obj $objectType
|
||||||
|
|
||||||
Add-MDHeader $objName -Level 2 -USEHtml
|
if($script:outputType -eq "Object")
|
||||||
|
{
|
||||||
|
$script:totAnchors = @()
|
||||||
|
$script:mdStrings = [System.Text.StringBuilder]::new()
|
||||||
|
$script:currentItemFileName = "./$((Remove-InvalidFileNameChars "$($objName).md").Replace(" ","_"))"
|
||||||
|
}
|
||||||
|
|
||||||
|
Add-MDHeader $objName -Level 3 -USEHtml
|
||||||
|
|
||||||
$script:mdStrings.AppendLine("")
|
$script:mdStrings.AppendLine("")
|
||||||
|
|
||||||
@@ -164,7 +310,6 @@ function Invoke-MDProcessItem
|
|||||||
|
|
||||||
if(($documentedObj.Assignments | measure).Count -gt 0)
|
if(($documentedObj.Assignments | measure).Count -gt 0)
|
||||||
{
|
{
|
||||||
$params = @{}
|
|
||||||
if($documentedObj.Assignments[0].RawIntent)
|
if($documentedObj.Assignments[0].RawIntent)
|
||||||
{
|
{
|
||||||
$properties = @("GroupMode","Group","Filter","FilterMode")
|
$properties = @("GroupMode","Group","Filter","FilterMode")
|
||||||
@@ -186,7 +331,7 @@ function Invoke-MDProcessItem
|
|||||||
$isFilterAssignment = $false
|
$isFilterAssignment = $false
|
||||||
foreach($assignment in $documentedObj.Assignments)
|
foreach($assignment in $documentedObj.Assignments)
|
||||||
{
|
{
|
||||||
if(($assignment.target.PSObject.Properties | Where Name -eq "deviceAndAppManagementAssignmentFilterType"))
|
if(($assignment.PSObject.Properties | Where Name -eq "FilterMode"))
|
||||||
{
|
{
|
||||||
$isFilterAssignment = $true
|
$isFilterAssignment = $true
|
||||||
break
|
break
|
||||||
@@ -197,16 +342,27 @@ function Invoke-MDProcessItem
|
|||||||
{
|
{
|
||||||
$properties += @("Filter","FilterMode")
|
$properties += @("Filter","FilterMode")
|
||||||
}
|
}
|
||||||
$params.Add("AddCategories", $true)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
Add-MDTableItems $obj $objectType $documentedObj.Assignments $properties "TableHeaders.assignments" @params
|
Add-MDTableItems $obj $objectType $documentedObj.Assignments $properties "TableHeaders.assignments" -AddCategories
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
Write-LogError "Failed to process object $objName" $_.Exception
|
Write-LogError "Failed to process object $objName" $_.Exception
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($script:outputType -eq "Object")
|
||||||
|
{
|
||||||
|
$script:mdContent = [System.Text.StringBuilder]::new()
|
||||||
|
$script:mdContent.AppendLine($script:cssStyle)
|
||||||
|
$mdText = $script:mdContent.ToString()
|
||||||
|
$mdText += $script:mdStrings.ToString()
|
||||||
|
|
||||||
|
$fileName = "$($script:documentPath)\$($script:currentItemFileName)"
|
||||||
|
Save-DocumentationFile $mdText $fileName
|
||||||
|
$script:mdStrings = $null
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function Add-MDTableItems
|
function Add-MDTableItems
|
||||||
@@ -227,24 +383,17 @@ function Add-MDTableItems
|
|||||||
}
|
}
|
||||||
|
|
||||||
$tableText = [System.Text.StringBuilder]::new()
|
$tableText = [System.Text.StringBuilder]::new()
|
||||||
$tableText.AppendLine("<table>")
|
$tableText.AppendLine("<table class='table-settings'>")
|
||||||
$tableText.AppendLine("<tr>")
|
$tableText.AppendLine("<tr class='table-header1'>")
|
||||||
$columnHeaders = "|"
|
|
||||||
$columnChars = "|"
|
|
||||||
$columnCount = 0
|
$columnCount = 0
|
||||||
foreach($prop in $properties)
|
foreach($prop in $properties)
|
||||||
{
|
{
|
||||||
$tableText.AppendLine("<td> $($prop.Split(".")[-1]) </td>")
|
$tableText.AppendLine("<td>$((Invoke-DocTranslateColumnHeader $prop.Split(".")[-1]))</td>")
|
||||||
$columnCount++
|
$columnCount++
|
||||||
|
|
||||||
$columnHeaders += ((Invoke-DocTranslateColumnHeader ($prop.Split(".")[-1])) + "|")
|
|
||||||
$columnChars += "----|"
|
|
||||||
}
|
}
|
||||||
$tableText.AppendLine("</tr>")
|
$tableText.AppendLine("</tr>")
|
||||||
|
|
||||||
#Add-MDText $columnHeaders
|
|
||||||
#Add-MDText $columnChars
|
|
||||||
|
|
||||||
$curCategory = ""
|
$curCategory = ""
|
||||||
$curSubCategory = ""
|
$curSubCategory = ""
|
||||||
|
|
||||||
@@ -253,34 +402,39 @@ function Add-MDTableItems
|
|||||||
|
|
||||||
foreach($itemObj in $items)
|
foreach($itemObj in $items)
|
||||||
{
|
{
|
||||||
|
$additionalRowClass = ""
|
||||||
if($itemObj.Category -and $curCategory -ne $itemObj.Category -and $AddCategories -eq $true)
|
if($itemObj.Category -and $curCategory -ne $itemObj.Category -and $AddCategories -eq $true)
|
||||||
{
|
{
|
||||||
$tableText.AppendLine("<tr>")
|
$tableText.AppendLine("<tr>")
|
||||||
$tableText.AppendLine("<td colspan=`"$($columnCount)`">`n`n**$((Set-MDText $itemObj.Category))**`n`n</td>")
|
$tableText.AppendLine("<td colspan=`"$($columnCount)`" class='category-level1'>$((Set-MDText $itemObj.Category))</td>")
|
||||||
$tableText.AppendLine("</tr>")
|
$tableText.AppendLine("</tr>")
|
||||||
|
|
||||||
#$columnCategory = "|**" + (Set-MDText $itemObj.Category) + "**|"
|
|
||||||
#Add-MDText $columnCategory
|
|
||||||
$curCategory = $itemObj.Category
|
$curCategory = $itemObj.Category
|
||||||
$curSubCategory = ""
|
$curSubCategory = ""
|
||||||
|
$curentPropertyIndex = 0
|
||||||
}
|
}
|
||||||
|
|
||||||
if($itemObj.SubCategory -and $curSubCategory -ne $itemObj.SubCategory -and $AddSubcategories -eq $true)
|
if($itemObj.SubCategory -and $curSubCategory -ne $itemObj.SubCategory -and $AddSubcategories -eq $true)
|
||||||
{
|
{
|
||||||
$tableText.AppendLine("<tr>")
|
$tableText.AppendLine("<tr>")
|
||||||
$tableText.AppendLine("<td colspan=`"$($columnCount)`">`n`n***$((Set-MDText $itemObj.SubCategory))***`n`n</td>")
|
$tableText.AppendLine("<td colspan=`"$($columnCount)`" class='category-level2'>$((Set-MDText $itemObj.SubCategory))</td>")
|
||||||
$tableText.AppendLine("</tr>")
|
$tableText.AppendLine("</tr>")
|
||||||
|
|
||||||
#$columnSubCategory = "|***" + (Set-MDText $itemObj.SubCategory) + "***|"
|
|
||||||
#Add-MDText $columnSubCategory
|
|
||||||
$curSubCategory = $itemObj.SubCategory
|
$curSubCategory = $itemObj.SubCategory
|
||||||
|
$curentPropertyIndex = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
if($itemObj.PropertyIndex -is [int] -and $itemObj.PropertyIndex -gt 0 -and $itemObj.PropertyIndex -eq 1)
|
||||||
|
{
|
||||||
|
$curentPropertyIndex = $itemObj.PropertyIndex
|
||||||
|
$additionalRowClass = "row-new-property"
|
||||||
}
|
}
|
||||||
|
|
||||||
#$columnData = "|"
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
$tableText.AppendLine("<tr>")
|
$tableText.AppendLine("<tr class='$($additionalRowClass)'>")
|
||||||
|
|
||||||
|
$curCol = 1
|
||||||
foreach($prop in $properties)
|
foreach($prop in $properties)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
@@ -293,7 +447,49 @@ function Add-MDTableItems
|
|||||||
{
|
{
|
||||||
$tmpObj = $tmpObj."$($propArr[$x])"
|
$tmpObj = $tmpObj."$($propArr[$x])"
|
||||||
}
|
}
|
||||||
$tableText.AppendLine("<td>$((Set-MDText "$($tmpObj.$propName)" -CodeBlock))</td>")
|
|
||||||
|
if($propName -eq "Value" -and ($itemObj.FullValueTable | measure).Count -gt 0)
|
||||||
|
{
|
||||||
|
$tableText.AppendLine("<td><table class='table-value'>")
|
||||||
|
$tableText.AppendLine("<tr>")
|
||||||
|
foreach($tableObjectProp in $itemObj.FullValueTable[0].PSObject.Properties)
|
||||||
|
{
|
||||||
|
$tableText.AppendLine("<td class='table-header1'>$($tableObjectProp.Name)</td>")
|
||||||
|
}
|
||||||
|
$tableText.AppendLine("</tr>")
|
||||||
|
|
||||||
|
foreach($tableValue in $itemObj.FullValueTable)
|
||||||
|
{
|
||||||
|
$tableText.AppendLine("<tr>")
|
||||||
|
foreach($tableObjectProp in $itemObj.FullValueTable[0].PSObject.Properties)
|
||||||
|
{
|
||||||
|
$tableText.AppendLine("<td>$($tableValue."$($tableObjectProp.Name)")</td>")
|
||||||
|
}
|
||||||
|
$tableText.AppendLine("</tr>")
|
||||||
|
}
|
||||||
|
$tableText.AppendLine("</table></td>")
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$style = ""
|
||||||
|
if($curCol -eq 1 -and $itemObj.Level)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
$level = [int]$itemObj.Level
|
||||||
|
$style = " style='padding-left:$((5 + ($level * 5)))px !important;'"
|
||||||
|
}
|
||||||
|
catch{}
|
||||||
|
}
|
||||||
|
$params = @{}
|
||||||
|
if($curCol -gt 0)
|
||||||
|
{
|
||||||
|
$params.Add("CodeBlock", $true)
|
||||||
|
}
|
||||||
|
|
||||||
|
$tableText.AppendLine("<td class='property-column$($curCol)'$style>$((Set-MDText $tmpObj.$propName @params))</td>")
|
||||||
|
}
|
||||||
|
|
||||||
#$columnData += "$((Set-MDText "$($tmpObj.$propName)"))|"
|
#$columnData += "$((Set-MDText "$($tmpObj.$propName)"))|"
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
@@ -301,6 +497,7 @@ function Add-MDTableItems
|
|||||||
#$columnData += "|"
|
#$columnData += "|"
|
||||||
Write-LogError "Failed to add property value for $prop" $_.Exception
|
Write-LogError "Failed to add property value for $prop" $_.Exception
|
||||||
}
|
}
|
||||||
|
$curCol++
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -337,30 +534,59 @@ function Add-MDText
|
|||||||
|
|
||||||
function Set-MDText
|
function Set-MDText
|
||||||
{
|
{
|
||||||
param($text, [switch]$CodeBlock)
|
param([string]$text, [switch]$CodeBlock)
|
||||||
|
|
||||||
|
if($null -eq $text) { return }
|
||||||
|
|
||||||
|
$txtSummary = ""
|
||||||
|
$textOut = ""
|
||||||
|
|
||||||
|
if($text -and $text.Length -gt 250)
|
||||||
|
{
|
||||||
|
$summaryMax = 40
|
||||||
|
# Show the first row or the first $max characters if first row is too short or too long
|
||||||
|
$idx = $text.IndexOfAny(@("`r","`n"))
|
||||||
|
if($idx -gt 10 -and $idx -lt 50)
|
||||||
|
{
|
||||||
|
$summaryMax = $idx
|
||||||
|
}
|
||||||
|
$txtSummary = $text.SubString(0,$summaryMax)
|
||||||
|
}
|
||||||
|
|
||||||
if($CodeBlock -eq $true)
|
if($CodeBlock -eq $true)
|
||||||
{
|
{
|
||||||
$trimText = $text.Trim()
|
$trimText = $text.Trim()
|
||||||
if($trimText.StartsWith("<") -and $trimText.EndsWith(">"))
|
if($trimText.StartsWith("<?xml") -or $trimText.StartsWith("<xml") -or ($trimText.StartsWith("<") -and $trimText.EndsWith(">")))
|
||||||
{
|
{
|
||||||
return ([Environment]::NewLine + [Environment]::NewLine + "``````xml" + [Environment]::NewLine + $text + [Environment]::NewLine + "``````" + [Environment]::NewLine + [Environment]::NewLine)
|
$textOut = ([Environment]::NewLine + [Environment]::NewLine + "``````xml" + [Environment]::NewLine + $text + [Environment]::NewLine + "``````" + [Environment]::NewLine + [Environment]::NewLine)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($CodeBlock -eq $false -or -not $textOut)
|
||||||
|
{
|
||||||
$text = $text.Replace("|", '`|')
|
$text = $text.Replace("|", '`|')
|
||||||
$text = $text.Replace("*", '`*')
|
$text = $text.Replace("*", '`*')
|
||||||
$text = $text.Replace("$", '`$')
|
$text = $text.Replace("$", '`$')
|
||||||
$text = $text.Replace("`r`n", "<br />")
|
$text = $text.Replace("`r`n", "<br />")
|
||||||
$text = $text.Replace("`n", "<br />")
|
$textOut = $text.Replace("`n", "<br />")
|
||||||
|
}
|
||||||
|
|
||||||
$text
|
if($txtSummary)
|
||||||
|
{
|
||||||
|
"<details class='description'><summary data-open='Minimize' data-close='$($txtSummary)...expand'></summary>$textOut</details>"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$textOut
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
function Add-MDHeader
|
function Add-MDHeader
|
||||||
{
|
{
|
||||||
param($text, [int]$level = 1, [switch]$AddParagraph, [switch]$UseHTML, [switch]$ToT, [switch]$SkipTOC)
|
param($text, [int]$level = 1, [switch]$AddParagraph, [switch]$UseHTML, [switch]$ToT, [switch]$SkipTOC)
|
||||||
|
|
||||||
|
if($script:mdStrings)
|
||||||
|
{
|
||||||
$prefix = ""
|
$prefix = ""
|
||||||
if($ToT -eq $true)
|
if($ToT -eq $true)
|
||||||
{
|
{
|
||||||
@@ -389,12 +615,21 @@ function Add-MDHeader
|
|||||||
$mdHeader = [String]::new('#',$level)
|
$mdHeader = [String]::new('#',$level)
|
||||||
$script:mdStrings.AppendLine("$mdHeader $text")
|
$script:mdStrings.AppendLine("$mdHeader $text")
|
||||||
}
|
}
|
||||||
|
$FileName = $script:currentItemFileName
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$sectionAnchor = $null
|
||||||
|
$FileName = $null
|
||||||
|
}
|
||||||
|
|
||||||
if($ToT -eq $true)
|
if($ToT -eq $true)
|
||||||
{
|
{
|
||||||
$script:totAnchors += [PSCustomObject]@{
|
$script:totAnchors += [PSCustomObject]@{
|
||||||
Name = $text
|
Name = $text
|
||||||
Anchor = $sectionAnchor
|
Anchor = $sectionAnchor
|
||||||
|
FileName = $FileName
|
||||||
|
Level = $level
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elseif($SkipTOC -ne $true)
|
elseif($SkipTOC -ne $true)
|
||||||
@@ -402,6 +637,8 @@ function Add-MDHeader
|
|||||||
$script:sectionAnchors += [PSCustomObject]@{
|
$script:sectionAnchors += [PSCustomObject]@{
|
||||||
Name = $text
|
Name = $text
|
||||||
Anchor = $sectionAnchor
|
Anchor = $sectionAnchor
|
||||||
|
FileName = $FileName
|
||||||
|
Level = $level
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -416,67 +653,13 @@ function Add-MDObjectSettings
|
|||||||
{
|
{
|
||||||
param($obj, $objectType, $documentedObj)
|
param($obj, $objectType, $documentedObj)
|
||||||
|
|
||||||
if($obj."@OData.Type" -eq "#microsoft.graph.deviceManagementScript")
|
foreach($objectScript in $documentedObj.Scripts)
|
||||||
{
|
{
|
||||||
if($obj.ScriptContent)
|
if(-not $objectScript.ScriptContent -or -not $objectScript.Caption) { continue }
|
||||||
{
|
|
||||||
$script:mdStrings.AppendLine("~~~powershell")
|
|
||||||
$script:mdStrings.AppendLine((Get-DocScriptContent $obj.ScriptContent))
|
|
||||||
$script:mdStrings.AppendLine("~~~")
|
|
||||||
$caption = "{1} - {0}" -f $obj.fileName,(Get-LanguageString "WindowsManagement.powerShellScriptObjectName")
|
|
||||||
Add-MDHeader $caption -Level 6 -SkipTOC -AddParagraph
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if($obj."@OData.Type" -eq "#microsoft.graph.deviceShellScript")
|
|
||||||
{
|
|
||||||
if($obj.ScriptContent)
|
|
||||||
{
|
|
||||||
$script:mdStrings.AppendLine("~~~shell")
|
|
||||||
$script:mdStrings.AppendLine((Get-DocScriptContent $obj.ScriptContent))
|
|
||||||
$script:mdStrings.AppendLine("~~~")
|
|
||||||
|
|
||||||
$caption = "{1} - {0}" -f $obj.fileName,(Get-LanguageString "WindowsManagement.shellScriptObjectName")
|
|
||||||
Add-MDHeader $caption -Level 6 -SkipTOC -AddParagraph
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif($obj."@OData.Type" -eq "#microsoft.graph.deviceHealthScript")
|
|
||||||
{
|
|
||||||
if($obj.detectionScriptContent)
|
|
||||||
{
|
|
||||||
$script:mdStrings.AppendLine("~~~powershell")
|
$script:mdStrings.AppendLine("~~~powershell")
|
||||||
$script:mdStrings.AppendLine((Get-DocScriptContent $obj.detectionScriptContent))
|
$script:mdStrings.AppendLine($objectScript.ScriptContent)
|
||||||
$script:mdStrings.AppendLine("~~~")
|
$script:mdStrings.AppendLine("~~~")
|
||||||
$caption = Get-LanguageString "ProactiveRemediations.Create.Settings.DetectionScriptMultiLineTextBox.label"
|
Add-MDHeader $objectScript.Caption -Level 6 -SkipTOC -AddParagraph
|
||||||
Add-MDHeader $caption -Level 6 -SkipTOC -AddParagraph
|
|
||||||
}
|
|
||||||
|
|
||||||
if($obj.remediationScriptContent)
|
|
||||||
{
|
|
||||||
$script:mdStrings.AppendLine("~~~powershell")
|
|
||||||
$script:mdStrings.AppendLine((Get-DocScriptContent $obj.remediationScriptContent))
|
|
||||||
$script:mdStrings.AppendLine("~~~")
|
|
||||||
$caption = Get-LanguageString "ProactiveRemediations.Create.Settings.RemediationScriptMultiLineTextBox.label"
|
|
||||||
Add-MDHeader $caption -Level 6 -SkipTOC -AddParagraph
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif($obj."@OData.Type" -eq "#microsoft.graph.win32LobApp")
|
|
||||||
{
|
|
||||||
foreach($rule in ($obj.requirementRules | Where { $_.'@OData.Type' -eq "#microsoft.graph.win32LobAppPowerShellScriptRequirement" } ))
|
|
||||||
{
|
|
||||||
$script:mdStrings.AppendLine("~~~powershell")
|
|
||||||
$script:mdStrings.AppendLine((Get-DocScriptContent $obj.scriptContent))
|
|
||||||
$script:mdStrings.AppendLine("~~~")
|
|
||||||
$caption = "{0} - {1}" -f @($obj.displayName, "Requirement script")
|
|
||||||
Add-MDHeader $caption -Level 6 -SkipTOC -AddParagraph
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach($rule in ($obj.detectionRules | Where { $_.'@OData.Type' -eq "#microsoft.graph.win32LobAppPowerShellScriptDetection" } ))
|
|
||||||
{
|
|
||||||
$script:mdStrings.AppendLine("~~~powershell")
|
|
||||||
$script:mdStrings.AppendLine((Get-DocScriptContent $obj.scriptContent))
|
|
||||||
$script:mdStrings.AppendLine("~~~")
|
|
||||||
$caption = "{0} - {1}" -f @($obj.displayName,(Get-LanguageString "ProactiveRemediations.Create.Settings.DetectionScriptMultiLineTextBox.label"))
|
|
||||||
Add-MDHeader $caption -Level 6 -SkipTOC -AddParagraph
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -3,7 +3,7 @@
|
|||||||
#https://docs.microsoft.com/en-us/office/vba/api/overview/word
|
#https://docs.microsoft.com/en-us/office/vba/api/overview/word
|
||||||
function Get-ModuleVersion
|
function Get-ModuleVersion
|
||||||
{
|
{
|
||||||
'1.3.0'
|
'1.6.0'
|
||||||
}
|
}
|
||||||
|
|
||||||
function Invoke-InitializeModule
|
function Invoke-InitializeModule
|
||||||
@@ -76,8 +76,6 @@ function Add-WordOptionsControl
|
|||||||
$global:txtWordTitleProperty.Text = Get-Setting "Documentation" "WordTitleProperty" "Intune documentation"
|
$global:txtWordTitleProperty.Text = Get-Setting "Documentation" "WordTitleProperty" "Intune documentation"
|
||||||
$global:txtWordSubjectProperty.Text = Get-Setting "Documentation" "WordSubjectProperty" "Intune documentation"
|
$global:txtWordSubjectProperty.Text = Get-Setting "Documentation" "WordSubjectProperty" "Intune documentation"
|
||||||
|
|
||||||
$global:chkWordIncludeScripts.IsChecked = ((Get-Setting "Documentation" "WordIncludeScripts" "true") -ne "false")
|
|
||||||
$global:chkWordExcludeScriptSignature.IsChecked = ((Get-Setting "Documentation" "WordExcludeScriptSignature" "false") -ne "false")
|
|
||||||
$global:chkWordAttachJsonFile.IsChecked = ((Get-Setting "Documentation" "WordAttatchJsonFile" "false") -ne "false")
|
$global:chkWordAttachJsonFile.IsChecked = ((Get-Setting "Documentation" "WordAttatchJsonFile" "false") -ne "false")
|
||||||
|
|
||||||
$global:txtWordScriptTableStyle.Text = Get-Setting "Documentation" "WordScriptTableStyle" ""
|
$global:txtWordScriptTableStyle.Text = Get-Setting "Documentation" "WordScriptTableStyle" ""
|
||||||
@@ -142,8 +140,6 @@ function Invoke-WordPreProcessItems
|
|||||||
Save-Setting "Documentation" "WordTitleProperty" $global:txtWordTitleProperty.Text
|
Save-Setting "Documentation" "WordTitleProperty" $global:txtWordTitleProperty.Text
|
||||||
Save-Setting "Documentation" "WordSubjectProperty" $global:txtWordSubjectProperty.Text
|
Save-Setting "Documentation" "WordSubjectProperty" $global:txtWordSubjectProperty.Text
|
||||||
|
|
||||||
Save-Setting "Documentation" "WordIncludeScripts" $global:chkWordIncludeScripts.IsChecked
|
|
||||||
Save-Setting "Documentation" "WordExcludeScriptSignature" $global:chkWordExcludeScriptSignature.IsChecked
|
|
||||||
Save-Setting "Documentation" "WordAttatchJsonFile" $global:chkWordAttachJsonFile.IsChecked
|
Save-Setting "Documentation" "WordAttatchJsonFile" $global:chkWordAttachJsonFile.IsChecked
|
||||||
|
|
||||||
Save-Setting "Documentation" "WordScriptTableStyle" $global:txtWordScriptTableStyle.Text
|
Save-Setting "Documentation" "WordScriptTableStyle" $global:txtWordScriptTableStyle.Text
|
||||||
@@ -466,35 +462,22 @@ function Set-WordContentControlText
|
|||||||
|
|
||||||
function Invoke-WordNewObjectGroup
|
function Invoke-WordNewObjectGroup
|
||||||
{
|
{
|
||||||
param($obj, $documentedObj)
|
param($groupId)
|
||||||
|
|
||||||
$script:objectHeaderLevel = 2
|
$objectTypeString = Get-ObjectTypeString -ObjectType $groupId
|
||||||
|
|
||||||
$objectTypeString = Get-ObjectTypeString $obj.Object $obj.ObjectType
|
Add-DocText $objectTypeString $global:txtWordHeader1Style.Text
|
||||||
|
|
||||||
Add-DocText (?? $objectTypeString $obj.ObjectType.Title) $global:txtWordHeader1Style.Text
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function Invoke-WordNewObjectType
|
function Invoke-WordNewObjectType
|
||||||
{
|
{
|
||||||
param($obj, $documentedObj, [int]$groupCategoryCount = 0)
|
param($objectTypeName)
|
||||||
|
|
||||||
if($groupCategoryCount -le 1 -or -not $global:txtWordHeader3Style.Text) { return }
|
|
||||||
|
|
||||||
$script:objectHeaderLevel = 2
|
$script:objectHeaderLevel = 2
|
||||||
|
|
||||||
if($obj.ObjectType.GroupId -eq "EndpointSecurity")
|
Add-DocText $objectTypeName (Get-ObjectLevelHeader)
|
||||||
{
|
|
||||||
$objectTypeString = $obj.CategoryName
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
$objectTypeString = $obj.ObjectType.Title
|
|
||||||
}
|
|
||||||
|
|
||||||
Add-DocText (?? $objectTypeString $obj.ObjectType.Title) (Get-ObjectLevelHeader)
|
$script:objectHeaderLevel = 3
|
||||||
|
|
||||||
$script:objectHeaderLevel = 3;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function local:Get-ObjectLevelHeader
|
function local:Get-ObjectLevelHeader
|
||||||
@@ -610,13 +593,14 @@ function Invoke-WordProcessItem
|
|||||||
$settingProps += ("Settings." + $objProp)
|
$settingProps += ("Settings." + $objProp)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
$params.Add("AddCategories", $true)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
$isFilterAssignment = $false
|
$isFilterAssignment = $false
|
||||||
foreach($assignment in $documentedObj.Assignments)
|
foreach($assignment in $documentedObj.Assignments)
|
||||||
{
|
{
|
||||||
if(($assignment.target.PSObject.Properties | Where Name -eq "deviceAndAppManagementAssignmentFilterType"))
|
if(($assignment.PSObject.Properties | Where Name -eq "FilterMode"))
|
||||||
{
|
{
|
||||||
$isFilterAssignment = $true
|
$isFilterAssignment = $true
|
||||||
break
|
break
|
||||||
@@ -649,6 +633,7 @@ function Invoke-WordProcessItem
|
|||||||
if($fi.Exists)
|
if($fi.Exists)
|
||||||
{
|
{
|
||||||
$script:doc.Application.Selection.InlineShapes.AddOLEObject("",$fi.FullName,$false,$true,"$($env:WinDir)\System32\Notepad.exe",0,$fi.Name)
|
$script:doc.Application.Selection.InlineShapes.AddOLEObject("",$fi.FullName,$false,$true,"$($env:WinDir)\System32\Notepad.exe",0,$fi.Name)
|
||||||
|
$script:doc.Application.Selection.TypeParagraph()
|
||||||
try { $fi.Delete() } catch {} # Cleanup
|
try { $fi.Delete() } catch {} # Cleanup
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -666,12 +651,18 @@ function Set-DocTableSettingsItems
|
|||||||
|
|
||||||
$secondColumn = $firstColumn + 1
|
$secondColumn = $firstColumn + 1
|
||||||
|
|
||||||
$script:docTable.Cell(1, $firstColumn).Range.Text = (Invoke-WordTranslateColumnHeader "Settings")
|
$script:docTable.Cell(1, $firstColumn).Range.Text = (Invoke-DocTranslateColumnHeader "Settings")
|
||||||
$script:docTable.Cell(1, $secondColumn).Range.Text = ""
|
$script:docTable.Cell(1, $secondColumn).Range.Text = ""
|
||||||
|
|
||||||
$row = 2
|
$row = 2
|
||||||
foreach($itemObj in $items)
|
foreach($itemObj in $items)
|
||||||
{
|
{
|
||||||
|
#if($script:docTable.Rows($row).Cells.Count -eq 1) { $row++;continue } # Category / Sub-category
|
||||||
|
while($script:docTable.Cell($row,1).Next.RowIndex -gt $row)
|
||||||
|
{
|
||||||
|
# Category / Sub-category
|
||||||
|
$row++;
|
||||||
|
}
|
||||||
$script:docTable.Cell($row, $firstColumn).Range.Text = ""
|
$script:docTable.Cell($row, $firstColumn).Range.Text = ""
|
||||||
$script:docTable.Cell($row, $secondColumn).Range.Text = ""
|
$script:docTable.Cell($row, $secondColumn).Range.Text = ""
|
||||||
$script:docTable.Cell($row, $firstColumn).Split($properties.Count,1)
|
$script:docTable.Cell($row, $firstColumn).Split($properties.Count,1)
|
||||||
@@ -680,7 +671,7 @@ function Set-DocTableSettingsItems
|
|||||||
$cellRow = $row
|
$cellRow = $row
|
||||||
foreach($settingProp in $properties)
|
foreach($settingProp in $properties)
|
||||||
{
|
{
|
||||||
$script:docTable.Cell($cellRow, $firstColumn).Range.Text = (Invoke-WordTranslateColumnHeader ($settingProp.Split('.')[-1]))
|
$script:docTable.Cell($cellRow, $firstColumn).Range.Text = (Invoke-DocTranslateColumnHeader ($settingProp.Split('.')[-1]))
|
||||||
|
|
||||||
$propArr = $settingProp.Split('.')
|
$propArr = $settingProp.Split('.')
|
||||||
$tmpObj = $itemObj
|
$tmpObj = $itemObj
|
||||||
@@ -690,7 +681,7 @@ function Set-DocTableSettingsItems
|
|||||||
$tmpObj = $tmpObj."$($propArr[$x])"
|
$tmpObj = $tmpObj."$($propArr[$x])"
|
||||||
}
|
}
|
||||||
|
|
||||||
$script:docTable.Cell($cellRow, $secondColumn).Column.Cells($cellRow).Range.Text = "$($tmpObj.$propName)"
|
$script:docTable.Cell($cellRow, $secondColumn).Range.Text = "$($tmpObj.$propName)"
|
||||||
|
|
||||||
$cellRow++
|
$cellRow++
|
||||||
}
|
}
|
||||||
@@ -726,6 +717,7 @@ function Invoke-WordProcessAllObjects
|
|||||||
$nameLabel = $obj.displayName
|
$nameLabel = $obj.displayName
|
||||||
ID = $obj.Id
|
ID = $obj.Id
|
||||||
$descriptionLable = $obj.Description
|
$descriptionLable = $obj.Description
|
||||||
|
Object = $obj
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -760,7 +752,7 @@ function Add-DocTableItems
|
|||||||
|
|
||||||
$range = $script:doc.application.selection.range
|
$range = $script:doc.application.selection.range
|
||||||
|
|
||||||
$script:docTable = $script:doc.Tables.Add($range, ($items.Count + 1), $properties.Count, [Microsoft.Office.Interop.Word.WdDefaultTableBehavior]::wdWord9TableBehavior, [Microsoft.Office.Interop.Word.WdAutoFitBehavior]::wdAutoFitWindow)
|
$script:docTable = $script:doc.Tables.Add($range, (($items | measure).Count + 1), $properties.Count, [Microsoft.Office.Interop.Word.WdDefaultTableBehavior]::wdWord9TableBehavior, [Microsoft.Office.Interop.Word.WdAutoFitBehavior]::wdAutoFitWindow)
|
||||||
$script:docTable.ApplyStyleHeadingRows = $true
|
$script:docTable.ApplyStyleHeadingRows = $true
|
||||||
Set-DocObjectStyle $script:docTable $global:txtWordTableStyle.Text | Out-null
|
Set-DocObjectStyle $script:docTable $global:txtWordTableStyle.Text | Out-null
|
||||||
|
|
||||||
@@ -794,10 +786,23 @@ function Add-DocTableItems
|
|||||||
$curSubCategory = ""
|
$curSubCategory = ""
|
||||||
|
|
||||||
$row = 2
|
$row = 2
|
||||||
|
$curentPropertyIndex = 0
|
||||||
foreach($itemObj in $items)
|
foreach($itemObj in $items)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
|
if(($itemObj.Category -and $curCategory -ne $itemObj.Category -and $AddCategories -eq $true) -or
|
||||||
|
($itemObj.SubCategory -and $curSubCategory -ne $itemObj.SubCategory -and $AddSubcategories -eq $true))
|
||||||
|
{
|
||||||
|
$curentPropertyIndex = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
if($itemObj.PropertyIndex -is [int] -and $itemObj.PropertyIndex -gt 0 -and $itemObj.PropertyIndex -eq 1)
|
||||||
|
{
|
||||||
|
$curentPropertyIndex = $itemObj.PropertyIndex
|
||||||
|
# !!! ToDo: Set style for new property
|
||||||
|
}
|
||||||
|
|
||||||
$i = 1
|
$i = 1
|
||||||
foreach($prop in $properties)
|
foreach($prop in $properties)
|
||||||
{
|
{
|
||||||
@@ -831,9 +836,24 @@ function Add-DocTableItems
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$levelExtra = ""
|
||||||
|
if($i -eq 1 -and $itemObj.Level)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
$level = ([int]$itemObj.Level) # - 1
|
||||||
|
if($level -lt 0) { $level = 0 }
|
||||||
|
if($level -gt 0)
|
||||||
|
{
|
||||||
|
$levelExtra = [String]::new(" ", ($level * 2)) #Should probably use tab stops instead
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch{}
|
||||||
|
}
|
||||||
|
|
||||||
if($null -ne $propValue)
|
if($null -ne $propValue)
|
||||||
{
|
{
|
||||||
$script:docTable.Cell($row, $i).Range.Text = $propValue
|
$script:docTable.Cell($row, $i).Range.Text = "$levelExtra$propValue"
|
||||||
}
|
}
|
||||||
|
|
||||||
if($propValueFull -and $global:chkWordDocumentationLimitAttach.IsChecked -eq $true)
|
if($propValueFull -and $global:chkWordDocumentationLimitAttach.IsChecked -eq $true)
|
||||||
@@ -850,7 +870,6 @@ function Add-DocTableItems
|
|||||||
$propValueFull | Out-File -LiteralPath $tmpFile -Force
|
$propValueFull | Out-File -LiteralPath $tmpFile -Force
|
||||||
$fi = [IO.FileInfo]$tmpFile
|
$fi = [IO.FileInfo]$tmpFile
|
||||||
[void]$script:docTable.Cell($row, $i).Range.InlineShapes.AddOLEObject("",$fi.FullName,$false,$true,"$($env:WinDir)\System32\Notepad.exe",0,"Full value")
|
[void]$script:docTable.Cell($row, $i).Range.InlineShapes.AddOLEObject("",$fi.FullName,$false,$true,"$($env:WinDir)\System32\Notepad.exe",0,"Full value")
|
||||||
#$script:doc.Application.Selection.InlineShapes.AddOLEObject("",$fi.FullName,$false,$true,"$($env:WinDir)\System32\Notepad.exe",0,"Full value", $script:docTable.Cell($row, $i).Range)
|
|
||||||
try { $fi.Delete() } catch {}
|
try { $fi.Delete() } catch {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1041,85 +1060,14 @@ function Set-DocObjectStyle
|
|||||||
$styleSet
|
$styleSet
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function Add-DocObjectSettings
|
function Add-DocObjectSettings
|
||||||
{
|
{
|
||||||
param($obj, $objectType, $documentedObj)
|
param($obj, $objectType, $documentedObj)
|
||||||
|
|
||||||
if($obj."@OData.Type" -eq "#microsoft.graph.deviceManagementScript")
|
foreach($objectScript in $documentedObj.Scripts)
|
||||||
{
|
|
||||||
if($obj.ScriptContent -and $global:chkWordIncludeScripts.IsChecked -eq $true)
|
|
||||||
{
|
|
||||||
$caption = "{1} - {0}" -f $obj.displayName,(Get-LanguageString "WindowsManagement.powerShellScriptObjectName")
|
|
||||||
Add-DocTableScript $caption $obj.FileName (Get-DocScriptContent $obj.ScriptContent)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if($obj."@OData.Type" -eq "#microsoft.graph.deviceShellScript")
|
|
||||||
{
|
|
||||||
if($obj.ScriptContent -and $global:chkWordIncludeScripts.IsChecked -eq $true)
|
|
||||||
{
|
|
||||||
$caption = "{1} - {0}" -f $obj.displayName,(Get-LanguageString "WindowsManagement.shellScriptObjectName")
|
|
||||||
Add-DocTableScript $caption $obj.FileName (Get-DocScriptContent $obj.ScriptContent)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif($obj."@OData.Type" -eq "#microsoft.graph.deviceHealthScript")
|
|
||||||
{
|
|
||||||
if($obj.detectionScriptContent)
|
|
||||||
{
|
|
||||||
$caption = Get-LanguageString "ProactiveRemediations.Create.Settings.DetectionScriptMultiLineTextBox.label"
|
|
||||||
$header = "{1} - {0}" -f $obj.displayName,$caption
|
|
||||||
Add-DocTableScript $header $caption (Get-DocScriptContent $obj.detectionScriptContent)
|
|
||||||
}
|
|
||||||
|
|
||||||
if($obj.remediationScriptContent)
|
|
||||||
{
|
|
||||||
$caption = Get-LanguageString "ProactiveRemediations.Create.Settings.RemediationScriptMultiLineTextBox.label"
|
|
||||||
$header = "{1} - {0}" -f $obj.displayName,$caption
|
|
||||||
Add-DocTableScript $header $caption (Get-DocScriptContent $obj.remediationScriptContent)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
elseif($obj."@OData.Type" -eq "#microsoft.graph.win32LobApp")
|
|
||||||
{
|
|
||||||
foreach($rule in ($obj.requirementRules | Where { $_.'@OData.Type' -eq "#microsoft.graph.win32LobAppPowerShellScriptRequirement" } ))
|
|
||||||
{
|
|
||||||
$caption = "{0} - {1}" -f @($obj.displayName, "Requirement script")
|
|
||||||
|
|
||||||
Add-DocTableScript $caption $rule.displayName (Get-DocScriptContent $rule.scriptContent)
|
|
||||||
}
|
|
||||||
|
|
||||||
foreach($rule in ($obj.detectionRules | Where { $_.'@OData.Type' -eq "#microsoft.graph.win32LobAppPowerShellScriptDetection" } ))
|
|
||||||
{
|
|
||||||
$caption = "{0} - {1}" -f @($obj.displayName,(Get-LanguageString "ProactiveRemediations.Create.Settings.DetectionScriptMultiLineTextBox.label"))
|
|
||||||
|
|
||||||
Add-DocTableScript $caption (Get-LanguageString "ProactiveRemediations.Create.Settings.DetectionScriptMultiLineTextBox.label") (Get-DocScriptContent $rule.scriptContent)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
function Get-DocScriptContent
|
|
||||||
{
|
|
||||||
param($encodeContent)
|
|
||||||
|
|
||||||
if(-not $encodeContent) { return }
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
$scriptContent = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($encodeContent))
|
|
||||||
|
|
||||||
if($global:chkWordExcludeScriptSignature.IsChecked -eq $true)
|
|
||||||
{
|
|
||||||
$x = $scriptContent.IndexOf("# SIG # Begin signature block")
|
|
||||||
if($x -gt 0)
|
|
||||||
{
|
|
||||||
$scriptContent = $scriptContent.SubString(0,$x)
|
|
||||||
$scriptContent = $scriptContent + "# SIG # Begin signature block`nSignature data excluded..."
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
$scriptContent
|
|
||||||
}
|
|
||||||
catch
|
|
||||||
{
|
{
|
||||||
|
if(-not $objectScript.ScriptContent -or -not $objectScript.Caption) { continue }
|
||||||
|
|
||||||
|
Add-DocTableScript $objectScript.Caption $objectScript.Header $objectScript.ScriptContent
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+1042
-41
File diff suppressed because it is too large
Load Diff
@@ -10,7 +10,7 @@ This module is for the Endpoint Info View. It shows read-only objects in Intune
|
|||||||
#>
|
#>
|
||||||
function Get-ModuleVersion
|
function Get-ModuleVersion
|
||||||
{
|
{
|
||||||
'3.5.0'
|
'3.9.0'
|
||||||
}
|
}
|
||||||
|
|
||||||
function Invoke-InitializeModule
|
function Invoke-InitializeModule
|
||||||
@@ -22,6 +22,7 @@ function Invoke-InitializeModule
|
|||||||
ID = "EMInfoGraphAPI"
|
ID = "EMInfoGraphAPI"
|
||||||
ViewPanel = $viewPanel
|
ViewPanel = $viewPanel
|
||||||
AuthenticationID = "MSAL"
|
AuthenticationID = "MSAL"
|
||||||
|
AllowDelete = $false
|
||||||
ItemChanged = { Show-GraphObjects -ObjectTypeChanged; Invoke-ModuleFunction "Invoke-GraphObjectsChanged"; Write-Status ""}
|
ItemChanged = { Show-GraphObjects -ObjectTypeChanged; Invoke-ModuleFunction "Invoke-GraphObjectsChanged"; Write-Status ""}
|
||||||
Activating = { Invoke-EMInfoActivatingView }
|
Activating = { Invoke-EMInfoActivatingView }
|
||||||
Authentication = (Get-MSALAuthenticationObject)
|
Authentication = (Get-MSALAuthenticationObject)
|
||||||
@@ -87,6 +88,24 @@ function Invoke-InitializeModule
|
|||||||
Permissons=@("DeviceManagementServiceConfig.ReadWrite.All")
|
Permissons=@("DeviceManagementServiceConfig.ReadWrite.All")
|
||||||
ExpandAssignmentsList = $false
|
ExpandAssignmentsList = $false
|
||||||
})
|
})
|
||||||
|
|
||||||
|
Add-ViewItem (New-Object PSObject -Property @{
|
||||||
|
Title = "Tenant Settings"
|
||||||
|
Id = "TenantSettings"
|
||||||
|
ViewID = "EMInfoGraphAPI"
|
||||||
|
API = "deviceManagement/settings"
|
||||||
|
NameProperty = "Name"
|
||||||
|
AlwaysImport = $true
|
||||||
|
#ExportFullObject = $true
|
||||||
|
ViewProperties = @("Name")
|
||||||
|
ShowButtons = @("Import","Export","View")
|
||||||
|
Permissons=@("DeviceManagementConfiguration.ReadWrite.All")
|
||||||
|
PreImportCommand = { Start-PreImportTenantSettings @args }
|
||||||
|
GetObjectName = { Start-GetObjectNameTenantSettings @args }
|
||||||
|
PostListCommand = { Start-PostListTenantSettings @args }
|
||||||
|
Icon="TenantSettings"
|
||||||
|
ExpandAssignmentsList = $false
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
function Invoke-EMInfoActivatingView
|
function Invoke-EMInfoActivatingView
|
||||||
@@ -108,3 +127,38 @@ function Invoke-EMInfoAuthenticateToMSAL
|
|||||||
& $global:msalAuthenticator.Login -Account $usr
|
& $global:msalAuthenticator.Login -Account $usr
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function Start-PreImportTenantSettings
|
||||||
|
{
|
||||||
|
param($obj, $objectType)
|
||||||
|
|
||||||
|
$objClone = $obj | ConvertTo-Json -Depth 50 | ConvertFrom-Json
|
||||||
|
if($objClone.deviceComplianceCheckinThresholdDays -lt 1)
|
||||||
|
{
|
||||||
|
$objClone.deviceComplianceCheckinThresholdDays = 30
|
||||||
|
}
|
||||||
|
Remove-Property $objClone "@odata.type"
|
||||||
|
$json = @{ "settings" = $objClone } | ConvertTo-Json -Depth 50
|
||||||
|
(Invoke-GraphRequest -Url "deviceManagement" -Content $json -HttpMethod "PATCH") | Out-Null
|
||||||
|
|
||||||
|
return (@{"Import"=$false})
|
||||||
|
}
|
||||||
|
|
||||||
|
function Start-GetObjectNameTenantSettings
|
||||||
|
{
|
||||||
|
param($objList, $objectType)
|
||||||
|
|
||||||
|
return "Tenant Settings"
|
||||||
|
}
|
||||||
|
|
||||||
|
function Start-PostListTenantSettings
|
||||||
|
{
|
||||||
|
param($objList, $objectType)
|
||||||
|
|
||||||
|
if(($objList | measure).Count -eq 1)
|
||||||
|
{
|
||||||
|
$objList[0].Name = "Tenant Settings"
|
||||||
|
#$objList[0] | Add-Member -MemberType NoteProperty -Name "SettingName" -Value "Tenant Settings"
|
||||||
|
}
|
||||||
|
$objList
|
||||||
|
}
|
||||||
@@ -10,7 +10,7 @@ This module manages Application objects in Intune e.g. uploading application fil
|
|||||||
#>
|
#>
|
||||||
function Get-ModuleVersion
|
function Get-ModuleVersion
|
||||||
{
|
{
|
||||||
'3.4.0'
|
'3.9.3'
|
||||||
}
|
}
|
||||||
|
|
||||||
#########################################################################################
|
#########################################################################################
|
||||||
@@ -94,14 +94,18 @@ function Copy-MSILOB
|
|||||||
|
|
||||||
$tmpFile = [IO.Path]::GetTempFileName()
|
$tmpFile = [IO.Path]::GetTempFileName()
|
||||||
|
|
||||||
$msiInfo = Get-MSIFileInformation $msiFile @("ProductName", "ProductCode", "ProductVersion", "ProductLanguage")
|
$msiInfo = Get-MSIFileInformation $msiFile @("ProductName", "ProductCode", "ProductVersion", "ProductLanguage", "UpgradeCode", "ALLUSERS")
|
||||||
|
|
||||||
if(-not $msiInfo) { return }
|
if(-not $msiInfo) { return }
|
||||||
|
|
||||||
$fileEncryptionInfo = New-IntuneEncryptedFile $msiFile $tmpFile
|
$fileEncryptionInfo = New-IntuneEncryptedFile $msiFile $tmpFile
|
||||||
|
|
||||||
[xml]$manifestXML = '<MobileMsiData MsiExecutionContext="Any" MsiRequiresReboot="false" MsiUpgradeCode="" MsiIsMachineInstall="true" MsiIsUserInstall="false" MsiIncludesServices="false" MsiContainsSystemRegistryKeys="false" MsiContainsSystemFolders="false"></MobileMsiData>'
|
[xml]$manifestXML = '<MobileMsiData MsiExecutionContext="Any" MsiRequiresReboot="false" MsiUpgradeCode="" MsiIsMachineInstall="true" MsiIsUserInstall="false" MsiIncludesServices="false" MsiContainsSystemRegistryKeys="false" MsiContainsSystemFolders="false"></MobileMsiData>'
|
||||||
$manifestXML.MobileMsiData.MsiUpgradeCode = $msiInfo["ProductCode"]
|
$manifestXML.MobileMsiData.MsiUpgradeCode = $msiInfo["UpgradeCode"]
|
||||||
|
if($msiInfo["ALLUSERS"] -eq 1)
|
||||||
|
{
|
||||||
|
$manifestXML.MobileMsiData.MsiExecutionContext = "System"
|
||||||
|
}
|
||||||
|
|
||||||
$appFileBody = @{
|
$appFileBody = @{
|
||||||
"@odata.type" = "#microsoft.graph.mobileAppContentFile"
|
"@odata.type" = "#microsoft.graph.mobileAppContentFile"
|
||||||
@@ -109,11 +113,14 @@ function Copy-MSILOB
|
|||||||
size = (Get-Item $msiFile).Length
|
size = (Get-Item $msiFile).Length
|
||||||
sizeEncrypted = (Get-Item $tmpFile).Length
|
sizeEncrypted = (Get-Item $tmpFile).Length
|
||||||
manifest = [Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($manifestXML.OuterXml))
|
manifest = [Convert]::ToBase64String([System.Text.Encoding]::ASCII.GetBytes($manifestXML.OuterXml))
|
||||||
|
isDependency = $false
|
||||||
}
|
}
|
||||||
|
|
||||||
Add-FileToIntuneApp $appId $appType $tmpFile $appFileBody
|
Add-FileToIntuneApp $appId $appType $tmpFile $appFileBody
|
||||||
|
|
||||||
Remove-Item $tmpFile -Force
|
Remove-Item $tmpFile -Force
|
||||||
|
|
||||||
|
$fileEncryptionInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
function Copy-iOSLOB
|
function Copy-iOSLOB
|
||||||
@@ -149,6 +156,8 @@ function Copy-iOSLOB
|
|||||||
Add-FileToIntuneApp $appId $appType $tmpFile $appFileBody
|
Add-FileToIntuneApp $appId $appType $tmpFile $appFileBody
|
||||||
|
|
||||||
Remove-Item $tmpFile -Force
|
Remove-Item $tmpFile -Force
|
||||||
|
|
||||||
|
$fileEncryptionInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
function Copy-AndroidLOB
|
function Copy-AndroidLOB
|
||||||
@@ -185,6 +194,8 @@ function Copy-AndroidLOB
|
|||||||
Add-FileToIntuneApp $appId $appType $tmpFile $appFileBody
|
Add-FileToIntuneApp $appId $appType $tmpFile $appFileBody
|
||||||
|
|
||||||
Remove-Item $tmpFile -Force
|
Remove-Item $tmpFile -Force
|
||||||
|
|
||||||
|
$fileEncryptionInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
function Copy-Win32LOBPackage
|
function Copy-Win32LOBPackage
|
||||||
@@ -235,7 +246,7 @@ function Copy-Win32LOBPackage
|
|||||||
|
|
||||||
$fileBody = @{
|
$fileBody = @{
|
||||||
"@odata.type" = "#microsoft.graph.mobileAppContentFile"
|
"@odata.type" = "#microsoft.graph.mobileAppContentFile"
|
||||||
name = $DetectionXML.ApplicationInfo.FileName
|
name = "IntunePackage.intunewin"
|
||||||
size = [int64]$DetectionXML.ApplicationInfo.UnencryptedContentSize
|
size = [int64]$DetectionXML.ApplicationInfo.UnencryptedContentSize
|
||||||
sizeEncrypted = (Get-Item $tmpIntunewinFile).Length
|
sizeEncrypted = (Get-Item $tmpIntunewinFile).Length
|
||||||
manifest = $null
|
manifest = $null
|
||||||
@@ -246,45 +257,58 @@ function Copy-Win32LOBPackage
|
|||||||
|
|
||||||
# Remove extracted inintunewin file
|
# Remove extracted inintunewin file
|
||||||
Remove-Item $tmpIntunewinPath -Force -Recurse
|
Remove-Item $tmpIntunewinPath -Force -Recurse
|
||||||
|
|
||||||
|
$fileEncryptionInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
function Add-FileToIntuneApp
|
function Add-FileToIntuneApp
|
||||||
{
|
{
|
||||||
param($appId, $appType, $appFile, $fileBody)
|
param($appId, $appType, $appFile, $fileBody)
|
||||||
|
|
||||||
$contentVersion = Invoke-GraphRequest -Url "/deviceAppManagement/mobileApps/$appId/$appType/contentVersions" -HttpMethod POST -Content "{}"
|
$contentVersion = Invoke-GraphRequest -Url "/deviceAppManagement/mobileApps/$appId/$appType/contentVersions" -HttpMethod POST -Content "{}" -ODataMetadata "Minimal"
|
||||||
$contentVersionId = $contentVersion.id
|
$contentVersionId = $contentVersion.id
|
||||||
$fileObj = Invoke-GraphRequest -Url "/deviceAppManagement/mobileApps/$appId/$appType/contentVersions/$contentVersionId/files" -HttpMethod POST -Content (ConvertTo-Json $fileBody -Depth 5)
|
$fileObj = Invoke-GraphRequest -Url "/deviceAppManagement/mobileApps/$appId/$appType/contentVersions/$contentVersionId/files" -HttpMethod POST -Content (ConvertTo-Json $fileBody -Depth 5) -ODataMetadata "Minimal"
|
||||||
|
|
||||||
if(-not $fileObj)
|
if(-not $fileObj)
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Write-Log "File object created. ID: $($fileObj.id)"
|
||||||
|
|
||||||
# Wait for Azure storage URI
|
# Wait for Azure storage URI
|
||||||
$fileObj = Wait-IntuneFileState "/deviceAppManagement/mobileApps/$appId/$appType/contentVersions/$contentVersionId/files/$($fileObj.Id)" "AzureStorageUriRequest"
|
$fileObj = Wait-IntuneFileState "/deviceAppManagement/mobileApps/$appId/$appType/contentVersions/$contentVersionId/files/$($fileObj.Id)" "AzureStorageUriRequest"
|
||||||
if(-not $fileObj)
|
if(-not $fileObj)
|
||||||
{
|
{
|
||||||
|
Write-Log "No File Object returned from commit. Upload failed" 3
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
# Upload file
|
# Upload file
|
||||||
Send-IntuneFileToAzureStorage $fileObj.azureStorageUri $appFile "/deviceAppManagement/mobileApps/$appId/$appType/contentVersions/$contentVersionId/files/$($fileObj.Id)"
|
Send-IntuneFileToAzureStorage $fileObj.azureStorageUri $appFile "/deviceAppManagement/mobileApps/$appId/$appType/contentVersions/$contentVersionId/files/$($fileObj.Id)" | Out-Null
|
||||||
|
|
||||||
# Commit the file
|
# Commit the file
|
||||||
$reponse = Invoke-GraphRequest -Url "/deviceAppManagement/mobileApps/$appId/$appType/contentVersions/$contentVersionId/files/$($fileObj.Id)/commit" -HttpMethod POST -Content (ConvertTo-Json $fileEncryptionInfo -Depth 5)
|
Invoke-GraphRequest -Url "/deviceAppManagement/mobileApps/$appId/$appType/contentVersions/$contentVersionId/files/$($fileObj.Id)/commit" -HttpMethod POST -Content (ConvertTo-Json $fileEncryptionInfo -Depth 5) | Out-Null
|
||||||
|
|
||||||
Wait-IntuneFileState "/deviceAppManagement/mobileApps/$appId/$appType/contentVersions/$contentVersionId/files/$($fileObj.Id)" "CommitFile"
|
Wait-IntuneFileState "/deviceAppManagement/mobileApps/$appId/$appType/contentVersions/$contentVersionId/files/$($fileObj.Id)" "CommitFile" | Out-Null
|
||||||
|
|
||||||
$fiUpload = [IO.FileInfo]$appFile
|
|
||||||
# Commit the content version
|
# Commit the content version
|
||||||
$commitAppBody = @{
|
$commitAppBody = @{
|
||||||
"@odata.type" = "#$appType"
|
"@odata.type" = "#$appType"
|
||||||
committedContentVersion = $contentVersionId
|
committedContentVersion = $contentVersionId
|
||||||
fileName = $fiUpload.Name
|
|
||||||
}
|
}
|
||||||
|
|
||||||
$reponse = Invoke-GraphRequest -Url "/deviceAppManagement/mobileApps/$appId" -HttpMethod PATCH -Content (ConvertTo-Json $commitAppBody -Depth 5)
|
# if($fileBody.Name) {
|
||||||
|
# $fileUploadName = $fileBody.Name
|
||||||
|
# }
|
||||||
|
# else {
|
||||||
|
$fiUpload = [IO.FileInfo]$appFile
|
||||||
|
$fileUploadName = $fiUpload.Name
|
||||||
|
# }
|
||||||
|
$commitAppBody.Add("fileName",$fileUploadName)
|
||||||
|
|
||||||
|
Invoke-GraphRequest -Url "/deviceAppManagement/mobileApps/$appId" -HttpMethod PATCH -Content (ConvertTo-Json $commitAppBody -Depth 5) | Out-Null
|
||||||
|
Write-Log "Upload finished for file $fileUploadName version $contentVersionId"
|
||||||
}
|
}
|
||||||
|
|
||||||
function Wait-IntuneFileState
|
function Wait-IntuneFileState
|
||||||
@@ -318,7 +342,7 @@ function Wait-IntuneFileState
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
Start-Sleep -s 5
|
Start-Sleep -Seconds 1
|
||||||
}
|
}
|
||||||
|
|
||||||
if($succes -eq $false)
|
if($succes -eq $false)
|
||||||
@@ -357,14 +381,18 @@ function Send-IntuneFileToAzureStorage
|
|||||||
$ids += $id
|
$ids += $id
|
||||||
|
|
||||||
$start = $chunk * $chunkSizeInBytes
|
$start = $chunk * $chunkSizeInBytes
|
||||||
$length = [Math]::Min($chunkSizeInBytes, $fileSize - $start)
|
$length = [Math]::Min([uint64]($chunkSizeInBytes), [uint64]($fileSize - $start))
|
||||||
$bytes = $reader.ReadBytes($length)
|
$bytes = $reader.ReadBytes($length)
|
||||||
|
|
||||||
$currentChunk = $chunk + 1
|
$currentChunk = $chunk + 1
|
||||||
|
|
||||||
Write-Status "Uploading file to Azure Storage`n`nUploading chunk $currentChunk of $chunks ($(($currentChunk / $chunks*100))%)"
|
Write-Status "Uploading file to Azure Storage`n`nUploading chunk $currentChunk of $chunks ($(("{0:N2}" -f ($currentChunk / $chunks*100)))%)"
|
||||||
|
|
||||||
Write-AzureStorageChunk $sasUri $id $bytes
|
if((Write-AzureStorageChunk $sasUri $id $bytes) -eq $false)
|
||||||
|
{
|
||||||
|
Write-Log "Upload failed. Abourting..." 3
|
||||||
|
break
|
||||||
|
}
|
||||||
|
|
||||||
if ($currentChunk -lt $chunks -and $sasRenewalTimer.ElapsedMilliseconds -ge 450000)
|
if ($currentChunk -lt $chunks -and $sasRenewalTimer.ElapsedMilliseconds -ge 450000)
|
||||||
{
|
{
|
||||||
@@ -372,11 +400,18 @@ function Send-IntuneFileToAzureStorage
|
|||||||
$sasRenewalTimer.Restart()
|
$sasRenewalTimer.Restart()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
$reader.Close()
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
Write-Log "Failed to send file to Intune. $($_.Exception.Message)" 3
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
if ($reader -ne $null) { $reader.Dispose() }
|
if ($reader -ne $null)
|
||||||
|
{
|
||||||
|
$reader.Close()
|
||||||
|
$reader.Dispose()
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
# Finalize the upload.
|
# Finalize the upload.
|
||||||
@@ -412,9 +447,17 @@ function Set-FinalizeAzureStorageUpload
|
|||||||
}
|
}
|
||||||
$xml += '</BlockList>'
|
$xml += '</BlockList>'
|
||||||
|
|
||||||
|
$params = @{}
|
||||||
|
$proxyURI = Get-ProxyURI
|
||||||
|
if($proxyURI)
|
||||||
|
{
|
||||||
|
$params.Add("proxy", $proxyURI)
|
||||||
|
$params.Add("UseBasicParsing", $true)
|
||||||
|
}
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Invoke-RestMethod $uri -Method Put -Body $xml
|
Invoke-RestMethod $uri -Method Put -Body $xml @params
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
@@ -443,15 +486,45 @@ function Write-AzureStorageChunk
|
|||||||
|
|
||||||
$curProgressPreference = $ProgressPreference
|
$curProgressPreference = $ProgressPreference
|
||||||
$ProgressPreference = 'SilentlyContinue'
|
$ProgressPreference = 'SilentlyContinue'
|
||||||
|
|
||||||
|
$success = $false
|
||||||
|
$retryCount = 0
|
||||||
|
$params = @{}
|
||||||
|
$proxyURI = Get-ProxyURI
|
||||||
|
if($proxyURI)
|
||||||
|
{
|
||||||
|
$params.Add("proxy", $proxyURI)
|
||||||
|
}
|
||||||
|
|
||||||
|
while($true)
|
||||||
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
$response = Invoke-WebRequest $uri -Method Put -Headers $headers -Body $encodedBody
|
$response = Invoke-WebRequest $uri -Method Put -Headers $headers -Body $encodedBody -UseBasicParsing @params
|
||||||
|
if($retryCount -gt 0)
|
||||||
|
{
|
||||||
|
Write-Log "Chunk uploaded successfully"
|
||||||
|
}
|
||||||
|
$success = $true
|
||||||
|
break
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
|
{
|
||||||
|
if($_.Exception.HResult -eq -2146233079 -and $retryCount -lt 6)
|
||||||
|
{
|
||||||
|
Write-Log "Failed to upload file chunk. Retry in 10 s" 2
|
||||||
|
$retryCount++
|
||||||
|
Start-Sleep -Seconds 10
|
||||||
|
}
|
||||||
|
else
|
||||||
{
|
{
|
||||||
Write-Log "Failed to upload file chunk. $($_.Exception.Message)" 3
|
Write-Log "Failed to upload file chunk. $($_.Exception.Message)" 3
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
$ProgressPreference = $curProgressPreference
|
$ProgressPreference = $curProgressPreference
|
||||||
|
$success
|
||||||
}
|
}
|
||||||
|
|
||||||
function Get-IntuneKey
|
function Get-IntuneKey
|
||||||
@@ -587,3 +660,113 @@ function New-IntuneEncryptedFile
|
|||||||
|
|
||||||
$fileEncryptionInfo
|
$fileEncryptionInfo
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function Start-DecryptFile
|
||||||
|
{
|
||||||
|
param($sourceFile, $targetFile, $encryptionKey, $initializationVector)
|
||||||
|
|
||||||
|
if([IO.File]::Exists($targetFile))
|
||||||
|
{
|
||||||
|
$fi = [IO.FileInfo]$targetFile
|
||||||
|
$newName = $fi.Name + "_$((Get-Date).ToString("yyyyMMdd_HHmm"))" + $fi.Extension
|
||||||
|
$targetFile = $fi.DirectoryName + "\$newName"
|
||||||
|
Write-Log "Target file exists. Changing target file to $targetFile" 2
|
||||||
|
}
|
||||||
|
|
||||||
|
$bufferBlockSize = 1024 * 4
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
$aes = [System.Security.Cryptography.Aes]::Create()
|
||||||
|
|
||||||
|
$buffer = New-Object byte[] $bufferBlockSize
|
||||||
|
$bytesRead = 0
|
||||||
|
|
||||||
|
$targetStream = [System.IO.File]::Open($targetFile, [System.IO.FileMode]::Create, [System.IO.FileAccess]::ReadWrite, [System.IO.FileShare]::None)
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
$sourceStream = [System.IO.File]::Open($sourceFile, [System.IO.FileMode]::Open, [System.IO.FileAccess]::Read, [System.IO.FileShare]::None)
|
||||||
|
|
||||||
|
$decryptor = $aes.CreateDecryptor([Convert]::FromBase64String($encryptionKey), [Convert]::FromBase64String($initializationVector))
|
||||||
|
|
||||||
|
$decryptoStream = New-Object System.Security.Cryptography.CryptoStream -ArgumentList @($targetStream, $decryptor, [System.Security.Cryptography.CryptoStreamMode]::Write)
|
||||||
|
|
||||||
|
$sourceStream.Seek(48L, [System.IO.SeekOrigin]::Begin)
|
||||||
|
|
||||||
|
while (($bytesRead = $sourceStream.Read($buffer, 0, $bufferBlockSize)) -gt 0)
|
||||||
|
{
|
||||||
|
$decryptoStream.Write($buffer, 0, $bytesRead)
|
||||||
|
$decryptoStream.Flush()
|
||||||
|
}
|
||||||
|
$decryptoStream.FlushFinalBlock()
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
if ($null -ne $decryptoStream) { $decryptoStream.Dispose() }
|
||||||
|
if ($null -ne $targetStream) { $targetStream.Dispose() }
|
||||||
|
if ($null -ne $decryptor) { $decryptor.Dispose() }
|
||||||
|
if ($null -ne $sourceStream) { $sourceStream.Dispose() }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
if ($null -ne $sourceStream) { $sourceStream.Dispose() }
|
||||||
|
if ($null -ne $aes) { $aes.Dispose() }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
function Start-DownloadAppContent
|
||||||
|
{
|
||||||
|
param($obj, $destinationFile, [switch]$GetContentFileInfoOnly)
|
||||||
|
# Not use but kept for reference. File can be download but it will be encrypted
|
||||||
|
|
||||||
|
if([IO.File]::Exists($destinationFile))
|
||||||
|
{
|
||||||
|
try { [IO.File]::Delete($encryptionFile) }
|
||||||
|
catch {}
|
||||||
|
}
|
||||||
|
|
||||||
|
$appId = $obj.Id
|
||||||
|
|
||||||
|
$appInfo = Invoke-GraphRequest -Url "$($global:graphURL)/deviceAppManagement/mobileApps/$appId"
|
||||||
|
|
||||||
|
$appType = $appInfo.'@odata.type'.Trim('#')
|
||||||
|
|
||||||
|
#$contentVersions = Invoke-GraphRequest -Url "$($global:graphURL)/deviceAppManagement/mobileApps/$appId/$appType/contentVersions"
|
||||||
|
#$contentVerId = $contentVersions.Value[0].id
|
||||||
|
|
||||||
|
$contentVerId = $appInfo.committedContentVersion
|
||||||
|
|
||||||
|
$contentFiles = Invoke-GraphRequest "/deviceAppManagement/mobileApps/$appId/$appType/contentVersions/$contentVerId/files"
|
||||||
|
|
||||||
|
$contentFile = Invoke-GraphRequest -Url "/deviceAppManagement/mobileApps/$appId/$appType/contentVersions/$contentVerId/files/$($contentFiles.value[-1].Id)" -NoError
|
||||||
|
|
||||||
|
if(-not $contentFile)
|
||||||
|
{
|
||||||
|
foreach($file in $contentFiles.value)
|
||||||
|
{
|
||||||
|
if($contentFiles.value[-1].Id -eq $file.id) { continune }
|
||||||
|
|
||||||
|
# NOT happy about this. file objects are not always returned in the order of upload.
|
||||||
|
$contentFile = Invoke-GraphRequest -Url "/deviceAppManagement/mobileApps/$appId/$appType/contentVersions/$contentVerId/files/$($file.Id)" -NoError
|
||||||
|
if($contentFile)
|
||||||
|
{
|
||||||
|
break
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($contentFile.azureStorageUri)
|
||||||
|
{
|
||||||
|
if($GetContentFileInfoOnly -ne $true)
|
||||||
|
{
|
||||||
|
Start-DownloadFile $contentFile.azureStorageUri $destinationFile
|
||||||
|
}
|
||||||
|
return $contentFile
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Write-Log "Could not find file object for app $($obj.displayName) ($($appId))" 2
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,329 @@
|
|||||||
|
<#
|
||||||
|
.SYNOPSIS
|
||||||
|
Module for listing Intune assignment filter usage
|
||||||
|
|
||||||
|
.DESCRIPTION
|
||||||
|
|
||||||
|
.NOTES
|
||||||
|
Author: Mikael Karlsson
|
||||||
|
#>
|
||||||
|
function Get-ModuleVersion
|
||||||
|
{
|
||||||
|
'1.0.0'
|
||||||
|
}
|
||||||
|
|
||||||
|
function Invoke-InitializeModule
|
||||||
|
{
|
||||||
|
Add-EMToolsViewItem (New-Object PSObject -Property @{
|
||||||
|
Title = "Intune Filter Usage"
|
||||||
|
Id = "IntuneFilterUsage"
|
||||||
|
ViewID = "EMTools"
|
||||||
|
Permissons=@("DeviceManagementConfiguration.ReadWrite.All")
|
||||||
|
Icon="DeviceConfiguration"
|
||||||
|
ShowViewItem = { Show-IntuneToolsFilterUsage }
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
function Show-IntuneToolsFilterUsage
|
||||||
|
{
|
||||||
|
if(-not $script:frmIntuneFilterUsage)
|
||||||
|
{
|
||||||
|
$script:frmIntuneFilterUsage = Get-XamlObject ($global:AppRootFolder + "\Xaml\IntuneToolsFiterUsage.xaml") #-AddVariables
|
||||||
|
|
||||||
|
if(-not $script:frmIntuneFilterUsage) { return }
|
||||||
|
|
||||||
|
Add-XamlEvent $script:frmIntuneFilterUsage "btnGetIntuneFilterUsage" "add_click" ({
|
||||||
|
Write-Status "Get Intune Filter Usage"
|
||||||
|
Get-EMIntuneFilterUsage
|
||||||
|
Write-Status ""
|
||||||
|
})
|
||||||
|
|
||||||
|
Add-XamlEvent $script:frmIntuneFilterUsage "btnIntuneFilterUsageCopy" "add_click" ({
|
||||||
|
$dgValues = Get-DataGridValues ($script:frmIntuneFilterUsage.FindName("dgIntuneFilterUsage"))
|
||||||
|
$dgValues | ConvertTo-Csv -NoTypeInformation | Set-Clipboard
|
||||||
|
})
|
||||||
|
|
||||||
|
Add-XamlEvent $script:frmIntuneFilterUsage "btnIntuneFilterUsagesSave" "add_click" ({
|
||||||
|
|
||||||
|
$dlgSave = New-Object -Typename System.Windows.Forms.SaveFileDialog
|
||||||
|
$dlgSave.FileName = $obj.FileName
|
||||||
|
$dlgSave.DefaultExt = "*.csv"
|
||||||
|
$dlgSave.Filter = "CSV (*.csv)|*.csv|All files (*.*)| *.*"
|
||||||
|
if($dlgSave.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK -and $dlgSave.Filename)
|
||||||
|
{
|
||||||
|
$dgValues = Get-DataGridValues ($script:frmIntuneFilterUsage.FindName("dgIntuneFilterUsage"))
|
||||||
|
$dgValues | ConvertTo-Csv -NoTypeInformation | Out-File -LiteralPath $dlgSave.Filename -Encoding UTF8 -Force
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
$global:grdToolsMain.Children.Clear()
|
||||||
|
$global:grdToolsMain.Children.Add($frmIntuneFilterUsage)
|
||||||
|
}
|
||||||
|
|
||||||
|
function Get-DataGridValues_old
|
||||||
|
{
|
||||||
|
param($dataGrid)
|
||||||
|
|
||||||
|
$dgColumns = $dataGrid.Columns
|
||||||
|
#$dgColumns = Get-XamlProperty $script:frmIntuneFilterUsage "dgIntuneFilterUsage" "Columns"
|
||||||
|
|
||||||
|
$properties = @()
|
||||||
|
|
||||||
|
foreach($tmpCol in $dgColumns)
|
||||||
|
{
|
||||||
|
$propName = $tmpCol.Binding.Path.Path
|
||||||
|
$properties += @{n=$tmpCol.Header;e=([Scriptblock]::Create("`$_.$propName"))}
|
||||||
|
}
|
||||||
|
|
||||||
|
($script:objFilterUsage | Select -Property $properties)
|
||||||
|
}
|
||||||
|
|
||||||
|
function Get-EMIntuneFilterUsage
|
||||||
|
{
|
||||||
|
param($rootDir)
|
||||||
|
|
||||||
|
Write-Status "Gather Intune Filter Information"
|
||||||
|
|
||||||
|
Set-XamlProperty $script:frmIntuneFilterUsage "dgIntuneFilterUsage" "ItemsSource" $null
|
||||||
|
|
||||||
|
$objectType = Get-GraphObjectType "AssignmentFilters"
|
||||||
|
|
||||||
|
$loadedGroups = @{}
|
||||||
|
$loadedGroups.Add("adadadad-808e-44e2-905a-0b7873a8a531","All Devices")
|
||||||
|
$loadedGroups.Add("acacacac-9df4-4c7d-9d50-4ef0226f57a9","All Users")
|
||||||
|
|
||||||
|
$script:objFilters = (Invoke-GraphRequest -Url $objectType.API).Value
|
||||||
|
|
||||||
|
$script:objFilterUsage = @()
|
||||||
|
$groupIDs = @()
|
||||||
|
|
||||||
|
foreach($filter in $script:objFilters)
|
||||||
|
{
|
||||||
|
Write-Status "Get payloads for filter $($filter.displayName)"
|
||||||
|
|
||||||
|
$payloads = (Invoke-GraphRequest -Url "$($objectType.API)/$($filter.ID)/payloads").value
|
||||||
|
|
||||||
|
$batchObjs = @()
|
||||||
|
foreach($payload in $payloads)
|
||||||
|
{
|
||||||
|
$guid = (New-Guid).Guid
|
||||||
|
|
||||||
|
$payloadsObj = @{
|
||||||
|
Payload = $payload
|
||||||
|
ID = $guid
|
||||||
|
Requests = @()
|
||||||
|
}
|
||||||
|
|
||||||
|
if($groupIDs -notcontains $payload.groupId)
|
||||||
|
{
|
||||||
|
$groupIDs += $payload.groupId
|
||||||
|
}
|
||||||
|
|
||||||
|
$batchObjs += $payloadsObj
|
||||||
|
|
||||||
|
if($payload.payloadType -eq "win32app")
|
||||||
|
{
|
||||||
|
$payloadsObj.Requests += [ordered]@{
|
||||||
|
id = "$($guid)_deviceHealthScripts"
|
||||||
|
method = "GET"
|
||||||
|
url = "/deviceManagement/deviceHealthScripts/$($payload.payloadId)/?`$select=displayName,isGlobalScript"
|
||||||
|
headers = @{"x-ms-command-name"="AssignmentFilterPayloadProxy_resolvePayloadNames_BatchItem"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
elseif($payload.payloadType -eq "application")
|
||||||
|
{
|
||||||
|
$payloadsObj.Requests += [ordered]@{
|
||||||
|
id = "$($guid)_mobileApps"
|
||||||
|
method = "GET"
|
||||||
|
url = "//deviceAppManagement/mobileApps/$($payload.payloadId)/?`$select=displayName"
|
||||||
|
headers = @{"x-ms-command-name"="AssignmentFilterPayloadProxy_resolvePayloadNames_BatchItem"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$payloadsObj.Requests += [ordered]@{
|
||||||
|
id = "$($guid)_deviceCompliancePolicies"
|
||||||
|
method = "GET"
|
||||||
|
url = "/deviceManagement/deviceCompliancePolicies/$($payload.payloadId)/?`$select=displayName"
|
||||||
|
headers = @{"x-ms-command-name"="AssignmentFilterPayloadProxy_resolvePayloadNames_BatchItem"}
|
||||||
|
}
|
||||||
|
|
||||||
|
$payloadsObj.Requests += [ordered]@{
|
||||||
|
id = "$($guid)_deviceConfigurations"
|
||||||
|
method = "GET"
|
||||||
|
url = "/deviceManagement/deviceConfigurations/$($payload.payloadId)/?`$select=displayName"
|
||||||
|
headers = @{"x-ms-command-name"="AssignmentFilterPayloadProxy_resolvePayloadNames_BatchItem"}
|
||||||
|
}
|
||||||
|
|
||||||
|
$payloadsObj.Requests += [ordered]@{
|
||||||
|
id = "$($guid)_mobileAppConfigurations"
|
||||||
|
method = "GET"
|
||||||
|
url = "/deviceAppManagement/mobileAppConfigurations/$($payload.payloadId)/?`$select=displayName"
|
||||||
|
headers = @{"x-ms-command-name"="AssignmentFilterPayloadProxy_resolvePayloadNames_BatchItem"}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($batchObjs.Count -gt 0)
|
||||||
|
{
|
||||||
|
$objName = Get-GraphObjectName $filter $objectType
|
||||||
|
$responses = Invoke-GraphBatchRequest $batchObjs.Requests $objName -SkipWarnings
|
||||||
|
<#
|
||||||
|
$batchObj = [ordered]@{
|
||||||
|
requests = @($batchObjs.Requests)
|
||||||
|
}
|
||||||
|
|
||||||
|
$responses = (Invoke-GraphRequest -Url "`$batch" -Body ($batchObj | ConvertTo-Json -Depth 50 -Compress) -Method "POST").responses
|
||||||
|
#>
|
||||||
|
foreach($response in ($responses | Where Status -eq 200))
|
||||||
|
{
|
||||||
|
$payload = ($batchObjs | Where { $response.id -like "$($_.ID)*"}).Payload
|
||||||
|
|
||||||
|
if($payload.assignmentFilterType -eq "Include")
|
||||||
|
{
|
||||||
|
$filterType = "Include"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$filterType = "Exclude"
|
||||||
|
}
|
||||||
|
|
||||||
|
$typeStr = $null
|
||||||
|
if($payload.payloadType -eq "application")
|
||||||
|
{
|
||||||
|
$typeStr = Get-LanguageString "AppType.windowsClassicApp"
|
||||||
|
}
|
||||||
|
elseif($payload.payloadType -eq "win32app")
|
||||||
|
{
|
||||||
|
$typeStr = "Proactive Remediations"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$typeStr = (Get-PolicyTypeName $response.body.'@odata.type' $payload.payloadType)
|
||||||
|
}
|
||||||
|
|
||||||
|
if(-not $typeStr) { $typeStr = $payload.payloadType}
|
||||||
|
|
||||||
|
$script:objFilterUsage += [PSCustomObject]@{
|
||||||
|
FiterObject = $filter
|
||||||
|
PayloadObject = $payload
|
||||||
|
FilterName = $filter.displayName
|
||||||
|
PolicyName = $response.body.displayName
|
||||||
|
Type = $response.body.'@odata.type'
|
||||||
|
PayloadType = $typeStr
|
||||||
|
Mode = $filterType
|
||||||
|
GroupID = $payload.groupId
|
||||||
|
GroupName = $payload.groupId
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($groupIDs.Count -gt 0)
|
||||||
|
{
|
||||||
|
$guid = (New-Guid).Guid
|
||||||
|
$groupObjs = @()
|
||||||
|
$x = 1
|
||||||
|
foreach($groupID in $groupIDs)
|
||||||
|
{
|
||||||
|
if($loadedGroups.ContainsKey($groupID)) { continue }
|
||||||
|
$groupObjs += [ordered]@{
|
||||||
|
id= "$($guid)_$x"
|
||||||
|
method="GET"
|
||||||
|
url="/groups/$($groupID)/?`$select=displayName,id"
|
||||||
|
headers = @{"x-ms-command-name"="AssignmentFilterPayloadProxy_resolvePayloadGroupAssignments_BatchItem"}
|
||||||
|
}
|
||||||
|
$x++
|
||||||
|
}
|
||||||
|
|
||||||
|
if($groupObjs.Count -gt 0)
|
||||||
|
{
|
||||||
|
$responses = Invoke-GraphBatchRequest $groupObjs "Groups"
|
||||||
|
<#
|
||||||
|
$batchObj = [ordered]@{
|
||||||
|
requests = @($groupObjs)
|
||||||
|
}
|
||||||
|
|
||||||
|
$responses = (Invoke-GraphRequest -Url "`$batch" -Body ($batchObj | ConvertTo-Json -Depth 50 -Compress) -Method "POST").responses
|
||||||
|
#>
|
||||||
|
foreach($response in ($responses | Where Status -eq 200))
|
||||||
|
{
|
||||||
|
if($response.body.displayName -and $response.body.id -and $loadedGroups.ContainsKey($response.body.id) -eq $false)
|
||||||
|
{
|
||||||
|
$loadedGroups.Add($response.body.id, $response.body.displayName)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
foreach($groupID in $loadedGroups.Keys)
|
||||||
|
{
|
||||||
|
$filterObj = $script:objFilterUsage | WHere GroupID -eq $groupID
|
||||||
|
if($filterObj -and $loadedGroups[$groupID])
|
||||||
|
{
|
||||||
|
$filterObj.GroupName = $loadedGroups[$groupID]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Add-XamlEvent $script:frmIntuneFilterUsage "txtIntuneFilterUsageFilter" "Add_LostFocus" ({
|
||||||
|
Invoke-IntueFilterUsageBoxChanged $this
|
||||||
|
})
|
||||||
|
|
||||||
|
Add-XamlEvent $script:frmIntuneFilterUsage "txtIntuneFilterUsageFilter" "Add_GotFocus" ({
|
||||||
|
if($this.Tag -eq "1" -and $this.Text -eq "Filter") { $this.Text = "" }
|
||||||
|
Invoke-IntueFilterUsageBoxChanged $this ($script:frmIntuneFilterUsage.FindName("dgIntuneFilterUsage"))
|
||||||
|
})
|
||||||
|
|
||||||
|
Add-XamlEvent $script:frmIntuneFilterUsage "txtIntuneFilterUsageFilter" "Add_TextChanged" ({
|
||||||
|
Invoke-IntueFilterUsageBoxChanged $this ($script:frmIntuneFilterUsage.FindName("dgIntuneFilterUsage"))
|
||||||
|
})
|
||||||
|
|
||||||
|
Invoke-IntueFilterUsageBoxChanged ($script:frmIntuneFilterUsage.FindName("txtIntuneFilterUsageFilter")) ($script:frmIntuneFilterUsage.FindName("dgIntuneFilterUsage"))
|
||||||
|
|
||||||
|
$ocList = [System.Collections.ObjectModel.ObservableCollection[object]]::new(@($script:objFilterUsage))
|
||||||
|
|
||||||
|
Set-XamlProperty $script:frmIntuneFilterUsage "dgIntuneFilterUsage" "ItemsSource" ([System.Windows.Data.CollectionViewSource]::GetDefaultView($ocList))
|
||||||
|
}
|
||||||
|
|
||||||
|
function Invoke-IntueFilterUsageBoxChanged
|
||||||
|
{
|
||||||
|
param($txtBox, $dgObject)
|
||||||
|
|
||||||
|
$filter = $null
|
||||||
|
|
||||||
|
if($txtBox.Text.Trim() -eq "" -and $txtBox.IsFocused -eq $false)
|
||||||
|
{
|
||||||
|
$txtBox.FontStyle = "Italic"
|
||||||
|
$txtBox.Tag = 1
|
||||||
|
$txtBox.Text = "Filter"
|
||||||
|
$txtBox.Foreground="Lightgray"
|
||||||
|
}
|
||||||
|
elseif($txtBox.Tag -eq "1" -and $txtBox.Text -eq "Filter" -and $txtBox.IsFocused -eq $false)
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$txtBox.FontStyle = "Normal"
|
||||||
|
$txtBox.Tag = $null
|
||||||
|
$txtBox.Foreground="Black"
|
||||||
|
$txtBox.Background="White"
|
||||||
|
|
||||||
|
if($txtBox.Text)
|
||||||
|
{
|
||||||
|
$filter = {
|
||||||
|
param ($item)
|
||||||
|
|
||||||
|
return ($item.FilterName -match [regex]::Escape($txtBox.Text) -or $item.PolicyName -match [regex]::Escape($txtBox.Text) -or $item.GroupName -match [regex]::Escape($txtBox.Text) )
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
if($dgObject.ItemsSource -is [System.Windows.Data.ListCollectionView] -and $txtBox.IsFocused -eq $true)
|
||||||
|
{
|
||||||
|
# This causes odd behaviour with focus e.g. and item has to be clicked twice to be selected
|
||||||
|
$dgObject.ItemsSource.Filter = $filter
|
||||||
|
#$dgObject.ItemsSource.Refresh()
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -22,7 +22,7 @@ $global:EMToolsViewObject = $null
|
|||||||
|
|
||||||
function Get-ModuleVersion
|
function Get-ModuleVersion
|
||||||
{
|
{
|
||||||
'1.0.3'
|
'1.0.4'
|
||||||
}
|
}
|
||||||
|
|
||||||
function Invoke-InitializeModule
|
function Invoke-InitializeModule
|
||||||
@@ -82,7 +82,7 @@ function Add-EMToolsViewItem
|
|||||||
Activating = { Invoke-EMToolsActivatingView }
|
Activating = { Invoke-EMToolsActivatingView }
|
||||||
Authentication = (Get-MSALAuthenticationObject)
|
Authentication = (Get-MSALAuthenticationObject)
|
||||||
Authenticate = { Invoke-EMToolsAuthenticateToMSAL }
|
Authenticate = { Invoke-EMToolsAuthenticateToMSAL }
|
||||||
AppInfo = (Get-GraphAppInfo "EM" "d1ddf0e4-d672-4dae-b554-9d5bdfd93547")
|
AppInfo = (Get-GraphAppInfo "EMAzureApp" "d1ddf0e4-d672-4dae-b554-9d5bdfd93547")
|
||||||
SaveSettings = { Invoke-EMSaveSettings }
|
SaveSettings = { Invoke-EMSaveSettings }
|
||||||
Permissions = @()
|
Permissions = @()
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ This module manages Authentication for the application with MSAL. It is also res
|
|||||||
#>
|
#>
|
||||||
function Get-ModuleVersion
|
function Get-ModuleVersion
|
||||||
{
|
{
|
||||||
'3.7.0'
|
'3.9.3'
|
||||||
}
|
}
|
||||||
|
|
||||||
$global:msalAuthenticator = $null
|
$global:msalAuthenticator = $null
|
||||||
@@ -37,7 +37,7 @@ function Invoke-InitializeModule
|
|||||||
Name = "Azure AD China"
|
Name = "Azure AD China"
|
||||||
Value = "china"
|
Value = "china"
|
||||||
URL = "login.partner.microsoftonline.cn"
|
URL = "login.partner.microsoftonline.cn"
|
||||||
GraphURL = "https://microsoftgraph.chinacloudapi.cn"
|
GraphURL = "microsoftgraph.chinacloudapi.cn"
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -158,6 +158,10 @@ function Clear-MSALCurentUserVaiables
|
|||||||
{
|
{
|
||||||
$global:MSALTenantId = $null
|
$global:MSALTenantId = $null
|
||||||
$global:MSALGraphEnvironment = $null
|
$global:MSALGraphEnvironment = $null
|
||||||
|
|
||||||
|
$script:jwtAccessToken = $null
|
||||||
|
$script:jwtIdToken = $null
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function Get-MSALCurrentApp
|
function Get-MSALCurrentApp
|
||||||
@@ -209,21 +213,23 @@ function Set-MSALGraphEnvironment
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
elseif($cuAADEnv.GraphURL)
|
elseif($curAADEnv.GraphURL)
|
||||||
{
|
{
|
||||||
$graphEnv = $cuAADEnv.GraphURL
|
$graphEnv = $curAADEnv.GraphURL
|
||||||
}
|
}
|
||||||
|
|
||||||
Write-Log "Use Graph environment: $graphEnv"
|
Write-Log "Use Graph environment: $graphEnv"
|
||||||
$global:MSALGraphEnvironment = $graphEnv
|
$global:MSALGraphEnvironment = $graphEnv
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
function Get-MSALUserInfo
|
function Get-MSALUserInfo
|
||||||
{
|
{
|
||||||
if($global:MSALToken)
|
if($global:MSALToken)
|
||||||
{
|
{
|
||||||
Write-Log "Get current user"
|
Write-Log "Get current user"
|
||||||
|
|
||||||
|
if($script:jwtAccessToken.Payload.idtyp -ne "app")
|
||||||
|
{
|
||||||
$tmpMe = MSGraph\Invoke-GraphRequest -Url "ME" -SkipAuthentication -ODataMetadata "Skip"
|
$tmpMe = MSGraph\Invoke-GraphRequest -Url "ME" -SkipAuthentication -ODataMetadata "Skip"
|
||||||
if($null -ne $tmpMe -and $tmpMe.creationType -ne "Invitation")
|
if($null -ne $tmpMe -and $tmpMe.creationType -ne "Invitation")
|
||||||
{
|
{
|
||||||
@@ -231,7 +237,13 @@ function Get-MSALUserInfo
|
|||||||
$global:Me = $tmpMe
|
$global:Me = $tmpMe
|
||||||
Write-Log "Get profile picture"
|
Write-Log "Get profile picture"
|
||||||
$global:profilePhoto = "$($env:LOCALAPPDATA)\CloudAPIPowerShellManagement\$($global:Me.Id).jpeg"
|
$global:profilePhoto = "$($env:LOCALAPPDATA)\CloudAPIPowerShellManagement\$($global:Me.Id).jpeg"
|
||||||
MSGraph\Invoke-GraphRequest "me/photos/48x48/`$value" -OutFile $global:profilePhoto -SkipAuthentication | Out-Null
|
MSGraph\Invoke-GraphRequest "me/photos/48x48/`$value" -OutFile $global:profilePhoto -SkipAuthentication -NoError | Out-Null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$global:profilePhoto = $null
|
||||||
|
$global:me = $script:jwtAccessToken.Payload.app_displayname
|
||||||
}
|
}
|
||||||
|
|
||||||
Write-Log "Get organization info"
|
Write-Log "Get organization info"
|
||||||
@@ -536,12 +548,14 @@ function Add-MSALPrereq
|
|||||||
Write-Log "Some MSAL features might not work!" 3
|
Write-Log "Some MSAL features might not work!" 3
|
||||||
Write-Log "This could happen if another version of MSAL.DLL was loaded beforethe script tried to load it" 3
|
Write-Log "This could happen if another version of MSAL.DLL was loaded beforethe script tried to load it" 3
|
||||||
$RequiredAssemblies.Add($fiLoaded.FullName)
|
$RequiredAssemblies.Add($fiLoaded.FullName)
|
||||||
|
$script:msalFile = $fiLoaded.FullName
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
Write-Log "Using MSAL file $msalPath. Version: $($fi.VersionInfo.FileVersion)"
|
Write-Log "Using MSAL file $msalPath. Version: $($fi.VersionInfo.FileVersion)"
|
||||||
[void][System.Reflection.Assembly]::LoadFile($msalPath)
|
[void][System.Reflection.Assembly]::LoadFile($msalPath)
|
||||||
$RequiredAssemblies.Add($msalPath)
|
$RequiredAssemblies.Add($msalPath)
|
||||||
|
$script:msalFile = $msalPath
|
||||||
}
|
}
|
||||||
$RequiredAssemblies.Add('System.Security.dll')
|
$RequiredAssemblies.Add('System.Security.dll')
|
||||||
|
|
||||||
@@ -573,12 +587,33 @@ function Connect-MSALClientApp
|
|||||||
}
|
}
|
||||||
elseif($Certificate)
|
elseif($Certificate)
|
||||||
{
|
{
|
||||||
$ClientApplicationBuilder = [Microsoft.Identity.Client.ConfidentialClientApplicationBuilder]::Create($clientId).WithCertificate($Certificate).WithAuthority([URI]::new($authority)) #.WithRedirectUri($redirectUri)
|
$f = [System.Security.Cryptography.X509Certificates.OpenFlags]::ReadOnly
|
||||||
|
$cert = $null
|
||||||
|
# Try LocalMachine store first, if not found try also CurrentUser store
|
||||||
|
$store = New-Object System.Security.Cryptography.X509Certificates.X509Store("My", "LocalMachine")
|
||||||
|
$null = $store.Open($f)
|
||||||
|
$cert = $store.Certificates | Where-Object {$_.Thumbprint -eq $Certificate}
|
||||||
|
$null = $store.Close()
|
||||||
|
if($null -eq $cert)
|
||||||
|
{
|
||||||
|
$store = New-Object System.Security.Cryptography.X509Certificates.X509Store("My", "CurrentUser")
|
||||||
|
$null = $store.Open($f)
|
||||||
|
$cert = $store.Certificates | Where-Object {$_.Thumbprint -eq $Certificate}
|
||||||
|
$null = $store.Close()
|
||||||
|
}
|
||||||
|
|
||||||
|
if($null -eq $cert)
|
||||||
|
{
|
||||||
|
Write-LogError "Could not find a certificate with thumbprint '$($Certificate)' in LocalMachine or CurrentUser store"
|
||||||
|
return
|
||||||
|
}
|
||||||
|
$ClientApplicationBuilder = [Microsoft.Identity.Client.ConfidentialClientApplicationBuilder]::Create($clientId).WithCertificate($cert).WithAuthority([URI]::new($authority)) #.WithRedirectUri($redirectUri)
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
Add-MSALProxy $ClientApplicationBuilder
|
||||||
$script:MSALApp = $ClientApplicationBuilder.Build()
|
$script:MSALApp = $ClientApplicationBuilder.Build()
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -658,6 +693,43 @@ function Get-MsalAuthenticationToken
|
|||||||
$authResult
|
$authResult
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function Add-MSALProxy
|
||||||
|
{
|
||||||
|
param($appBuilder)
|
||||||
|
|
||||||
|
$proxy = Get-SettingValue "ProxyURI"
|
||||||
|
if($proxy)
|
||||||
|
{
|
||||||
|
Write-Log "Use proxy $proxy"
|
||||||
|
if(-not ("HttpFactoryWithProxy" -as [type]))
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Write-Log "Add type HttpFactoryWithProxy"
|
||||||
|
[System.Collections.Generic.List[string]] $RequiredAssemblies = New-Object System.Collections.Generic.List[string]
|
||||||
|
$RequiredAssemblies.Add($script:msalFile)
|
||||||
|
$RequiredAssemblies.Add('System.Net.Http.dll')
|
||||||
|
$RequiredAssemblies.Add('System.Net.Primitives.dll')
|
||||||
|
|
||||||
|
Add-Type -Path ($global:AppRootFolder + "\CS\HttpFactoryWithProxy.cs") -ReferencedAssemblies $RequiredAssemblies
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
Write-LogError "Failed to compile HttpFactoryWithProxy" $_.Exception
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
$hcf = [HttpFactoryWithProxy]::new($proxy)
|
||||||
|
[void] $appBuilder.WithHttpClientFactory($hcf)
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
Write-LogError "Failed to set proxy for MSAL" $_.Exception
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
function Get-MSALLoginEnvironment
|
function Get-MSALLoginEnvironment
|
||||||
{
|
{
|
||||||
$loginEnv = $script:lstAADEnvironments | Where value -eq (Get-Setting "" "MSALCloudType" "public")
|
$loginEnv = $script:lstAADEnvironments | Where value -eq (Get-Setting "" "MSALCloudType" "public")
|
||||||
@@ -698,6 +770,8 @@ function Get-MSALApp
|
|||||||
[void] $appBuilder.WithClientName("CloudAPIPowerShellManagement")
|
[void] $appBuilder.WithClientName("CloudAPIPowerShellManagement")
|
||||||
[void] $appBuilder.WithClientVersion($PSVersionTable.PSVersion)
|
[void] $appBuilder.WithClientVersion($PSVersionTable.PSVersion)
|
||||||
|
|
||||||
|
Add-MSALProxy $appBuilder
|
||||||
|
|
||||||
# Ceck if correct version...
|
# Ceck if correct version...
|
||||||
#$appBuilder.WithMultiCloudSupport($true)
|
#$appBuilder.WithMultiCloudSupport($true)
|
||||||
|
|
||||||
@@ -773,6 +847,42 @@ function Connect-MSALUser
|
|||||||
|
|
||||||
Write-LogDebug "Authenticate"
|
Write-LogDebug "Authenticate"
|
||||||
|
|
||||||
|
if($global:MainAppStarted -eq $false)
|
||||||
|
{
|
||||||
|
$script:AppLogin = (Get-SettingValue "GraphAzureAppLogin") -or ($global:TenantId -and $global:AzureAppId -and ($global:ClientSecret -or $global:ClientCert))
|
||||||
|
}
|
||||||
|
|
||||||
|
if($script:AppLogin)
|
||||||
|
{
|
||||||
|
if($global:MSALToken -and $global:MSALToken.ExpiresOn.LocalDateTime.Ticks -gt ((Get-Date).AddMinutes(-5)).Ticks)
|
||||||
|
{
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get login info for silent job from settings
|
||||||
|
if(-not $global:AzureAppId) { $global:AzureAppId = Get-SettingValue "GraphAzureAppId" -TenantID $global:TenantId }
|
||||||
|
if(-not $global:ClientSecret -and -not $global:ClientCert) { $global:ClientSecret = Get-SettingValue "GraphAzureAppSecret" -TenantID $global:TenantId }
|
||||||
|
if(-not $global:ClientSecret -and -not $global:ClientCert) { $global:ClientCert = Get-SettingValue "GraphAzureAppCert" -TenantID $global:TenantId }
|
||||||
|
|
||||||
|
if($global:AzureAppId -and $global:ClientSecret -and $global:TenantId)
|
||||||
|
{
|
||||||
|
Connect-MSALClientApp $global:AzureAppId $global:TenantId -secret $global:ClientSecret
|
||||||
|
}
|
||||||
|
elseif($global:AzureAppId -and $global:ClientCert -and $global:TenantId)
|
||||||
|
{
|
||||||
|
Connect-MSALClientApp $global:AzureAppId $global:TenantId -certificate $global:ClientCert
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Write-Log "Azure AppId, Tenant Id and Sercret/Cert must be specified for App logins" 3
|
||||||
|
}
|
||||||
|
|
||||||
|
Invoke-MSALAuthenticationUpdated $global:MSALToken
|
||||||
|
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if($ShowMenu -eq $true -and ((Get-SettingValue "AzureADLoginMenu") -eq $true))
|
if($ShowMenu -eq $true -and ((Get-SettingValue "AzureADLoginMenu") -eq $true))
|
||||||
{
|
{
|
||||||
if((Show-MSALLoginMenu) -eq $false) { return }
|
if((Show-MSALLoginMenu) -eq $false) { return }
|
||||||
@@ -1038,7 +1148,7 @@ function Connect-MSALUser
|
|||||||
#########################################################################################################
|
#########################################################################################################
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Write-Log "Get tennant list"
|
Write-Log "Get tenant list"
|
||||||
|
|
||||||
# Can we reuse the app used for login?
|
# Can we reuse the app used for login?
|
||||||
$appBuilder = [Microsoft.Identity.Client.PublicClientApplicationBuilder]::Create($global:appObj.ClientID)
|
$appBuilder = [Microsoft.Identity.Client.PublicClientApplicationBuilder]::Create($global:appObj.ClientID)
|
||||||
@@ -1046,6 +1156,8 @@ function Connect-MSALUser
|
|||||||
else { [void]$appBuilder.WithAuthority($global:MSALApp.Authority) }
|
else { [void]$appBuilder.WithAuthority($global:MSALApp.Authority) }
|
||||||
if($global:appObj.RedirectUri) { [void]$appBuilder.WithRedirectUri($global:appObj.RedirectUri) }
|
if($global:appObj.RedirectUri) { [void]$appBuilder.WithRedirectUri($global:appObj.RedirectUri) }
|
||||||
|
|
||||||
|
Add-MSALProxy $appBuilder
|
||||||
|
|
||||||
$app = $appBuilder.Build()
|
$app = $appBuilder.Build()
|
||||||
|
|
||||||
if((Get-SettingValue "CacheMSALToken"))
|
if((Get-SettingValue "CacheMSALToken"))
|
||||||
@@ -1074,7 +1186,15 @@ function Connect-MSALUser
|
|||||||
'ExpiresOn' = $tmpResults.ExpiresOn
|
'ExpiresOn' = $tmpResults.ExpiresOn
|
||||||
}
|
}
|
||||||
|
|
||||||
$ret = Invoke-RestMethod "https://management.azure.com/tenants?api-version=2020-01-01" -Headers $Headers
|
$params = @{}
|
||||||
|
$proxyURI = Get-ProxyURI
|
||||||
|
if($proxyURI)
|
||||||
|
{
|
||||||
|
$params.Add("proxy", $proxyURI)
|
||||||
|
$params.Add("UseBasicParsing", $true)
|
||||||
|
}
|
||||||
|
|
||||||
|
$ret = Invoke-RestMethod "https://management.azure.com/tenants?api-version=2020-01-01" -Headers $Headers @params
|
||||||
if($ret)
|
if($ret)
|
||||||
{
|
{
|
||||||
$script:AccessableTenants = $ret.Value
|
$script:AccessableTenants = $ret.Value
|
||||||
@@ -1096,7 +1216,8 @@ function Connect-MSALUser
|
|||||||
Save-Setting "" "LastLoggedOnUser" $authResult.Account.UserName
|
Save-Setting "" "LastLoggedOnUser" $authResult.Account.UserName
|
||||||
Save-Setting "" "LastLoggedOnUserId" $authResult.Account.HomeAccountId.ObjectId
|
Save-Setting "" "LastLoggedOnUserId" $authResult.Account.HomeAccountId.ObjectId
|
||||||
}
|
}
|
||||||
|
Invoke-MSALAuthenticationUpdated $authResult
|
||||||
|
<#
|
||||||
Write-LogDebug "User, tenant or app has changed"
|
Write-LogDebug "User, tenant or app has changed"
|
||||||
Get-MSALUserInfo
|
Get-MSALUserInfo
|
||||||
if($authResult)
|
if($authResult)
|
||||||
@@ -1104,9 +1225,26 @@ function Connect-MSALUser
|
|||||||
Invoke-MSALCheckObjectViewAccess $authResult
|
Invoke-MSALCheckObjectViewAccess $authResult
|
||||||
}
|
}
|
||||||
Invoke-ModuleFunction "Invoke-GraphAuthenticationUpdated"
|
Invoke-ModuleFunction "Invoke-GraphAuthenticationUpdated"
|
||||||
|
#>
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function local:Invoke-MSALAuthenticationUpdated
|
||||||
|
{
|
||||||
|
param($authResult)
|
||||||
|
|
||||||
|
Write-LogDebug "User, tenant or app has changed"
|
||||||
|
$script:jwtAccessToken = Get-JWTtoken $global:MSALToken.AccessToken
|
||||||
|
$script:jwtIdToken = Get-JWTtoken $global:MSALToken.IdToken
|
||||||
|
|
||||||
|
Get-MSALUserInfo
|
||||||
|
if($authResult)
|
||||||
|
{
|
||||||
|
Invoke-MSALCheckObjectViewAccess $authResult
|
||||||
|
}
|
||||||
|
Invoke-ModuleFunction "Invoke-GraphAuthenticationUpdated"
|
||||||
|
}
|
||||||
|
|
||||||
function Start-MSALConsentPrompt
|
function Start-MSALConsentPrompt
|
||||||
{
|
{
|
||||||
param([switch]$PassThru, $authToken)
|
param([switch]$PassThru, $authToken)
|
||||||
@@ -1183,6 +1321,22 @@ function Invoke-MSALCheckObjectViewAccess
|
|||||||
Set-XamlProperty $script:userEllipsGrid "lnkRequestConsent" "Visibility" "Visible"
|
Set-XamlProperty $script:userEllipsGrid "lnkRequestConsent" "Visibility" "Visible"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
$accessToken = $null
|
||||||
|
if($authToken)
|
||||||
|
{
|
||||||
|
$accessToken = Get-JWTtoken $authToken.AccessToken
|
||||||
|
}
|
||||||
|
|
||||||
|
$curPermissions = $null
|
||||||
|
if($accessToken.Payload.idtyp -eq "app")
|
||||||
|
{
|
||||||
|
$curPermissions = $accessToken.Payload.roles
|
||||||
|
}
|
||||||
|
elseif($accessToken.Payload.scp)
|
||||||
|
{
|
||||||
|
$curPermissions = $accessToken.Payload.scp.Split(" ")
|
||||||
|
}
|
||||||
|
|
||||||
foreach($viewObjInfo in ($global:viewObjects | Where { $_.ViewInfo.AuthenticationID -eq "MSAL" }))
|
foreach($viewObjInfo in ($global:viewObjects | Where { $_.ViewInfo.AuthenticationID -eq "MSAL" }))
|
||||||
{
|
{
|
||||||
$viewObjInfo = $global:viewObjects | Where { $_.ViewInfo.Id -eq $global:EMViewObject.Id }
|
$viewObjInfo = $global:viewObjects | Where { $_.ViewInfo.Id -eq $global:EMViewObject.Id }
|
||||||
@@ -1191,10 +1345,8 @@ function Invoke-MSALCheckObjectViewAccess
|
|||||||
{
|
{
|
||||||
if($authToken)
|
if($authToken)
|
||||||
{
|
{
|
||||||
$accessToken = Get-JWTtoken $authToken.AccessToken
|
if($curPermissions)
|
||||||
if($accessToken.Payload.scp)
|
|
||||||
{
|
{
|
||||||
$curPermissions = $accessToken.Payload.scp.Split(" ")
|
|
||||||
foreach($viewItem in $viewObjInfo.ViewItems)
|
foreach($viewItem in $viewObjInfo.ViewItems)
|
||||||
{
|
{
|
||||||
$full = 0
|
$full = 0
|
||||||
@@ -1492,6 +1644,10 @@ function Get-MSALProfileEllipse
|
|||||||
{
|
{
|
||||||
$initials = "$($global:me.userPrincipalName[0])".ToUpper()
|
$initials = "$($global:me.userPrincipalName[0])".ToUpper()
|
||||||
}
|
}
|
||||||
|
elseif($script:jwtAccessToken.Payload.idtyp -eq "app")
|
||||||
|
{
|
||||||
|
$initials = "APP"
|
||||||
|
}
|
||||||
|
|
||||||
$grd = Get-MSALUserPhotoEllips -size $size -fontSize $fontSize -Color $Color
|
$grd = Get-MSALUserPhotoEllips -size $size -fontSize $fontSize -Color $Color
|
||||||
|
|
||||||
@@ -1515,8 +1671,15 @@ function Get-MSALProfileEllipse
|
|||||||
$global:grdProfileInfo.Tag = $grd
|
$global:grdProfileInfo.Tag = $grd
|
||||||
$grd.Tag = $global:grdProfileInfo
|
$grd.Tag = $global:grdProfileInfo
|
||||||
Set-XamlProperty $global:grdProfileInfo "txtOrganization" "Text" $global:Organization.displayName
|
Set-XamlProperty $global:grdProfileInfo "txtOrganization" "Text" $global:Organization.displayName
|
||||||
|
if($script:jwtAccessToken.Payload.idtyp -eq "app")
|
||||||
|
{
|
||||||
|
Set-XamlProperty $global:grdProfileInfo "txtUsername" "Text" "App Login"
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
Set-XamlProperty $global:grdProfileInfo "txtUsername" "Text" $global:me.displayName
|
Set-XamlProperty $global:grdProfileInfo "txtUsername" "Text" $global:me.displayName
|
||||||
Set-XamlProperty $global:grdProfileInfo "txtLogonName" "Text" $global:me.userPrincipalName
|
Set-XamlProperty $global:grdProfileInfo "txtLogonName" "Text" $global:me.userPrincipalName
|
||||||
|
}
|
||||||
|
|
||||||
$global:tokenInfo = Get-JWTtoken $global:MSALToken.AccessToken
|
$global:tokenInfo = Get-JWTtoken $global:MSALToken.AccessToken
|
||||||
if($global:tokenInfo)
|
if($global:tokenInfo)
|
||||||
@@ -1541,12 +1704,19 @@ function Get-MSALProfileEllipse
|
|||||||
$profileGrid.Children.Add($tmpObj) | Out-Null
|
$profileGrid.Children.Add($tmpObj) | Out-Null
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($script:jwtAccessToken.Payload.idtyp -eq "app")
|
||||||
|
{
|
||||||
|
$tmpObj.Visibility = "Collapsed"
|
||||||
|
}
|
||||||
|
|
||||||
$global:grdProfileInfo.Add_Loaded({param($obj, $e)
|
$global:grdProfileInfo.Add_Loaded({param($obj, $e)
|
||||||
$point = $obj.Tag.TransformToAncestor($window).Transform([System.Windows.Point]::new(0,0));
|
$point = $obj.Tag.TransformToAncestor($window).Transform([System.Windows.Point]::new(0,0));
|
||||||
[System.Windows.Controls.Canvas]::SetLeft($obj,($point.X - $obj.ActualWidth + $obj.Tag.ActualWidth))
|
[System.Windows.Controls.Canvas]::SetLeft($obj,($point.X - $obj.ActualWidth + $obj.Tag.ActualWidth))
|
||||||
[System.Windows.Controls.Canvas]::SetTop($obj,($point.Y + $obj.Tag.ActualHeight))
|
[System.Windows.Controls.Canvas]::SetTop($obj,($point.Y + $obj.Tag.ActualHeight))
|
||||||
})
|
})
|
||||||
|
|
||||||
|
if($script:jwtAccessToken.Payload.idtyp -ne "app")
|
||||||
|
{
|
||||||
#########################################################################################################
|
#########################################################################################################
|
||||||
### Show / Hide consent button
|
### Show / Hide consent button
|
||||||
#########################################################################################################
|
#########################################################################################################
|
||||||
@@ -1677,6 +1847,7 @@ function Get-MSALProfileEllipse
|
|||||||
catch {}
|
catch {}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#########################################################################################################
|
#########################################################################################################
|
||||||
### Add event handling
|
### Add event handling
|
||||||
@@ -1737,6 +1908,11 @@ function Get-MSALProfileEllipse
|
|||||||
Show-GraphObjects
|
Show-GraphObjects
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if($script:jwtAccessToken.Payload.idtyp -eq "app")
|
||||||
|
{
|
||||||
|
Set-XamlProperty $tmpObj "lnkLogout" "Visibility" "Collapsed"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
catch {
|
catch {
|
||||||
Write-LogError "Failed to create profile information object. Error: " $_.Exception
|
Write-LogError "Failed to create profile information object. Error: " $_.Exception
|
||||||
@@ -1912,12 +2088,21 @@ function Get-MSALMissingScopes
|
|||||||
|
|
||||||
$script:missingPermissions = @()
|
$script:missingPermissions = @()
|
||||||
|
|
||||||
|
if($script:jwtAccessToken.Payload.idtyp -eq "app")
|
||||||
|
{
|
||||||
|
$curScopes = $script:jwtAccessToken.Payload.roles
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
$curScopes = $authToken.Scopes
|
||||||
|
}
|
||||||
|
|
||||||
foreach($scope in $reqScopes)
|
foreach($scope in $reqScopes)
|
||||||
{
|
{
|
||||||
$tmpScope = $scope.Split('/')[-1]
|
$tmpScope = $scope.Split('/')[-1]
|
||||||
if($tmpScope -eq ".default") { continue }
|
if($tmpScope -eq ".default") { continue }
|
||||||
if($authToken.Scopes -contains $tmpScope) { continue }
|
if($curScopes -contains $tmpScope) { continue }
|
||||||
if(($authToken.Scopes -like "*/$tmpScope")) { continue }
|
if(($curScopes -like "*/$tmpScope")) { continue }
|
||||||
$arrTemp = $tmpScope.Split(".")
|
$arrTemp = $tmpScope.Split(".")
|
||||||
if($arrTemp[1] -eq "Read")
|
if($arrTemp[1] -eq "Read")
|
||||||
{
|
{
|
||||||
@@ -1941,6 +2126,9 @@ function Show-MSALDecodedToken {
|
|||||||
$tokenData,
|
$tokenData,
|
||||||
$title
|
$title
|
||||||
)
|
)
|
||||||
|
|
||||||
|
if(-not $tokenData.Header) { return }
|
||||||
|
|
||||||
$tokenArr = @()
|
$tokenArr = @()
|
||||||
foreach($prop in ($tokenData.Header | GM | Where MemberType -eq NoteProperty))
|
foreach($prop in ($tokenData.Header | GM | Where MemberType -eq NoteProperty))
|
||||||
{
|
{
|
||||||
|
|||||||
+459
-89
File diff suppressed because it is too large
Load Diff
@@ -107,9 +107,7 @@ The script can import the exported json files in multiple ways.
|
|||||||
|
|
||||||
**Recommendation:** Backup all policies before running Replace/Update.
|
**Recommendation:** Backup all policies before running Replace/Update.
|
||||||
|
|
||||||
The Replace/Update feature can be used in a scenario where all profiles/policies are managed in a separate reference (Dev/Test) and then implemented in one or more destination environment. The existing objects will then be reset to have the same settings as the reference environment
|
The Replace/Update feature can be used in a scenario where all profiles/policies are managed in a separate reference (Dev/Test) and then implemented in one or more destination environments. The existing objects will then be reset to have the same settings as the reference environment
|
||||||
|
|
||||||
**Note:** This must be turned on in Settings by enabling the **Allow update on import (Preview)** setting.
|
|
||||||
|
|
||||||
## Comparison
|
## Comparison
|
||||||
|
|
||||||
@@ -174,7 +172,9 @@ See [ADMX Import](ADMXImport.md) for more information about the ADMX tools
|
|||||||
|
|
||||||
Custom columns is supported. The script will by default add id, displayName and description with exception for some object types. These are configured in the EndpointManager.ps1 and EndpointManagerInfo.psm1 files.
|
Custom columns is supported. The script will by default add id, displayName and description with exception for some object types. These are configured in the EndpointManager.ps1 and EndpointManagerInfo.psm1 files.
|
||||||
|
|
||||||
Custom columns can be added for each Object Type. This must be added manually into the registry, in HKCU\SOFTWARE\CloudAPIPowerShellManagement\EndpointManager\ObjectColumns\\*ObjectType*.
|
Custom columns can be added for each Object Type in the detealed view of an Object.
|
||||||
|
|
||||||
|
Custom Columuns settings are stored in the regitry, in HKCU\SOFTWARE\CloudAPIPowerShellManagement\EndpointManager\ObjectColumns\\*ObjectType*.
|
||||||
|
|
||||||
The *ObjectType* value represents the ViewItem ID specified in the EndpointManager.ps1 and EndpointManagerInfo.psm1 files. This is also the same as the parent folder when items are exported.
|
The *ObjectType* value represents the ViewItem ID specified in the EndpointManager.ps1 and EndpointManagerInfo.psm1 files. This is also the same as the parent folder when items are exported.
|
||||||
|
|
||||||
@@ -191,9 +191,7 @@ PropertyX - Property to display. View an object to see available properties
|
|||||||
|
|
||||||
HeaderX - Optional value for the column header. Property name will be used if this is not specified.
|
HeaderX - Optional value for the column header. Property name will be used if this is not specified.
|
||||||
|
|
||||||
**Note:** Some object types returns multiple object types, @OData.Type. If a custom column is added but the property does not exist on all the object types that were returned, the columns will be empty. The code will **not** break if the property is missing on one or more returned objects.
|
**Note:** Some object types returns multiple object types, @OData.Type. If a custom column is added but the property does not exist on all the object types that were returned, the column value will be empty. The code will **not** break if the property is missing on one or more returned objects.
|
||||||
|
|
||||||
The script does not require a restart. Columns are generated when the object type is selected in the menu.
|
|
||||||
|
|
||||||
**Example 1:**
|
**Example 1:**
|
||||||
Reg key: HKCU\SOFTWARE\CloudAPIPowerShellManagement\EndpointManager\ObjectColumns\DeviceConfiguration
|
Reg key: HKCU\SOFTWARE\CloudAPIPowerShellManagement\EndpointManager\ObjectColumns\DeviceConfiguration
|
||||||
@@ -242,9 +240,10 @@ Start-WithJson.cmd is included as an example on how to start the script with jso
|
|||||||
**Note:** If the file can't be created, the script will revert back registry. Make sure that the script can write to the file. It is not recommended to store the file in a folder that requires UAC to get write permissions.
|
**Note:** If the file can't be created, the script will revert back registry. Make sure that the script can write to the file. It is not recommended to store the file in a folder that requires UAC to get write permissions.
|
||||||
|
|
||||||
## Supported Intune objects
|
## Supported Intune objects
|
||||||
|
* ADMX Files [^1]
|
||||||
* App Configurations (App and Device)
|
* App Configurations (App and Device)
|
||||||
* App Protection
|
* App Protection
|
||||||
* Applications
|
* Applications [^2]
|
||||||
* Apple Enrolment Types - NOT fully tested
|
* Apple Enrolment Types - NOT fully tested
|
||||||
* Autopilot profiles
|
* Autopilot profiles
|
||||||
* Baseline Security profiles
|
* Baseline Security profiles
|
||||||
@@ -253,7 +252,7 @@ Start-WithJson.cmd is included as an example on how to start the script with jso
|
|||||||
* Conditional Access
|
* Conditional Access
|
||||||
* Custom Attributes
|
* Custom Attributes
|
||||||
* Device Configuration (Administrative Templates, Configuration Policies, Android OEM Config, Settings Catalog)
|
* Device Configuration (Administrative Templates, Configuration Policies, Android OEM Config, Settings Catalog)
|
||||||
* Endpoint Security (Account Protection, Disk Encryption, Firewall, Security Baselines etc.)
|
* Endpoint Security (Account Protection, Disk Encryption, Firewall, Security Baselines etc.) [^3]
|
||||||
* Enrollment Restrictions
|
* Enrollment Restrictions
|
||||||
* Enrollment Status Page profiles
|
* Enrollment Status Page profiles
|
||||||
* Feature Updates
|
* Feature Updates
|
||||||
@@ -264,6 +263,7 @@ Start-WithJson.cmd is included as an example on how to start the script with jso
|
|||||||
* Notifications
|
* Notifications
|
||||||
* Policy Sets
|
* Policy Sets
|
||||||
* Quality Updates
|
* Quality Updates
|
||||||
|
* Reusable Settings
|
||||||
* Role Definitions
|
* Role Definitions
|
||||||
* Scope Tags
|
* Scope Tags
|
||||||
* Scripts (PowerShell and Shell scripts, supports download of script)
|
* Scripts (PowerShell and Shell scripts, supports download of script)
|
||||||
@@ -272,6 +272,9 @@ Start-WithJson.cmd is included as an example on how to start the script with jso
|
|||||||
* Update Policies
|
* Update Policies
|
||||||
* Co-management Settings
|
* Co-management Settings
|
||||||
|
|
||||||
|
[^1]: ADMX file must be located in the export folder or in the folder defined in Settings. Administrative Template policies based on ADMX files must be imported after the ADMX file is imported.
|
||||||
|
[^2]: Export is support but .intunewin files will not be exported. The .intunewin file must exist in the exported folder or in the folder defined in Settings -> App packages folder.
|
||||||
|
[^3]: Some Endpoint Security policies will be exported to the SettingsCatalg since they are based the Settings Catalog API.
|
||||||
|
|
||||||
**Note:** The scripts are using the BETA version of the Graph API which might change at any time.
|
**Note:** The scripts are using the BETA version of the Graph API which might change at any time.
|
||||||
|
|
||||||
@@ -296,7 +299,7 @@ Start-WithJson.cmd is included as an example on how to start the script with jso
|
|||||||
* [Microsoft.WindowsAPICodePack](https://www.nuget.org/packages/Microsoft-WindowsAPICodePack-Core) and [Microsoft.WindowsAPICodePack.Shell](https://www.nuget.org/packages/Microsoft-WindowsAPICodePack-Shell) for Browse Folder dialogs
|
* [Microsoft.WindowsAPICodePack](https://www.nuget.org/packages/Microsoft-WindowsAPICodePack-Core) and [Microsoft.WindowsAPICodePack.Shell](https://www.nuget.org/packages/Microsoft-WindowsAPICodePack-Shell) for Browse Folder dialogs
|
||||||
|
|
||||||
## Acknowledgments
|
## Acknowledgments
|
||||||
The app encryption and upload is based on [Graph PowerShell Intune Examples](https://github.com/microsoftgraph/powershell-intune-samples)
|
The app encryption and upload is based on [Graph PowerShell Intune Examples](https://github.com/microsoftgraph/powershell-intune-samples)<br />
|
||||||
Some MSAL functionalities are based on [MSAL.PS Module](https://github.com/AzureAD/MSAL.PS)
|
Some MSAL functionalities are based on [MSAL.PS Module](https://github.com/AzureAD/MSAL.PS)
|
||||||
|
|
||||||
## Known Issues
|
## Known Issues
|
||||||
@@ -318,10 +321,13 @@ Issue fixed in 3.3.2
|
|||||||
|
|
||||||
Logout will only clear the token from cache and not from the browser e.g. if login is triggered after a logout, the user will still be listed in the 'Select user' dialog.
|
Logout will only clear the token from cache and not from the browser e.g. if login is triggered after a logout, the user will still be listed in the 'Select user' dialog.
|
||||||
|
|
||||||
Referenced settings will NOT be imported/copied. There is no value stored in a property on the object for these settings. Example: A VPN profile has certificates as referenced properties. The certificates must be added manually after import/copy.
|
~~Referenced settings will NOT be imported/copied. There is no value stored in a property on the object for these settings. Example: A VPN profile has certificates as referenced properties. The certificates must be added manually after import/copy.~~
|
||||||
|
Issue fixed in 3.5.0
|
||||||
|
|
||||||
Terms of Use requires that the pdf file is available. This must be manually coped to either the Export folder for Terms of Use or to the Intune Application folder specified in Settings. It is currently not possible to export the pdf file with Graph API.
|
Terms of Use requires that the pdf file is available. This must be manually coped to either the Export folder for Terms of Use or to the Intune Application folder specified in Settings. It is currently not possible to export the pdf file with Graph API.
|
||||||
|
|
||||||
|
The ADMX/ADML files must be manually copied to either the Export folder for Administrative Templates or to the Intune Application folder specified in Settings. It is currently not possible to export the pdf file with Graph API.
|
||||||
|
|
||||||
See [Documentation](Documentation.md) for issues regarding the documentation process.
|
See [Documentation](Documentation.md) for issues regarding the documentation process.
|
||||||
|
|
||||||
## TIP
|
## TIP
|
||||||
|
|||||||
+341
-5
@@ -1,13 +1,351 @@
|
|||||||
# Release Notes
|
# Release Notes
|
||||||
## 3.7.0 - 2022-07-17
|
## 3.9.3 - 2023-12-11
|
||||||
|
|
||||||
|
**New features**
|
||||||
|
|
||||||
|
- **New tool - Get Assignment Filter usage**<br />
|
||||||
|
- List all policies and assignments with a Filter defined<br />
|
||||||
|
Based on [Issue 141](https://github.com/Micke-K/IntuneManagement/issues/141)<br />
|
||||||
|
**NOTE:** Start the tool from: Views -> Intune Tools -> Intune Filter Usage<br />
|
||||||
|
|
||||||
|
- **Batch Export of App Content Encryption Key from Intunewin files**<br />
|
||||||
|
This script can export encryption keys from existing intunewin files<br />
|
||||||
|
Example:<br />
|
||||||
|
Export-EncrytionKeys -RootFolder C:\Intune\Packages -ExportFolder C:\Intune\Download<br />
|
||||||
|
This will export the encryption key information for each .intunewinfiles under C:\Intune\Packages<br />
|
||||||
|
One json file will be created (for each .intunwinfile) in the C:\Intune\Download folder<br />
|
||||||
|
File name will be **<*IntunewinFileBaseName*>_<*UnencryptedFileSize*>.json**<br />
|
||||||
|
Do **NOT** rename this file since the script will search for that file when downloading or exporting App content<br />
|
||||||
|
The script will not require authentication and it will have no knowledge of apps in Intune<br />
|
||||||
|
Filename and unencrypted file size is used as the identifier to match app content in Intune with encryption file<br />
|
||||||
|
**Important notes:**<br />
|
||||||
|
Exported and decrypted .intunewin files are not supported to use for import at the moment.<br />
|
||||||
|
These files are just the "zip" version of the source and can be unzipped with any zip extraction tool<br />
|
||||||
|
The .intunewin file used for import has the "zip" version of the file and an xml with the encryption information +<br />
|
||||||
|
additional file information eg. msi properties, file size etc.<br />
|
||||||
|
Use the exported unencrypted "zip" version to restore the original files. Re-run the packaging tool if it should be re-used as applications content<br />
|
||||||
|
<br />
|
||||||
|
Please report any issues or create a discussion if there are any questions<br />
|
||||||
|
Script is located: **<*RootFolder*>\Scripts\Export-EncrytionKeys.ps1**<br />
|
||||||
|
|
||||||
|
<br />
|
||||||
|
|
||||||
|
**Fixes**
|
||||||
|
- **Export**<br />
|
||||||
|
- Fixed issue where Assignments were included in export even if 'Export Assignments' was unchecked<br />
|
||||||
|
Based on [Issue 171](https://github.com/Micke-K/IntuneManagement/issues/171)<br />
|
||||||
|
|
||||||
|
- **Documentation**<br />
|
||||||
|
- Fixed issue where filter was not documented on some policies<br />
|
||||||
|
- Fixed issue with Word Output provider if a policy only had one settings<br />
|
||||||
|
|
||||||
|
- **Custom ADMX Files**<br />
|
||||||
|
- Fixed bug with migrating custom policies between environments. Cache was not cleared when swapping tenants or imported additional ADMX files<br />
|
||||||
|
- Fixed documentention issue with Administrative template policies in GCC environment. Name and Category was missing<br />
|
||||||
|
Based on [Issue 174](https://github.com/Micke-K/IntuneManagement/issues/174)<br />
|
||||||
|
- Custom ADMX based policies was missing properties when swapping tenant<br />
|
||||||
|
Based on [Issue 124](https://github.com/Micke-K/IntuneManagement/issues/124)<br />
|
||||||
|
|
||||||
|
- **Generic**<br />
|
||||||
|
- Fixed logging issues when processing objects with a group that was deleted. ID was not reported<br />
|
||||||
|
- Generic Batch request function created to support other batch requests eg Groups<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
## 3.9.2 - 2023-10-17
|
||||||
|
|
||||||
|
**New features**
|
||||||
|
|
||||||
|
- **Application Content Export - Experimental**<br />
|
||||||
|
- Added support for Exporting Appliction with decrypted content<br />
|
||||||
|
App file can be downloaded during export or from the detail view of the Application<br />
|
||||||
|
Enable "Save Encryption File" and specify "App download folder" in Settings<br />
|
||||||
|
"App download folder" is used for encryption file and manual download<br />
|
||||||
|
File content will be downloaded to the export foler during export<br />
|
||||||
|
Files will be downloaded with .encrypted extension and then decrypted to original file name<br />
|
||||||
|
Please report any issue or any suggestions<br />
|
||||||
|
**NOTE:** This will ONLY work if the encryption file is exported and available<br />
|
||||||
|
|
||||||
|
- **Authentication**<br />
|
||||||
|
- Login with application<br />
|
||||||
|
This will login with specified Azure App ID and Secret/Certificate that is used for Batch processes<br />
|
||||||
|
NOTE: This will require a restart of the app<br />
|
||||||
|
Start with app **must** use -TenantID on command line. AppID and Secret/Certificate can be specified in Settings or command line<br />
|
||||||
|
Example: Start-IntuneManagement.ps1 -tenantId \"<TenantID>\" -appid \"<AppID>\" -secret \"<Secret>\"<br />
|
||||||
|
See *Start-WithApp.cmd* for samle file<br />
|
||||||
|
Based on [Issue 122](https://github.com/Micke-K/IntuneManagement/issues/122) and [Issue 134](https://github.com/Micke-K/IntuneManagement/issues/134)<br />
|
||||||
|
|
||||||
|
- **Support for new Settings**<br />
|
||||||
|
- Save encryption file - Saves a json file with encryption data when an application file is uploaded eg created or uploaded in details view<br />
|
||||||
|
- App download folder - Folder where application files should be downloaded and decrypted<br />
|
||||||
|
- Login with App in UI (Preview) - Use app batch login in UI<br />
|
||||||
|
- Use Graph 1.0 (Not Recommended) - Use Graph v1.0 instead of Beta. **Note:** Some features will NOT work in v1.0<br />
|
||||||
|
Based on [Issue 170](https://github.com/Micke-K/IntuneManagement/issues/170)<br />
|
||||||
|
|
||||||
|
**Fixes**
|
||||||
|
- **Documentation**<br />
|
||||||
|
- Language files re-generated eg Supersedence (preview) -> Supersedence<br />
|
||||||
|
- Added support for documenting "Filter for devices" info for Conditional Access policies<br />
|
||||||
|
Based on [Issue 168](https://github.com/Micke-K/IntuneManagement/issues/168)<br />
|
||||||
|
|
||||||
|
- **Custom ADMX Files**<br />
|
||||||
|
- Fixed issues with migrating custom policies between environments (3rd time)<br />
|
||||||
|
Based on [Issue 124](https://github.com/Micke-K/IntuneManagement/issues/124)<br />
|
||||||
|
- Fixed issue when importing ADMX files - Encoding issue eg ADMX/ADML file was UTF8<br />
|
||||||
|
Based on [Issue 169](https://github.com/Micke-K/IntuneManagement/issues/169)<br />
|
||||||
|
|
||||||
|
- **Importing Windows LoB Apps**<br />
|
||||||
|
- Fixed issue when importing LoB Apps that was only targeted to System context<br />
|
||||||
|
Available Assignment option was missing after import<br />
|
||||||
|
Based on [Discussion 164](https://github.com/Micke-K/IntuneManagement/discussions/164)<br />
|
||||||
|
- Added support for Depnedency and Supersedence reations at import<br />
|
||||||
|
Application will need to be re-exported since additinal data is added to the export file<br />
|
||||||
|
Based on [Discussion 159](https://github.com/Micke-K/IntuneManagement/discussions/159)<br />
|
||||||
|
|
||||||
|
- **Generic**<br />
|
||||||
|
- Fixed issue when compiling Procxy CS file<br />
|
||||||
|
- Tls 1.2 is now enforced.<br />
|
||||||
|
Based on [Discussion 166](https://github.com/Micke-K/IntuneManagement/discussions/166)<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
## 3.9.1 - 2023-08-30
|
||||||
|
|
||||||
|
**New features**
|
||||||
|
|
||||||
|
- **Added support for Windows Update Driver Policies**<br />
|
||||||
|
|
||||||
|
- **Support for new Settings**<br />
|
||||||
|
- Proxy configuration - If configured, Proxy will be used for authentication, APIs and upload<br />
|
||||||
|
- Disable Write-Error output - Skip PowerShell errors in output<br />
|
||||||
|
|
||||||
|
**Default Settings Value Changes**
|
||||||
|
- Conditional Access policies will now be imported as Disabled by default<br />
|
||||||
|
- New import option added: As Exported - Change On to Report-only<br />
|
||||||
|
- This is to avoid being locked out from the tenant when importing Conditional Access policies<br />
|
||||||
|
- Based on [Discussion 139](https://github.com/Micke-K/IntuneManagement/discussions/139)<br />
|
||||||
|
|
||||||
|
**Fixes**
|
||||||
|
- **Documentation**<br />
|
||||||
|
- Fixed issues with some Feature Updates properties<br />
|
||||||
|
- Added missing strings on Windows Update polices<br />
|
||||||
|
- Regenerated Language files and Translation tables for Template policies<br />
|
||||||
|
Note: Conditional Access string has changed file in background. Please report if there is anything missing<br />
|
||||||
|
|
||||||
|
- **Custom ADMX Files**<br />
|
||||||
|
- Fixed issues with migrating custom policies between environments<br />
|
||||||
|
- Case reopened due to something broke the initial functionality<br />
|
||||||
|
- Only custom ADMX policies with #Definition properties can be imported into a new environment<br />
|
||||||
|
- Based on [Issue 124](https://github.com/Micke-K/IntuneManagement/issues/124)<br />
|
||||||
|
|
||||||
|
- **Scope Tags**<br />
|
||||||
|
- Fixed issues with importing policies with Scope Tags but they were not set<br />
|
||||||
|
- Based on [Issue 133](https://github.com/Micke-K/IntuneManagement/issues/133)<br />
|
||||||
|
|
||||||
|
**Generic**<br />
|
||||||
|
- Remove invalid characters from path.<br />
|
||||||
|
- Based on [Issue 150](https://github.com/Micke-K/IntuneManagement/issues/150)<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
## 3.9.0 - 2023-05-04
|
||||||
|
|
||||||
|
**New features**
|
||||||
|
|
||||||
|
- **Added support for Authentication Context objects**<br />
|
||||||
|
- These are used by Conditional Access policies<br />
|
||||||
|
Based on [Issue 109](https://github.com/Micke-K/IntuneManagement/issues/109)<br />
|
||||||
|
|
||||||
|
- **Added support for Windows 365 Cloud PC settings**<br />
|
||||||
|
- Based on [Issue 125](https://github.com/Micke-K/IntuneManagement/issues/125)<br />
|
||||||
|
|
||||||
|
- **Added support for Export/Import Tennant Settings**<br />
|
||||||
|
- This is added the Intune Info view for now (Views -> Intune Info)<br />
|
||||||
|
This means that there is no support for Bulk Import/Export. It must be done manually<br />
|
||||||
|
This is to minimize the risk of re-importing Tenant settings<br />
|
||||||
|
Based on [Discussion 131](https://github.com/Micke-K/IntuneManagement/discussions/131)<br />
|
||||||
|
|
||||||
|
**Fixes**
|
||||||
|
- **Documentation**<br />
|
||||||
|
- Added full documentation of Requirement and Detection rules for Win Apps<br />
|
||||||
|
Based on [Issue 119](https://github.com/Micke-K/IntuneManagement/issues/119)<br />
|
||||||
|
- Fixed issue were documentation could crash if Reusable Settings policies exists<br />
|
||||||
|
Based on [Issue 123](https://github.com/Micke-K/IntuneManagement/issues/123)<br />
|
||||||
|
- Regenerated Language files and Translation tables for Template policies<br />
|
||||||
|
- **Intunwin File Upload**<br />
|
||||||
|
- Fixed issue when uploading very large files<br />
|
||||||
|
Based on [Issue 112](https://github.com/Micke-K/IntuneManagement/issues/112)<br />
|
||||||
|
- Fixed issue when IE not installed<br />
|
||||||
|
- **Compare**<br />
|
||||||
|
- Fixed issue where Compare could generate an exception in the log<br />
|
||||||
|
Based on [Issue 128](https://github.com/Micke-K/IntuneManagement/issues/128)<br />
|
||||||
|
**Note:** Issue 128 is only partially fixed. Compare needs a major update to fix the rest<br />
|
||||||
|
- **Import**<br />
|
||||||
|
- Fixed an issue when creating Cloud groups based on on-prem groups without MigTable<br />
|
||||||
|
- Fixed an issue when importing groups with a space in the beginning<br />
|
||||||
|
**Note:** Inital spaces will be removed when importing groups<br />
|
||||||
|
- Fixed issue when importing Endpoint Status Page polices with applications defined<br />
|
||||||
|
- Fixed issue when importing Proactive Remediations (Health Scripts) with assignments<br />
|
||||||
|
- Fixed issue when importing a Conditional Policy with Session propery disableResilienceDefaults set to $false<br />
|
||||||
|
- Fixed issue when importing WiFi profiles. Support for multiple references was added eg multiple server verification certificates<br />
|
||||||
|
Based on [Issue 114](https://github.com/Micke-K/IntuneManagement/issues/114)<br />
|
||||||
|
- Terms of Use was not visible in the menu<br />
|
||||||
|
**Note:** This might generate a Consent prompt if Use Default Permissions is not enabled<br />
|
||||||
|
Additional permission required on the Azure App: Agreement.ReadWrite.All<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
## 3.8.1 - 2023-01-26
|
||||||
|
|
||||||
|
**New features**
|
||||||
|
|
||||||
|
- **Added support for Reusable Settings objects**<br />
|
||||||
|
- These are used by some of the Endpoint Security polices like Firewall rules<br />
|
||||||
|
Based on private request<br />
|
||||||
|
Note: No documentation support yet<br />
|
||||||
|
|
||||||
|
- **Added support for custom Authentication Strengths objects**<br />
|
||||||
|
- These can be used in Conditional Access policies<br />
|
||||||
|
Based on [Issue 109](https://github.com/Micke-K/IntuneManagement/issues/109)<br />
|
||||||
|
Note: Not all issues in 109 are fixed yet and no documentation support yet<br />
|
||||||
|
|
||||||
|
- **Export/Import**<br />
|
||||||
|
- PowerShell files for Health Scripts exported to the Export folder<br />
|
||||||
|
- PowerShell files for Application Detection scripts are exported to the Export folder<br />
|
||||||
|
Both scripts exports are based on [Issue 103](https://github.com/Micke-K/IntuneManagement/issues/103)<br />
|
||||||
|
|
||||||
|
- **Documentation**<br />
|
||||||
|
- Documentation engine completely rewritten for Settings Catalog and had major updates for other object types<br />
|
||||||
|
Please create an issue if there are any problems<br />
|
||||||
|
- Added support for HTML output<br />
|
||||||
|
- MD output is now official with included support for CSS and single file Output.<br />
|
||||||
|
Based on [Issue 35](https://github.com/Micke-K/IntuneManagement/issues/35)<br />
|
||||||
|
- Added support for indent on sub-properties so it will be visible that a property is set based on a parent<br />
|
||||||
|
Based on [Discussion 90](https://github.com/Micke-K/IntuneManagement/discussions/90)<br />
|
||||||
|
- Added option to skip assignments in the documentation<br />
|
||||||
|
Based on [Issue 102](https://github.com/Micke-K/IntuneManagement/issues/102)<br />
|
||||||
|
- Moved some Output options to generic output settings; Document scripts and Remove script signature<br />
|
||||||
|
|
||||||
|
- **Generic**<br />
|
||||||
|
- Added new property on applications, InstallerType. This can be added as a new column to the View for Applications.<br />
|
||||||
|
It specifies the New Microsoft Store App type; UWP or Win32<br />
|
||||||
|
Based on [Issue 101](https://github.com/Micke-K/IntuneManagement/issues/101)<br />
|
||||||
|
- Added response information f an API call failed. The log should now have a better description on why an API failed.<br />
|
||||||
|
|
||||||
|
|
||||||
|
**Fixes**
|
||||||
|
- **Documentation**<br />
|
||||||
|
- Lots of documentation issues fixed by the new Documentation engine<br />
|
||||||
|
- Sections and policies should now be in correct alphabetic order<br />
|
||||||
|
Based on [Discussion 90](https://github.com/Micke-K/IntuneManagement/discussions/90)<br />
|
||||||
|
- Fixed issues with assignments for Setting Catalog issues<br />
|
||||||
|
Based on [Issue 102](https://github.com/Micke-K/IntuneManagement/issues/102)<br />
|
||||||
|
- Translation files re-generated<br />
|
||||||
|
- Fixed error message: "Invoke-WordTranslateColumnHeader is not recognized as the name of a cmdlet"
|
||||||
|
Based on [Issue 99](https://github.com/Micke-K/IntuneManagement/issues/99)<br />
|
||||||
|
|
||||||
|
|
||||||
|
- **Authentication**<br />
|
||||||
|
- Fixed an issue when authentication to China Cloud<br />
|
||||||
|
Based on [Issue 106](https://github.com/Micke-K/IntuneManagement/issues/106)<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
## 3.7.4 - 2022-11-17
|
||||||
|
|
||||||
|
**Fixes**
|
||||||
|
|
||||||
|
Lots of these issues are based on [Issue 94](https://github.com/Micke-K/IntuneManagement/issues/94)<br />
|
||||||
|
Thank you **Dominique** for all the amazing help with testing!<br />
|
||||||
|
|
||||||
|
|
||||||
|
- **Import/Export**<br />
|
||||||
|
- Added support for Export of TermsOfUse PDF files<br />
|
||||||
|
Based on [Issue 27](https://github.com/Micke-K/IntuneManagement/issues/27)<br />
|
||||||
|
- Fixed an issue where it failed to import .intunewin files during bulk import<br />
|
||||||
|
- Fixed issue with importing Edge app assignments<br />
|
||||||
|
- Changed the order for Bulk delete to make sure policies are deleted in the correct order<br />
|
||||||
|
- Lots of logging fixes for Bulk Export - Logged error when exporting object types not used<br />
|
||||||
|
- Business Store Apps will not be delete - Not supported<br />
|
||||||
|
- No import of assignments for default policies (Enrollment Status Page and Enrolment Restrictions)<br />
|
||||||
|
- Lots of logging fixes for Bulk Delete - Errors if deleting default policies, trying to delete object types that were not used etc.<br />
|
||||||
|
|
||||||
|
- **Documentation**<br />
|
||||||
|
- Added intent for Win32 Assignments<br />
|
||||||
|
Based on [Issue 98](https://github.com/Micke-K/IntuneManagement/issues/98)<br />
|
||||||
|
- Fixed an error when documenting Assignments for Win32 apps - Invoke-WordTranslateColumnHeader was missing/removed<br />
|
||||||
|
Based on [Issue 99](https://github.com/Micke-K/IntuneManagement/issues/99)<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
|
||||||
|
- **Logging**<br />
|
||||||
|
- Added additional response error information if it failed to call a Graph API<br />
|
||||||
|
- Missing groups will now only generate a warning instead of Graph API error<br />
|
||||||
|
- No error for users without a profile photo<br />
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
## 3.7.3 - 2022-10-24
|
||||||
|
|
||||||
|
**Fixes**
|
||||||
|
|
||||||
|
- **Import**<br />
|
||||||
|
- Fixed a bug where it failed to import Endpoint Security policies<br />
|
||||||
|
- Fixed an issue where it failed to import Assignment Filters. A new property was added that is not supported during the import<br />
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
## 3.7.2 - 2022-10-08
|
||||||
|
|
||||||
|
**New features**
|
||||||
|
|
||||||
|
- **Added support for ADMX Files (Preview)**<br />
|
||||||
|
- First version of supporting the ADMX file import<br />
|
||||||
|
- Support for export/import policies based on ADMX files<br />
|
||||||
|
The import/export between environments is very tricky so please report any issues<br />
|
||||||
|
**Note**: The ADMX/ADML files must be copied to the app package folder or the policy exported folder<br />
|
||||||
|
The ADMX files imported is based on last modify date. This will make sure files are imported in the correct order eg Mozilla and Firefox ADMX files<br />
|
||||||
|
Based on [Issue 84](https://github.com/Micke-K/IntuneManagement/issues/84)<br />
|
||||||
|
- **Added support for value output type when documenting Administrative Templates**<br />
|
||||||
|
- Select Output value in the Documentation form. _Value with label_ will add the label when documenting sub-properties<br />
|
||||||
|
- **Translate TenantID when migrating policies between environment**<br />
|
||||||
|
- Any policy with a Tenant ID value will be translated when importing to a new environment<br />
|
||||||
|
Based on [Discussion 83](https://github.com/Micke-K/IntuneManagement/discussions/83)<br />
|
||||||
|
|
||||||
|
**Fixes**
|
||||||
|
|
||||||
|
- **Authentication**<br />
|
||||||
|
- Fixed an issue when auhencating with certificates during batch jobs<br />
|
||||||
|
Fixed by @cstaubli. Thank you!<br />
|
||||||
|
Based on [Issue 85](https://github.com/Micke-K/IntuneManagement/issues/85)<br />
|
||||||
|
|
||||||
|
- **Export\Import Fixes**<br />
|
||||||
|
- Fixed an issue when importing Microsoft Apps files and the default document format was not set<br />
|
||||||
|
Based on [Issue 92](https://github.com/Micke-K/IntuneManagement/issues/92)<br />
|
||||||
|
|
||||||
|
- **Documentation**<br />
|
||||||
|
- Fixed the order of sub-properties when documenting Administrative Templates<br />
|
||||||
|
- Fixed an issue where some xml values were not documented eg taskbar xml
|
||||||
|
- Translation files re-generated<br />
|
||||||
|
|
||||||
|
<br />
|
||||||
|
<br />
|
||||||
|
|
||||||
|
## 3.7.1 - 2022-08-08
|
||||||
|
|
||||||
|
**Fixes**
|
||||||
|
|
||||||
|
- **UI**<br />
|
||||||
|
- Fixed a bug where the menu bar was empty if not logged in<br />
|
||||||
|
|
||||||
|
## 3.7.0 - 2022-08-02
|
||||||
|
|
||||||
**Breaking changes**
|
**Breaking changes**
|
||||||
- A third header level was added when documenting to word<br />
|
- A third header level was added when documenting to word<br />
|
||||||
This level is used during bulk documentation and a group has more than one object type<br />
|
This level is used during bulk documentation and a group has more than one object type<br />
|
||||||
Eg. The Conditional Access group documents Conditional Access, Named Locations and Terms of Use<br />
|
Eg. The Conditional Access group documents Conditional Access, Named Locations and Terms of Use<br />
|
||||||
The document will now have one section for each object type as third header level<br /><br />
|
The document will now have one section for each object type as third header level<br /><br />
|
||||||
This could break documentation if a custom word template is used, and it does not have a 3 level header named 'Heading 3'<br />
|
This could break documentation if a custom word template is used, and it does not have a third level header named 'Heading 3'<br />
|
||||||
Specify the name of the 'Header 3 style' value in the Word settings before importing<br />
|
Specify the name of the 'Header 3 style' value in the Word settings before documenting<br />
|
||||||
|
|
||||||
|
|
||||||
**New features**
|
**New features**
|
||||||
@@ -48,7 +386,6 @@
|
|||||||
<br />
|
<br />
|
||||||
<br />
|
<br />
|
||||||
|
|
||||||
# Release Notes
|
|
||||||
## 3.6.0 - 2022-06-29
|
## 3.6.0 - 2022-06-29
|
||||||
|
|
||||||
**New features**
|
**New features**
|
||||||
@@ -92,7 +429,6 @@
|
|||||||
|
|
||||||
<br />
|
<br />
|
||||||
|
|
||||||
# Release Notes
|
|
||||||
## 3.5.0 - 2022-04-26
|
## 3.5.0 - 2022-04-26
|
||||||
|
|
||||||
**New features**
|
**New features**
|
||||||
|
|||||||
@@ -0,0 +1,159 @@
|
|||||||
|
<#
|
||||||
|
Export encryption keys from .intunewin files.
|
||||||
|
This can be used when downloading intunewin files from Intune.
|
||||||
|
|
||||||
|
This is a prt of the IntuneManage GitHub Repository
|
||||||
|
https://github.com/Micke-K/IntuneManagement/
|
||||||
|
(c) Mikael Karlsson MIT License - https://github.com/Micke-K/IntuneManagement/blob/master/LICENSE
|
||||||
|
|
||||||
|
Exprot file name will be <IntunewinFileBaseName>_<UnencryptedFileSize>.json
|
||||||
|
Do NOT rename the exported file. The script will try to find excryption file based on the generated name.
|
||||||
|
|
||||||
|
Encryption information is file specific. If the same .intunewin file is imported in multiple tenants,
|
||||||
|
the same ecryption file can be used to decrypt it when downloading or exporting the app content.
|
||||||
|
|
||||||
|
.Sample
|
||||||
|
Export-EncrytionKeys -RootFolder C:\Intune\Packages -ExportFolder C:\Intune\Download
|
||||||
|
This will search C:\Intune\Packages and all subfolder for .intunewin files and export
|
||||||
|
the encryption keys to the C:\Intune\Download.
|
||||||
|
#>
|
||||||
|
param(
|
||||||
|
[Alias("RF")]
|
||||||
|
# Root folder where intunewin files are located.
|
||||||
|
$RootFolder,
|
||||||
|
[Alias("EF")]
|
||||||
|
# Folder where encryption files should be exported to
|
||||||
|
# If this is empty, the encryption file will be saved to the same folder as the intunewin file
|
||||||
|
$ExportFolder)
|
||||||
|
|
||||||
|
function Export-IntunewinFileObject
|
||||||
|
{
|
||||||
|
param($file, $objectName, $toFile)
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Add-Type -Assembly System.IO.Compression.FileSystem
|
||||||
|
|
||||||
|
$zip = [IO.Compression.ZipFile]::OpenRead($file)
|
||||||
|
|
||||||
|
$zip.Entries | where { $_.Name -like $objectName } | foreach {
|
||||||
|
|
||||||
|
[System.IO.Compression.ZipFileExtensions]::ExtractToFile($_, $toFile, $true)
|
||||||
|
}
|
||||||
|
|
||||||
|
$zip.Dispose()
|
||||||
|
return $true
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
Write-Warning "Failed to get info from $file. Error: $($_.Exception.Message)"
|
||||||
|
return $false
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
function Export-EncryptionKeys
|
||||||
|
{
|
||||||
|
param(
|
||||||
|
[Parameter(ValueFromPipeline=$true)]
|
||||||
|
$fileInfo,
|
||||||
|
$exportFolder = $fileInfo.DirectoryName
|
||||||
|
)
|
||||||
|
|
||||||
|
begin
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
process
|
||||||
|
{
|
||||||
|
if($fileInfo -isnot [IO.FileInfo]) { return }
|
||||||
|
|
||||||
|
if(-not $exportFolder) { $exportFolder = $fileInfo.DirectoryName }
|
||||||
|
|
||||||
|
$tmpFile = [IO.Path]::GetTempFileName()
|
||||||
|
|
||||||
|
if((Export-IntunewinFileObject $fileInfo.FullName "detection.xml" $tmpFile) -ne $true)
|
||||||
|
{
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
$tmpFI = [IO.FileInfo]$tmpFile
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
if($tmpFI.Length -eq 0)
|
||||||
|
{
|
||||||
|
throw "Detection.xml not exported"
|
||||||
|
}
|
||||||
|
[xml]$DetectionXML = Get-Content $tmpFile
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
Write-Warning "Failed to export detection.xml file. Error: $($_.Exception.Message)"
|
||||||
|
return
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
Remove-Item -Path $tmpFile -Force | Out-Null
|
||||||
|
}
|
||||||
|
|
||||||
|
# Get encryption info from detection.xml and build encryptionInfo object
|
||||||
|
|
||||||
|
$encryptionInfo = @{}
|
||||||
|
$encryptionInfo.encryptionKey = $DetectionXML.ApplicationInfo.EncryptionInfo.EncryptionKey
|
||||||
|
$encryptionInfo.macKey = $DetectionXML.ApplicationInfo.EncryptionInfo.macKey
|
||||||
|
$encryptionInfo.initializationVector = $DetectionXML.ApplicationInfo.EncryptionInfo.initializationVector
|
||||||
|
$encryptionInfo.mac = $DetectionXML.ApplicationInfo.EncryptionInfo.mac
|
||||||
|
$encryptionInfo.profileIdentifier = "ProfileVersion1"
|
||||||
|
$encryptionInfo.fileDigest = $DetectionXML.ApplicationInfo.EncryptionInfo.fileDigest
|
||||||
|
$encryptionInfo.fileDigestAlgorithm = $DetectionXML.ApplicationInfo.EncryptionInfo.fileDigestAlgorithm
|
||||||
|
|
||||||
|
$fileData = @{}
|
||||||
|
$fileData.Name = $DetectionXML.ApplicationInfo.Name
|
||||||
|
$fileData.UnencryptedContentSize = $DetectionXML.ApplicationInfo.UnencryptedContentSize
|
||||||
|
$fileData.SetupFile = $DetectionXML.ApplicationInfo.SetupFile
|
||||||
|
|
||||||
|
$msiInfo = @{}
|
||||||
|
if($DetectionXML.ApplicationInfo.MsiInfo)
|
||||||
|
{
|
||||||
|
$msiInfo.MsiPublisher = $DetectionXML.ApplicationInfo.MsiInfo.MsiPublisher
|
||||||
|
$msiInfo.MsiProductCode = $DetectionXML.ApplicationInfo.MsiInfo.Publisher
|
||||||
|
$msiInfo.MsiProductVersion = $DetectionXML.ApplicationInfo.MsiInfo.MsiProductVersion
|
||||||
|
$msiInfo.MsiPackageCode = $DetectionXML.ApplicationInfo.MsiInfo.MsiPackageCode
|
||||||
|
$msiInfo.MsiUpgradeCode = $DetectionXML.ApplicationInfo.MsiInfo.MsiUpgradeCode
|
||||||
|
$msiInfo.MsiIsMachineInstall = $DetectionXML.ApplicationInfo.MsiInfo.MsiIsMachineInstall
|
||||||
|
$msiInfo.MsiIsUserInstall = $DetectionXML.ApplicationInfo.MsiInfo.MsiIsUserInstall
|
||||||
|
$msiInfo.MsiIncludesServices = $DetectionXML.ApplicationInfo.MsiInfo.MsiIncludesServices
|
||||||
|
$msiInfo.MsiIncludesODBCDataSource = $DetectionXML.ApplicationInfo.MsiInfo.MsiIncludesODBCDataSource
|
||||||
|
$msiInfo.MsiContainsSystemRegistryKeys = $DetectionXML.ApplicationInfo.MsiInfo.MsiContainsSystemRegistryKeys
|
||||||
|
$msiInfo.MsiContainsSystemFolders = $DetectionXML.ApplicationInfo.MsiInfo.MsiContainsSystemFolders
|
||||||
|
}
|
||||||
|
# Create mobileAppContentFile object for the file
|
||||||
|
$fileEncryptionInfo = @{}
|
||||||
|
$fileEncryptionInfo.fileEncryptionInfo = $encryptionInfo
|
||||||
|
$fileEncryptionInfo.fileData = $fileData
|
||||||
|
if($msiInfo.Count -gt 0)
|
||||||
|
{
|
||||||
|
$fileEncryptionInfo.MsiInfo = $msiInfo
|
||||||
|
}
|
||||||
|
|
||||||
|
$json = $fileEncryptionInfo | ConvertTo-Json -Depth 10
|
||||||
|
|
||||||
|
if([IO.Directory]::Exists($exportFolder) -eq $false)
|
||||||
|
{
|
||||||
|
md $exportFolder | Out-Null
|
||||||
|
}
|
||||||
|
|
||||||
|
$fileName = $exportFolder + "\$($fileInfo.BaseName)_$($DetectionXML.ApplicationInfo.UnencryptedContentSize).json"
|
||||||
|
|
||||||
|
Write-Host "Save encryption for $($fileInfo.BaseName) file $fileName"
|
||||||
|
$json | Out-File -FilePath $fileName -Force -Encoding utf8
|
||||||
|
}
|
||||||
|
|
||||||
|
end
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
Get-ChildItem -Path $RootFolder -Filter "*.intunewin" -Recurse | Export-EncryptionKeys -exportFolder $ExportFolder
|
||||||
@@ -0,0 +1 @@
|
|||||||
|
cmd /c powershell -version 5 -ex bypass -File "%~DP0Start-IntuneManagement.ps1" -tenantId "<TenantID>" -appid "<AppID>" -secret "<Secret>"
|
||||||
+57
-14
@@ -19,6 +19,8 @@
|
|||||||
<RowDefinition Height="Auto"/>
|
<RowDefinition Height="Auto"/>
|
||||||
<RowDefinition Height="Auto"/>
|
<RowDefinition Height="Auto"/>
|
||||||
<RowDefinition Height="Auto"/>
|
<RowDefinition Height="Auto"/>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
<RowDefinition Height="*"/>
|
<RowDefinition Height="*"/>
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
@@ -55,24 +57,18 @@
|
|||||||
<ComboBox Name="cbDocumentationObjectSeparator" Margin="0,5,0,0" Width="100" Grid.Row="3" Grid.Column="1" HorizontalAlignment="Left"
|
<ComboBox Name="cbDocumentationObjectSeparator" Margin="0,5,0,0" Width="100" Grid.Row="3" Grid.Column="1" HorizontalAlignment="Left"
|
||||||
DisplayMemberPath="Name" SelectedValuePath="Value" />
|
DisplayMemberPath="Name" SelectedValuePath="Value" />
|
||||||
|
|
||||||
<StackPanel Orientation="Horizontal" Margin="0,5,5,0" Grid.Row="4">
|
<StackPanel Orientation="Horizontal" Margin="0,5,5,0" Grid.Row="7" Grid.ColumnSpan="2" Name="spDocumentFilter">
|
||||||
<Label Content="Set unconfigured value" />
|
<Label Content="Filter" />
|
||||||
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="Set the unconfigured value if the propery is not configured and the property definition has an unconfigured value set" />
|
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="Filter policies by name or Scope (Tag)" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<CheckBox Grid.Column='1' Grid.Row='4' Name='chkSetUnconfiguredValue' VerticalAlignment="Center" IsChecked="true" />
|
<TextBox Text="" Name="txtDocumentFilter" Padding="0,2,0,2" Grid.Row='8' Margin="5,0,0,0" Grid.ColumnSpan="2" />
|
||||||
|
|
||||||
<StackPanel Orientation="Horizontal" Margin="0,5,5,0" Grid.Row="5">
|
<StackPanel Orientation="Horizontal" Margin="0,5,5,0" Grid.Row="9" Grid.ColumnSpan="2" Name="spDocumentFromFolder">
|
||||||
<Label Content="Set default value" />
|
|
||||||
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="Set the default value if the propery is not configured and the property definition has a default value configured" />
|
|
||||||
</StackPanel>
|
|
||||||
<CheckBox Grid.Column='1' Grid.Row='5' Name='chkSetDefaultValue' VerticalAlignment="Center" IsChecked="true" />
|
|
||||||
|
|
||||||
<StackPanel Orientation="Horizontal" Margin="0,5,5,0" Grid.Row="6" Grid.ColumnSpan="2" Name="spDocumentFromFolder">
|
|
||||||
<Label Content="Source files" />
|
<Label Content="Source files" />
|
||||||
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="Create documentation from exported files" />
|
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="Create documentation from exported files" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<Grid Grid.Row='7' Margin="5,0,0,0" Grid.ColumnSpan="2" Name="grdDocumentFromFolder">
|
<Grid Grid.Row='10' Margin="5,0,0,0" Grid.ColumnSpan="2" Name="grdDocumentFromFolder">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="*" />
|
<ColumnDefinition Width="*" />
|
||||||
<ColumnDefinition Width="5" />
|
<ColumnDefinition Width="5" />
|
||||||
@@ -81,11 +77,10 @@
|
|||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="Auto"/>
|
<RowDefinition Height="Auto"/>
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<TextBox Text="" Name="txtDocumentFromFolder" />
|
<TextBox Text="" Name="txtDocumentFromFolder" Padding="0,2,0,2" />
|
||||||
<Button Grid.Column="2" Name="browseDocumentFromFolder" Padding="5,0,5,0" Width="50" ToolTip="Browse for export folder">...</Button>
|
<Button Grid.Column="2" Name="browseDocumentFromFolder" Padding="5,0,5,0" Width="50" ToolTip="Browse for export folder">...</Button>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
|
|
||||||
<Label Content="Objects to document" Grid.Row="0" Grid.Column="4" />
|
<Label Content="Objects to document" Grid.Row="0" Grid.Column="4" />
|
||||||
<DataGrid Name="grdDocumentObjects" Grid.Row="1" Grid.RowSpan="99" Grid.Column="4" CanUserAddRows="False" AutoGenerateColumns="False" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="White" Margin="0,0,5,0">
|
<DataGrid Name="grdDocumentObjects" Grid.Row="1" Grid.RowSpan="99" Grid.Column="4" CanUserAddRows="False" AutoGenerateColumns="False" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="White" Margin="0,0,5,0">
|
||||||
<!--
|
<!--
|
||||||
@@ -115,6 +110,9 @@
|
|||||||
<RowDefinition Height="Auto"/>
|
<RowDefinition Height="Auto"/>
|
||||||
<RowDefinition Height="Auto"/>
|
<RowDefinition Height="Auto"/>
|
||||||
<RowDefinition Height="Auto"/>
|
<RowDefinition Height="Auto"/>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
<RowDefinition Height="*"/>
|
<RowDefinition Height="*"/>
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
@@ -146,6 +144,51 @@
|
|||||||
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="Exclude properties that are marked as disabled. If this is NOT checked, dispabled properties will still be excluded if the same EntityKey is used on an enabled property" />
|
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="Exclude properties that are marked as disabled. If this is NOT checked, dispabled properties will still be excluded if the same EntityKey is used on an enabled property" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<CheckBox Grid.Column='1' Grid.Row='3' Name='chkSkipDisabled' VerticalAlignment="Center" IsChecked="true" />
|
<CheckBox Grid.Column='1' Grid.Row='3' Name='chkSkipDisabled' VerticalAlignment="Center" IsChecked="true" />
|
||||||
|
|
||||||
|
<StackPanel Orientation="Horizontal" Margin="0,5,5,0" Grid.Row="4">
|
||||||
|
<Label Content="Output value" />
|
||||||
|
<Rectangle Style="{DynamicResource InfoIcon}">
|
||||||
|
<Rectangle.ToolTip>
|
||||||
|
<TextBlock>
|
||||||
|
Specifys the output value for subproperties in Administrative Template policies<LineBreak />
|
||||||
|
<Bold>Value</Bold>: Documents only the value<LineBreak />
|
||||||
|
<Bold>Value with label</Bold>: Documents the sub-property value with the label of the property<LineBreak />
|
||||||
|
<Bold>Note</Bold>: This is only supported on Administrative Templates for the moment<LineBreak />
|
||||||
|
</TextBlock>
|
||||||
|
</Rectangle.ToolTip>
|
||||||
|
</Rectangle>
|
||||||
|
</StackPanel>
|
||||||
|
<ComboBox Name="cbDocumentationValueOutputProperty" Margin="0,5,0,0" Grid.Row="4" Grid.Column="1" HorizontalAlignment="Left" DisplayMemberPath="Name" SelectedValuePath="Value" />
|
||||||
|
|
||||||
|
<StackPanel Orientation="Horizontal" Margin="0,5,5,0" Grid.Row="5">
|
||||||
|
<Label Content="Set unconfigured value" />
|
||||||
|
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="Set the unconfigured value if the propery is not configured and the property definition has an unconfigured value set" />
|
||||||
|
</StackPanel>
|
||||||
|
<CheckBox Grid.Column='1' Grid.Row='5' Name='chkSetUnconfiguredValue' VerticalAlignment="Center" IsChecked="true" />
|
||||||
|
|
||||||
|
<StackPanel Orientation="Horizontal" Margin="0,5,5,0" Grid.Row="6">
|
||||||
|
<Label Content="Set default value" />
|
||||||
|
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="Set the default value if the propery is not configured and the property definition has a default value configured" />
|
||||||
|
</StackPanel>
|
||||||
|
<CheckBox Grid.Column='1' Grid.Row='6' Name='chkSetDefaultValue' VerticalAlignment="Center" IsChecked="true" />
|
||||||
|
|
||||||
|
<StackPanel Orientation="Horizontal" Grid.Row='7' Margin="0,5,5,0">
|
||||||
|
<Label Content="Document scripts" />
|
||||||
|
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="Include scripts in the documentation" />
|
||||||
|
</StackPanel>
|
||||||
|
<CheckBox Grid.Column='1' Grid.Row='7' Name='chkIncludeScripts' VerticalAlignment="Center" IsChecked="true" />
|
||||||
|
|
||||||
|
<StackPanel Orientation="Horizontal" Grid.Row='8' Margin="0,5,5,0">
|
||||||
|
<Label Content="Remove script signature" />
|
||||||
|
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="Remove signature block from PowerShell scripts to reduce script documentation size" />
|
||||||
|
</StackPanel>
|
||||||
|
<CheckBox Grid.Column='1' Grid.Row='8' Name='chkExcludeScriptSignature' VerticalAlignment="Center" IsChecked="true" />
|
||||||
|
|
||||||
|
<StackPanel Orientation="Horizontal" Grid.Row='9' Margin="0,5,5,0">
|
||||||
|
<Label Content="Skip Assignments" />
|
||||||
|
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="Exclude assignments from the documentation" />
|
||||||
|
</StackPanel>
|
||||||
|
<CheckBox Grid.Column='1' Grid.Row='9' Name='chkExcludeAssignments' VerticalAlignment="Center" IsChecked="true" />
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<Label Name="lblCustomOptions" Grid.Row="1" Margin="0,10,5,0" />
|
<Label Name="lblCustomOptions" Grid.Row="1" Margin="0,10,5,0" />
|
||||||
|
|||||||
@@ -0,0 +1,82 @@
|
|||||||
|
<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Name="grdWordOptions">
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
<RowDefinition Height="*"/>
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="Auto" SharedSizeGroup="TitleColumn" />
|
||||||
|
<ColumnDefinition Width="*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
|
<StackPanel Orientation="Horizontal" Grid.Row='0' Margin="0,0,5,0">
|
||||||
|
<Label Content="Document name" />
|
||||||
|
<Rectangle Style="{DynamicResource InfoIcon}">
|
||||||
|
<Rectangle.ToolTip>
|
||||||
|
<TextBlock>
|
||||||
|
Full path to the name of the output file<LineBreak />
|
||||||
|
Default value is %MyDocuments%\%Organization%-%Date%.HTML<LineBreak />
|
||||||
|
Special folders and environmentvariables can be used
|
||||||
|
</TextBlock>
|
||||||
|
</Rectangle.ToolTip>
|
||||||
|
</Rectangle>
|
||||||
|
</StackPanel>
|
||||||
|
<Grid Grid.Column='1' Grid.Row='0' Margin="0,5,5,0" >
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="*" />
|
||||||
|
<ColumnDefinition Width="5" />
|
||||||
|
<ColumnDefinition Width="Auto" />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
<TextBox Text="" Name="txtHTMLDocumentName" />
|
||||||
|
<Button Grid.Column="2" Name="browseHTMLDocumentName" Padding="5,0,5,0" Width="50" ToolTip="Select output document">...</Button>
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
<StackPanel Orientation="Horizontal" Grid.Row='1' Margin="0,0,5,0">
|
||||||
|
<Label Content="CSS Style" />
|
||||||
|
<Rectangle Style="{DynamicResource InfoIcon}">
|
||||||
|
<Rectangle.ToolTip>
|
||||||
|
<TextBlock>
|
||||||
|
Species the CSS file used for styling the HTML document.<LineBreak />
|
||||||
|
The CSS file will be ingected to the output document<LineBreak />
|
||||||
|
Default value is %ScriptRoot%\Documentation\DefaultHTMLStyle.css
|
||||||
|
</TextBlock>
|
||||||
|
</Rectangle.ToolTip>
|
||||||
|
</Rectangle>
|
||||||
|
</StackPanel>
|
||||||
|
<Grid Grid.Column='1' Grid.Row='1' Margin="0,5,5,0" >
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="*" />
|
||||||
|
<ColumnDefinition Width="5" />
|
||||||
|
<ColumnDefinition Width="Auto" />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
<TextBox Text="" Name="txtHTMLCSSFile" />
|
||||||
|
<Button Grid.Column="2" Name="browseHTMLCSSFile" Padding="5,0,5,0" Width="50" ToolTip="Browse for CSS file">...</Button>
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
<StackPanel Orientation="Horizontal" Grid.Row='2' Margin="0,0,5,0">
|
||||||
|
<Label Content="Open document" />
|
||||||
|
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="This will open the document when finished" />
|
||||||
|
</StackPanel>
|
||||||
|
<CheckBox Grid.Column='1' Grid.Row='2' Name='chkHTMLOpenDocument' VerticalAlignment="Center" IsChecked="true" />
|
||||||
|
|
||||||
|
<StackPanel Orientation="Horizontal" Grid.Row='3' Margin="0,5,5,0" >
|
||||||
|
<Label Content="Output File" />
|
||||||
|
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="Specify the targeted file for the documentation. One single file for all objects or one file per object." />
|
||||||
|
</StackPanel>
|
||||||
|
<ComboBox Name="cbHTMLDocumentOutputFile" Margin="0,5,0,0" MinWidth="250" Grid.Row='3' Grid.Column="1" HorizontalAlignment="Left"
|
||||||
|
DisplayMemberPath="Name" SelectedValuePath="Value" />
|
||||||
|
|
||||||
|
</Grid>
|
||||||
@@ -0,0 +1,88 @@
|
|||||||
|
<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Name="grdWordOptions">
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
<RowDefinition Height="*"/>
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="Auto" SharedSizeGroup="TitleColumn" />
|
||||||
|
<ColumnDefinition Width="*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
|
<StackPanel Orientation="Horizontal" Grid.Row='0' Margin="0,0,5,0">
|
||||||
|
<Label Content="Document name" />
|
||||||
|
<Rectangle Style="{DynamicResource InfoIcon}">
|
||||||
|
<Rectangle.ToolTip>
|
||||||
|
<TextBlock>
|
||||||
|
Full path to the name of the output file<LineBreak />
|
||||||
|
Default value is %MyDocuments%\%Organization%-%Date%.md<LineBreak />
|
||||||
|
Special folders and environmentvariables can be used
|
||||||
|
</TextBlock>
|
||||||
|
</Rectangle.ToolTip>
|
||||||
|
</Rectangle>
|
||||||
|
</StackPanel>
|
||||||
|
<Grid Grid.Column='1' Grid.Row='0' Margin="0,5,5,0" >
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="*" />
|
||||||
|
<ColumnDefinition Width="5" />
|
||||||
|
<ColumnDefinition Width="Auto" />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
<TextBox Text="" Name="txtMDDocumentName" />
|
||||||
|
<Button Grid.Column="2" Name="browseMDDocumentName" Padding="5,0,5,0" Width="50" ToolTip="Select output document">...</Button>
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
<StackPanel Orientation="Horizontal" Grid.Row='1' Margin="0,0,5,0">
|
||||||
|
<Label Content="Include CSS" />
|
||||||
|
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="Specify if the CSS document shouldbe added to the MD file(s)" />
|
||||||
|
</StackPanel>
|
||||||
|
<CheckBox Grid.Column='1' Grid.Row='1' Name='chkMDIncludeCSS' VerticalAlignment="Center" IsChecked="true" />
|
||||||
|
|
||||||
|
<StackPanel Orientation="Horizontal" Grid.Row='2' Margin="0,0,5,0">
|
||||||
|
<Label Content="CSS Style" />
|
||||||
|
<Rectangle Style="{DynamicResource InfoIcon}">
|
||||||
|
<Rectangle.ToolTip>
|
||||||
|
<TextBlock>
|
||||||
|
Species the CSS file used for styling the MD document.<LineBreak />
|
||||||
|
The CSS file will be ingected to the output document<LineBreak />
|
||||||
|
Default value is %ScriptRoot%\Documentation\DefaultMDStyle.css
|
||||||
|
</TextBlock>
|
||||||
|
</Rectangle.ToolTip>
|
||||||
|
</Rectangle>
|
||||||
|
</StackPanel>
|
||||||
|
<Grid Grid.Column='1' Grid.Row='2' Margin="0,5,5,0" >
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="*" />
|
||||||
|
<ColumnDefinition Width="5" />
|
||||||
|
<ColumnDefinition Width="Auto" />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
<TextBox Text="" Name="txtMDCSSFile" />
|
||||||
|
<Button Grid.Column="2" Name="browseMDCSSFile" Padding="5,0,5,0" Width="50" ToolTip="Browse for CSS file">...</Button>
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
<StackPanel Orientation="Horizontal" Grid.Row='3' Margin="0,0,5,0">
|
||||||
|
<Label Content="Open document" />
|
||||||
|
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="This will open the document when finished" />
|
||||||
|
</StackPanel>
|
||||||
|
<CheckBox Grid.Column='1' Grid.Row='3' Name='chkMDOpenDocument' VerticalAlignment="Center" IsChecked="true" />
|
||||||
|
|
||||||
|
<StackPanel Orientation="Horizontal" Grid.Row='4' Margin="0,5,5,0" >
|
||||||
|
<Label Content="Output File" />
|
||||||
|
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="Specify the targeted file for the documentation. One single file for all objects or one file per object." />
|
||||||
|
</StackPanel>
|
||||||
|
<ComboBox Name="cbMDDocumentOutputFile" Margin="0,5,0,0" MinWidth="250" Grid.Row='4' Grid.Column="1" HorizontalAlignment="Left"
|
||||||
|
DisplayMemberPath="Name" SelectedValuePath="Value" />
|
||||||
|
|
||||||
|
</Grid>
|
||||||
@@ -240,18 +240,6 @@
|
|||||||
</StackPanel>
|
</StackPanel>
|
||||||
<CheckBox Grid.Column='1' Grid.Row='20' Name='chkWordOpenDocument' VerticalAlignment="Center" IsChecked="true" />
|
<CheckBox Grid.Column='1' Grid.Row='20' Name='chkWordOpenDocument' VerticalAlignment="Center" IsChecked="true" />
|
||||||
|
|
||||||
<StackPanel Orientation="Horizontal" Grid.Row='21' Margin="0,0,5,0">
|
|
||||||
<Label Content="Document scripts" />
|
|
||||||
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="Include scripts in the documentation" />
|
|
||||||
</StackPanel>
|
|
||||||
<CheckBox Grid.Column='1' Grid.Row='21' Name='chkWordIncludeScripts' VerticalAlignment="Center" IsChecked="true" />
|
|
||||||
|
|
||||||
<StackPanel Orientation="Horizontal" Grid.Row='22' Margin="0,0,5,0">
|
|
||||||
<Label Content="Remove script signature" />
|
|
||||||
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="Remove signature block from PowerShell scripts to reduce script documentation size" />
|
|
||||||
</StackPanel>
|
|
||||||
<CheckBox Grid.Column='1' Grid.Row='22' Name='chkWordExcludeScriptSignature' VerticalAlignment="Center" IsChecked="true" />
|
|
||||||
|
|
||||||
<StackPanel Orientation="Horizontal" Grid.Row='23' Margin="0,0,5,0">
|
<StackPanel Orientation="Horizontal" Grid.Row='23' Margin="0,0,5,0">
|
||||||
<Label Content="Attach Json file" />
|
<Label Content="Attach Json file" />
|
||||||
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="Attach the Json file to the documentation" />
|
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="Attach the Json file to the documentation" />
|
||||||
|
|||||||
@@ -41,22 +41,13 @@
|
|||||||
<Button Grid.Column="4" Name="btnGetIntuneAssignments" Padding="5,2,5,2" Content="Get Assignments" ToolTip="Get assignments from the selected exported folder" />
|
<Button Grid.Column="4" Name="btnGetIntuneAssignments" Padding="5,2,5,2" Content="Get Assignments" ToolTip="Get assignments from the selected exported folder" />
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<StackPanel Grid.Row='1' Orientation="Horizontal" Margin="0,0,5,5" >
|
<StackPanel Grid.Row='1' Orientation="Horizontal" Margin="0,0,5,0" >
|
||||||
<Label Content="Filter" />
|
<Label Content="Filter" />
|
||||||
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="Filter rows" />
|
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="Filter rows" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<Grid Grid.Column='1' Grid.Row='1'>
|
<TextBox Text="" Grid.Column='1' Grid.Row='1' Margin="0,2,0,2" Name="txtIntuneAssignmentsFilter" ToolTip="Filter items" />
|
||||||
<Grid.ColumnDefinitions>
|
|
||||||
<ColumnDefinition Width="*" />
|
|
||||||
<ColumnDefinition Width="5" />
|
|
||||||
<ColumnDefinition Width="Auto" />
|
|
||||||
</Grid.ColumnDefinitions>
|
|
||||||
<Grid.RowDefinitions>
|
|
||||||
<RowDefinition Height="Auto"/>
|
|
||||||
</Grid.RowDefinitions>
|
|
||||||
<TextBox Text="" Name="txtIntuneAssignmentsFilter" ToolTip="Filter items" />
|
|
||||||
</Grid>
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<DataGrid Name="dgIntuneAssignments" Margin="0,5,0,0" Grid.Row="1"
|
<DataGrid Name="dgIntuneAssignments" Margin="0,5,0,0" Grid.Row="1"
|
||||||
|
|||||||
@@ -0,0 +1,26 @@
|
|||||||
|
<Viewbox Width="18" Height="18" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||||
|
<Canvas Height="18" Width="18">
|
||||||
|
<Canvas.Resources>
|
||||||
|
<LinearGradientBrush x:Key="deed83ab-7995-4b1b-9000-e569a21c2014" StartPoint="0.064690001308918,0.0795900002121925" EndPoint="0.064690001308918,0.187000006437302" MappingMode="RelativeToBoundingBox">
|
||||||
|
<LinearGradientBrush.GradientStops>
|
||||||
|
<GradientStopCollection>
|
||||||
|
<GradientStop Offset="0.225" Color="#50e6ff" />
|
||||||
|
<GradientStop Offset="1" Color="#198ab3" />
|
||||||
|
</GradientStopCollection>
|
||||||
|
</LinearGradientBrush.GradientStops>
|
||||||
|
</LinearGradientBrush>
|
||||||
|
<LinearGradientBrush x:Key="deed83ab-7995-4b1b-9000-e569a21c2015" StartPoint="0.0619699992239475,0.0220100004225969" EndPoint="0.0698100030422211,0.119529999792576" MappingMode="RelativeToBoundingBox">
|
||||||
|
<LinearGradientBrush.GradientStops>
|
||||||
|
<GradientStopCollection>
|
||||||
|
<GradientStop Offset="0.225" Color="#50e6ff" />
|
||||||
|
<GradientStop Offset="1" Color="#198ab3" />
|
||||||
|
</GradientStopCollection>
|
||||||
|
</LinearGradientBrush.GradientStops>
|
||||||
|
</LinearGradientBrush>
|
||||||
|
</Canvas.Resources>
|
||||||
|
<Path Data="M11.783 16.761a1.15 1.15 0 0 0 1.154-1.146 1.08 1.08 0 0 0-.008-.139c-.452-3.615-2.515-6.56-6.45-6.56-4 0-6.07 2.493-6.473 6.57a1.158 1.158 0 0 0 1.032 1.269 1.112 1.112 0 0 0 .116.006Z" Fill="{StaticResource deed83ab-7995-4b1b-9000-e569a21c2014}" />
|
||||||
|
<Path Data="M6.541 9.773A3.6 3.6 0 0 1 4.577 9.2l1.944 5.08 1.931-5.051a3.608 3.608 0 0 1-1.911.544Z" Fill="#FFFFFF" />
|
||||||
|
<Ellipse Canvas.Left="2.886" Canvas.Top="2.518" Width="7.256" Height="7.256" Fill="{StaticResource deed83ab-7995-4b1b-9000-e569a21c2015}" />
|
||||||
|
<Path Data="M18 8.611V7.127l-.208-.078-1.592-.521-.416-1.015L16.6 3.8l-1.047-1.046-.208.1-1.483.754-1.015-.408-.647-1.8h-1.488l-.078.208-.52 1.592-1.009.414a3.61 3.61 0 0 1 .966 1.833 2.851 2.851 0 1 1 1.422 5.32 2.884 2.884 0 0 1-.641-.078 7.369 7.369 0 0 1 1.68 2.972l.341-1.039 1.015-.417 1.717.807 1.042-1.041-.1-.208-.754-1.484.407-1.018Z" Fill="#0078d4" />
|
||||||
|
</Canvas>
|
||||||
|
</Viewbox>
|
||||||
@@ -0,0 +1,54 @@
|
|||||||
|
<Grid xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
Grid.IsSharedSizeScope='True'>
|
||||||
|
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="Auto" />
|
||||||
|
<RowDefinition Height="*" />
|
||||||
|
<RowDefinition Height="Auto" />
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="*" />
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
|
<Grid >
|
||||||
|
<Grid.RowDefinitions>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
<RowDefinition Height="5"/>
|
||||||
|
<RowDefinition Height="Auto"/>
|
||||||
|
</Grid.RowDefinitions>
|
||||||
|
<Grid.ColumnDefinitions>
|
||||||
|
<ColumnDefinition Width="Auto" SharedSizeGroup="TitleColumn" />
|
||||||
|
<ColumnDefinition Width="*"/>
|
||||||
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
|
<Button Name="btnGetIntuneFilterUsage" Grid.Column='1' Grid.Row='0' Width="150" Padding="5,2,5,2" Content="Get Filter Usage" ToolTip="Get all Intune Filter assignment usage" />
|
||||||
|
|
||||||
|
<StackPanel Grid.Row='2' Orientation="Horizontal" Margin="5,0,0,4" >
|
||||||
|
<Label Content="Filter" />
|
||||||
|
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="Filter rows" />
|
||||||
|
</StackPanel>
|
||||||
|
|
||||||
|
<TextBox Grid.Column='1' Grid.Row='2' Text="" Margin="5,3,0,5" Name="txtIntuneFilterUsageFilter" ToolTip="Filter items" />
|
||||||
|
|
||||||
|
</Grid>
|
||||||
|
|
||||||
|
<DataGrid Name="dgIntuneFilterUsage" Margin="0,5,0,0" Grid.Row="1"
|
||||||
|
AutoGenerateColumns="False"
|
||||||
|
SelectionMode="Single"
|
||||||
|
SelectionUnit="FullRow"
|
||||||
|
CanUserAddRows="False"
|
||||||
|
ItemsSource="">
|
||||||
|
<DataGrid.Columns>
|
||||||
|
<DataGridTextColumn Header="Filter Name" Binding="{Binding FilterName}" IsReadOnly="True" />
|
||||||
|
<DataGridTextColumn Header="Policy Name" Binding="{Binding PolicyName}" IsReadOnly="True" />
|
||||||
|
<DataGridTextColumn Header="Type" Binding="{Binding PayloadType, Mode=OneWay}" IsReadOnly="True" />
|
||||||
|
<DataGridTextColumn Header="Mode" Binding="{Binding Mode}" IsReadOnly="True" />
|
||||||
|
<DataGridTextColumn Header="Group" Binding="{Binding GroupName}" IsReadOnly="True" />
|
||||||
|
</DataGrid.Columns>
|
||||||
|
</DataGrid>
|
||||||
|
|
||||||
|
<StackPanel Grid.Row="2" Orientation="Horizontal" HorizontalAlignment="Right" Margin="0,5,0,0" >
|
||||||
|
<Button Name="btnIntuneFilterUsageCopy" Content="Copy" MinWidth="100" Margin="0,0,5,0" ToolTip="Copy the Filter usage as a CSV to the clipboard" />
|
||||||
|
<Button Name="btnIntuneFilterUsagesSave" Content="Save" MinWidth="100" />
|
||||||
|
</StackPanel>
|
||||||
|
</Grid>
|
||||||
@@ -135,7 +135,7 @@
|
|||||||
<Label Content="Current settings:" />
|
<Label Content="Current settings:" />
|
||||||
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="Current property settings. Only updated when saved" />
|
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="Current property settings. Only updated when saved" />
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
<Label Name="lblObjectColumnsConfig" Content="" Margin="0,0,5,0" Grid.Row="3" />
|
<Label Name="lblObjectColumnsConfig" Content="" Margin="0,0,5,0" Grid.Row="3" Grid.ColumnSpan="2" />
|
||||||
|
|
||||||
<StackPanel Orientation="Horizontal" Grid.Column="1" Margin="5,5,5,0" Grid.Row="4" Grid.ColumnSpan="2" HorizontalAlignment="Right">
|
<StackPanel Orientation="Horizontal" Grid.Column="1" Margin="5,5,5,0" Grid.Row="4" Grid.ColumnSpan="2" HorizontalAlignment="Right">
|
||||||
<Button Name="btnObjectColumnsReset" Content="Reset" Margin="0,0,5,0" Width="100" ToolTip="Revert all changes" />
|
<Button Name="btnObjectColumnsReset" Content="Reset" Margin="0,0,5,0" Width="100" ToolTip="Revert all changes" />
|
||||||
|
|||||||
Reference in New Issue
Block a user