mirror of
https://github.com/Micke-K/IntuneManagement.git
synced 2026-09-28 19:05:38 +02:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e6ec048df0 | ||
|
|
0fd868ff70 | ||
|
|
ece28a649f | ||
|
|
897309e48e | ||
|
|
2dc5eca089 | ||
|
|
02c162efd3 | ||
|
|
aae21c3960 | ||
|
|
103b1c2e66 |
@@ -12,7 +12,7 @@
|
||||
RootModule = 'CloudAPIPowerShellManagement.psm1'
|
||||
|
||||
# Version number of this module.
|
||||
ModuleVersion = '3.7.2'
|
||||
ModuleVersion = '3.9.0'
|
||||
|
||||
# Supported PSEditions
|
||||
# CompatiblePSEditions = @()
|
||||
@@ -27,7 +27,7 @@ Author = 'Mikael Karlsson'
|
||||
# CompanyName = ''
|
||||
|
||||
# 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 = 'Management of Intune and Azure via Cloud APIs like Microsoft Graph API'
|
||||
|
||||
@@ -11,7 +11,7 @@ This module handles the WPF UI
|
||||
|
||||
function Get-ModuleVersion
|
||||
{
|
||||
'3.7.1'
|
||||
'3.8.1'
|
||||
}
|
||||
|
||||
function Initialize-Window
|
||||
@@ -415,7 +415,7 @@ function Set-XamlProperty
|
||||
|
||||
function Get-XamlProperty
|
||||
{
|
||||
param($xamlObj, $controlName, $propertyName, $defaultValue)
|
||||
param($xamlObj, $controlName, $propertyName, $defaultValue = $null)
|
||||
|
||||
$obj = $xamlObj.FindName($controlName)
|
||||
|
||||
@@ -423,7 +423,7 @@ function Get-XamlProperty
|
||||
{
|
||||
if($obj)
|
||||
{
|
||||
return (?? $obj."$propertyName" $null)
|
||||
return (?? $obj."$propertyName" $defaultValue)
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2666,6 +2666,34 @@ 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
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
New-Alias -Name ?? -value Invoke-Coalesce
|
||||
New-Alias -Name ?: -value Invoke-IfTrue
|
||||
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",
|
||||
"PlatformLanguageId": "Windows10",
|
||||
"Categories": [
|
||||
"vpn",
|
||||
"vpnappsandtrafficrules",
|
||||
"vpnconditionalaccess",
|
||||
"vpndnstriggers",
|
||||
"vpnproxy",
|
||||
"vpnsplittunneling",
|
||||
"vpntrustednetwork"
|
||||
"vpn"
|
||||
]
|
||||
},
|
||||
{
|
||||
|
||||
@@ -11,7 +11,7 @@
|
||||
"entityKey": "configureEmail",
|
||||
"dataType": 0,
|
||||
"booleanActions": 109,
|
||||
"category": 103
|
||||
"category": "TableHeaders.settings"
|
||||
},
|
||||
{
|
||||
"nameResourceKey": "Inputs.authenticationType",
|
||||
@@ -19,7 +19,7 @@
|
||||
"entityKey": "com.microsoft.outlook.EmailProfile.AccountType",
|
||||
"dataType": 16,
|
||||
"booleanActions": 0,
|
||||
"category": 103,
|
||||
"category": "TableHeaders.settings",
|
||||
"options": [
|
||||
{
|
||||
"nameResourceKey": "Inputs.basicAuth",
|
||||
@@ -37,7 +37,7 @@
|
||||
"entityKey": "com.microsoft.outlook.EmailProfile.EmailUPN",
|
||||
"dataType": 16,
|
||||
"booleanActions": 0,
|
||||
"category": 103,
|
||||
"category": "TableHeaders.settings",
|
||||
"options": [
|
||||
{
|
||||
"nameResourceKey": "userPrincipalNameOption",
|
||||
@@ -58,7 +58,7 @@
|
||||
"entityKey": "com.microsoft.outlook.EmailProfile.AccountDomain",
|
||||
"dataType": 20,
|
||||
"booleanActions": 0,
|
||||
"category": 103,
|
||||
"category": "TableHeaders.settings",
|
||||
"Condition": {
|
||||
"Expressions": [
|
||||
{
|
||||
@@ -74,7 +74,7 @@
|
||||
"entityKey": "com.microsoft.outlook.EmailProfile.EmailAddress",
|
||||
"dataType": 16,
|
||||
"booleanActions": 0,
|
||||
"category": 103,
|
||||
"category": "TableHeaders.settings",
|
||||
"options": [
|
||||
{
|
||||
"nameResourceKey": "userPrincipalNameOption",
|
||||
@@ -92,7 +92,7 @@
|
||||
"entityKey": "com.microsoft.outlook.EmailProfile.ServerHostName",
|
||||
"dataType": 20,
|
||||
"booleanActions": 0,
|
||||
"category": 103,
|
||||
"category": "TableHeaders.settings",
|
||||
"Condition": {
|
||||
"Expressions": [
|
||||
{
|
||||
@@ -108,7 +108,7 @@
|
||||
"entityKey": "com.microsoft.outlook.EmailProfile.EmailAccountName",
|
||||
"dataType": 20,
|
||||
"booleanActions": 0,
|
||||
"category": 103,
|
||||
"category": "TableHeaders.settings",
|
||||
"Condition": {
|
||||
"Expressions": [
|
||||
{
|
||||
@@ -124,7 +124,7 @@
|
||||
"entityKey": "IntuneMAMAllowedAccountsOnly",
|
||||
"dataType": 16,
|
||||
"booleanActions": 0,
|
||||
"category": 103,
|
||||
"category": "TableHeaders.settings",
|
||||
"Condition": {
|
||||
"Expressions": [
|
||||
{
|
||||
@@ -158,7 +158,7 @@
|
||||
"entityKey": "com.microsoft.outlook.Mail.FocusedInbox",
|
||||
"dataType": 0,
|
||||
"booleanActions": 120,
|
||||
"category": 103
|
||||
"category": "TableHeaders.settings"
|
||||
},
|
||||
{
|
||||
"nameResourceKey": "OutlookAppConfig.allowBiometricsTitle",
|
||||
@@ -166,7 +166,7 @@
|
||||
"entityKey": "com.microsoft.outlook.Auth.Biometric",
|
||||
"dataType": 0,
|
||||
"booleanActions": 120,
|
||||
"category": 103
|
||||
"category": "TableHeaders.settings"
|
||||
},
|
||||
{
|
||||
"nameResourceKey": "OutlookAppConfig.allowUserChangeTitle",
|
||||
@@ -176,7 +176,7 @@
|
||||
"booleanActions": 109,
|
||||
"unconfiguredValue": true,
|
||||
"allowMissing": true,
|
||||
"category": 103,
|
||||
"category": "TableHeaders.settings",
|
||||
"Condition": {
|
||||
"Expressions": [
|
||||
{
|
||||
@@ -192,7 +192,7 @@
|
||||
"entityKey": "com.microsoft.outlook.Contacts.LocalSyncEnabled",
|
||||
"dataType": 0,
|
||||
"booleanActions": 120,
|
||||
"category": 103
|
||||
"category": "TableHeaders.settings"
|
||||
},
|
||||
{
|
||||
"nameResourceKey": "OutlookAppConfig.allowUserChangeTitle",
|
||||
@@ -202,7 +202,7 @@
|
||||
"booleanActions": 109,
|
||||
"unconfiguredValue": true,
|
||||
"allowMissing": true,
|
||||
"category": 103,
|
||||
"category": "TableHeaders.settings",
|
||||
"Condition": {
|
||||
"Expressions": [
|
||||
{
|
||||
@@ -218,7 +218,7 @@
|
||||
"entityKey": "com.microsoft.outlook.Mail.officeFeedEnabled",
|
||||
"dataType": 0,
|
||||
"booleanActions": 120,
|
||||
"category": 103
|
||||
"category": "TableHeaders.settings"
|
||||
},
|
||||
{
|
||||
"nameResourceKey": "OutlookAppConfig.allowSmartReplyTitle",
|
||||
@@ -226,7 +226,7 @@
|
||||
"entityKey": "com.microsoft.outlook.Mail.SuggestedRepliesEnabled",
|
||||
"dataType": 0,
|
||||
"booleanActions": 120,
|
||||
"category": 103
|
||||
"category": "TableHeaders.settings"
|
||||
},
|
||||
{
|
||||
"nameResourceKey": "OutlookAppConfig.allowUserChangeTitle",
|
||||
@@ -234,7 +234,7 @@
|
||||
"entityKey": "com.microsoft.outlook.Mail.SuggestedRepliesEnabled.UserChangeAllowed",
|
||||
"dataType": 0,
|
||||
"booleanActions": 109,
|
||||
"category": 103,
|
||||
"category": "TableHeaders.settings",
|
||||
"unconfiguredValue": true,
|
||||
"allowMissing": true,
|
||||
"Condition": {
|
||||
@@ -252,7 +252,7 @@
|
||||
"entityKey": "com.microsoft.outlook.Mail.ExternalRecipientsToolTipEnabled",
|
||||
"dataType": 0,
|
||||
"booleanActions": 120,
|
||||
"category": 103
|
||||
"category": "TableHeaders.settings"
|
||||
},
|
||||
{
|
||||
"nameResourceKey": "OutlookAppConfig.allowDefaultAppSignatureTitle",
|
||||
@@ -260,7 +260,7 @@
|
||||
"entityKey": "com.microsoft.outlook.Mail.DefaultSignatureEnabled",
|
||||
"dataType": 0,
|
||||
"booleanActions": 120,
|
||||
"category": 103
|
||||
"category": "TableHeaders.settings"
|
||||
},
|
||||
{
|
||||
"nameResourceKey": "OutlookAppConfig.blockExternalImagesTitle",
|
||||
@@ -268,7 +268,7 @@
|
||||
"entityKey": "com.microsoft.outlook.Mail.BlockExternalImagesEnabled",
|
||||
"dataType": 0,
|
||||
"booleanActions": 120,
|
||||
"category": 103
|
||||
"category": "TableHeaders.settings"
|
||||
},
|
||||
{
|
||||
"nameResourceKey": "OutlookAppConfig.allowUserChangeTitle",
|
||||
@@ -278,7 +278,7 @@
|
||||
"booleanActions": 109,
|
||||
"unconfiguredValue": true,
|
||||
"allowMissing": true,
|
||||
"category": 103,
|
||||
"category": "TableHeaders.settings",
|
||||
"Condition": {
|
||||
"Expressions": [
|
||||
{
|
||||
@@ -294,7 +294,7 @@
|
||||
"entityKey": "com.microsoft.outlook.Mail.OrganizeByThreadEnabled",
|
||||
"dataType": 0,
|
||||
"booleanActions": 120,
|
||||
"category": 103
|
||||
"category": "TableHeaders.settings"
|
||||
},
|
||||
{
|
||||
"nameResourceKey": "OutlookAppConfig.playMyEmailsTitle",
|
||||
@@ -302,7 +302,7 @@
|
||||
"entityKey": "com.microsoft.outlook.Mail.PlayMyEmailsEnabled",
|
||||
"dataType": 0,
|
||||
"booleanActions": 120,
|
||||
"category": 103
|
||||
"category": "TableHeaders.settings"
|
||||
},
|
||||
{
|
||||
"nameResourceKey": "OutlookAppConfig.themesEnabledTitle",
|
||||
@@ -310,7 +310,7 @@
|
||||
"entityKey": "com.microsoft.outlook.Settings.ThemesEnabled",
|
||||
"dataType": 0,
|
||||
"booleanActions": 120,
|
||||
"category": 103
|
||||
"category": "TableHeaders.settings"
|
||||
},
|
||||
{
|
||||
"nameResourceKey": "OutlookAppConfig.textPredictionsTitle",
|
||||
@@ -318,7 +318,7 @@
|
||||
"entityKey": "com.microsoft.outlook.Mail.TextPredictionsEnabled",
|
||||
"dataType": 0,
|
||||
"booleanActions": 120,
|
||||
"category": 103
|
||||
"category": "TableHeaders.settings"
|
||||
},
|
||||
{
|
||||
"nameResourceKey": "OutlookAppConfig.allowUserChangeTitle",
|
||||
@@ -328,7 +328,7 @@
|
||||
"booleanActions": 109,
|
||||
"unconfiguredValue": true,
|
||||
"allowMissing": true,
|
||||
"category": 103,
|
||||
"category": "TableHeaders.settings",
|
||||
"Condition": {
|
||||
"Expressions": [
|
||||
{
|
||||
|
||||
@@ -7,6 +7,96 @@
|
||||
"booleanActions": 0,
|
||||
"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",
|
||||
"descriptionResourceKey": "",
|
||||
@@ -836,10 +926,24 @@
|
||||
]
|
||||
},
|
||||
{
|
||||
"Columns": [
|
||||
{
|
||||
"metadata": {
|
||||
"entityKey": "returnCode",
|
||||
"nameResourceKey": "Win32ReturnCodes.Columns.returnCode"
|
||||
}
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"entityKey": "type",
|
||||
"nameResourceKey": "Win32ReturnCodes.Columns.codeType"
|
||||
}
|
||||
}
|
||||
],
|
||||
"nameResourceKey": "Win32ReturnCodes.selectorLabel",
|
||||
"descriptionResourceKey": "",
|
||||
"entityKey": "returnCodes",
|
||||
"dataType": 20,
|
||||
"dataType": 21,
|
||||
"booleanActions": 0,
|
||||
"category": "Win32Program.selectorLabel"
|
||||
},
|
||||
@@ -892,10 +996,24 @@
|
||||
"category": "Win32Requirements.selectorLabel"
|
||||
},
|
||||
{
|
||||
"Columns": [
|
||||
{
|
||||
"metadata": {
|
||||
"entityKey": "property",
|
||||
"nameResourceKey": "ApplicabilityRules.GridLabel.property"
|
||||
}
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"entityKey": "value",
|
||||
"nameResourceKey": "ApplicabilityRules.GridLabel.value"
|
||||
}
|
||||
}
|
||||
],
|
||||
"nameResourceKey": "Win32Requirements.AdditionalRequirements.label",
|
||||
"descriptionResourceKey": "",
|
||||
"entityKey": "requirementRulesSummary",
|
||||
"dataType": 20,
|
||||
"entityKey": "requirementRulesTranslated",
|
||||
"dataType": 21,
|
||||
"booleanActions": 0,
|
||||
"category": "Win32Requirements.selectorLabel"
|
||||
},
|
||||
@@ -908,10 +1026,24 @@
|
||||
"category": "DetectionRules.selectorLabel"
|
||||
},
|
||||
{
|
||||
"Columns": [
|
||||
{
|
||||
"metadata": {
|
||||
"entityKey": "property",
|
||||
"nameResourceKey": "ApplicabilityRules.GridLabel.property"
|
||||
}
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"entityKey": "value",
|
||||
"nameResourceKey": "ApplicabilityRules.GridLabel.value"
|
||||
}
|
||||
}
|
||||
],
|
||||
"nameResourceKey": "DetectionRules.selectorLabel",
|
||||
"descriptionResourceKey": "",
|
||||
"entityKey": "detectionRulesSummary",
|
||||
"dataType": 20,
|
||||
"entityKey": "detectionRulesTranslated",
|
||||
"dataType": 21,
|
||||
"booleanActions": 0,
|
||||
"category": "DetectionRules.selectorLabel",
|
||||
"Condition": {
|
||||
@@ -923,7 +1055,7 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
"nameResourceKey": "",
|
||||
"descriptionResourceKey": "",
|
||||
|
||||
@@ -80,7 +80,7 @@
|
||||
"value": "azureAD"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -99,40 +99,62 @@
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
},
|
||||
{
|
||||
"nameResourceKey": "Autopilot.OOBE.language",
|
||||
"descriptionResourceKey": "",
|
||||
"dataType": 102,
|
||||
"category": "Autopilot.OOBE.title",
|
||||
"entityKey": "language",
|
||||
"booleanActions": 0
|
||||
},
|
||||
"booleanActions": 0,
|
||||
"ChildSettings": [
|
||||
{
|
||||
"nameResourceKey": "Autopilot.OOBE.title",
|
||||
"descriptionResourceKey": "",
|
||||
"entityKey": "outOfBoxExperienceSettings",
|
||||
"dataType": 6,
|
||||
"booleanActions": 0,
|
||||
"category": "Autopilot.OOBE.title",
|
||||
"Condition": {
|
||||
"Expressions": [
|
||||
{
|
||||
"property": "language",
|
||||
"operator": "ne",
|
||||
"value": "user-select"
|
||||
}
|
||||
]
|
||||
},
|
||||
"complexOptions": [
|
||||
{
|
||||
"nameResourceKey": "Autopilot.OOBE.skipKeyboardSelection",
|
||||
"descriptionResourceKey": "Autopilot.OOBE.skipKeyboardSelectionInfo",
|
||||
"entityKey": "skipKeyboardSelectionPage",
|
||||
"dataType": 0,
|
||||
"booleanActions": 109,
|
||||
"category": "Autopilot.OOBE.title",
|
||||
"Condition": {
|
||||
"type": "or",
|
||||
"Expressions": [
|
||||
{
|
||||
"property": "isLanguageSet",
|
||||
"value": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"nameResourceKey": "Autopilot.OOBE.title",
|
||||
"descriptionResourceKey": "",
|
||||
"entityKey": "outOfBoxExperienceSettings",
|
||||
"dataType": 6,
|
||||
"skipAddLevel": true,
|
||||
"booleanActions": 0,
|
||||
"category": "Autopilot.OOBE.title",
|
||||
"complexOptions": [
|
||||
{
|
||||
"nameResourceKey": "Autopilot.OOBE.skipKeyboardSelection",
|
||||
"descriptionResourceKey": "Autopilot.OOBE.skipKeyboardSelectionInfo",
|
||||
"entityKey": "skipKeyboardSelectionPage",
|
||||
"dataType": 0,
|
||||
"booleanActions": 109,
|
||||
"category": "Autopilot.OOBE.title",
|
||||
"Condition": {
|
||||
"type": "or",
|
||||
"Expressions": [
|
||||
{
|
||||
"property": "isLanguageSet",
|
||||
"value": true
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"complexOptions": [
|
||||
{
|
||||
"nameResourceKey": "Autopilot.OOBE.licenseAgreement",
|
||||
"descriptionResourceKey": "Autopilot.OOBE.licenseAgreementInfo",
|
||||
@@ -148,7 +170,7 @@
|
||||
"dataType": 0,
|
||||
"booleanActions": 108,
|
||||
"category": "Autopilot.OOBE.title"
|
||||
},
|
||||
},
|
||||
{
|
||||
"nameResourceKey": "Autopilot.OOBE.hideEscapeLink",
|
||||
"descriptionResourceKey": "Autopilot.OOBE.hideEscapeLinkInfo",
|
||||
@@ -174,7 +196,7 @@
|
||||
"value": "administrator"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
@@ -184,12 +206,12 @@
|
||||
"dataType": 0,
|
||||
"booleanActions": 109,
|
||||
"category": "Autopilot.OOBE.title"
|
||||
},
|
||||
},
|
||||
{
|
||||
"nameResourceKey": "Autopilot.OOBE.ApplyComputerNameTemplate.label",
|
||||
"descriptionResourceKey": "Autopilot.OOBE.ApplyComputerNameTemplate.infoBalloon",
|
||||
"entityKey": "applyDeviceNameTemplate",
|
||||
"dataType": 103,
|
||||
"dataType": 0,
|
||||
"booleanActions": 109,
|
||||
"category": "Autopilot.OOBE.title",
|
||||
"ChildSettings": [
|
||||
|
||||
@@ -5,7 +5,7 @@
|
||||
"entityKey": "versionInfo",
|
||||
"dataType": 20,
|
||||
"booleanActions": 0,
|
||||
"category": 103
|
||||
"category": "TableHeaders.settings"
|
||||
},
|
||||
{
|
||||
"nameResourceKey": "SoftwareUpdates.IosUpdatePolicy.Settings.Schedule.label",
|
||||
@@ -13,7 +13,7 @@
|
||||
"entityKey": "updateScheduleType",
|
||||
"dataType": 16,
|
||||
"booleanActions": 0,
|
||||
"category": 103,
|
||||
"category": "TableHeaders.settings",
|
||||
"options": [
|
||||
{
|
||||
"nameResourceKey": "SoftwareUpdates.IosUpdatePolicy.Settings.Schedule.outsideActiveHours",
|
||||
@@ -39,7 +39,7 @@
|
||||
},
|
||||
{
|
||||
"dataType": 16,
|
||||
"category": 103,
|
||||
"category": "TableHeaders.settings",
|
||||
"nameResourceKey": "timeZoneName",
|
||||
"descriptionResourceKey": "timeZoneDescription",
|
||||
"childSettings": [
|
||||
@@ -249,6 +249,6 @@
|
||||
"entityKey": "timeWidows",
|
||||
"dataType": 20,
|
||||
"booleanActions": 0,
|
||||
"category": 103
|
||||
"category": "TableHeaders.settings"
|
||||
}
|
||||
]
|
||||
+10
-10
@@ -13,7 +13,7 @@
|
||||
"entityKey": "showInstallationProgress",
|
||||
"dataType": 0,
|
||||
"booleanActions": 109,
|
||||
"category": 103
|
||||
"category": "TableHeaders.settings"
|
||||
},
|
||||
{
|
||||
"nameResourceKey": "EnrollmentStatusScreen.timeout",
|
||||
@@ -21,7 +21,7 @@
|
||||
"entityKey": "installProgressTimeoutInMinutes",
|
||||
"dataType": 14,
|
||||
"booleanActions": 0,
|
||||
"category": 103
|
||||
"category": "TableHeaders.settings"
|
||||
},
|
||||
{
|
||||
"nameResourceKey": "EnrollmentStatusScreen.customMessageToggle",
|
||||
@@ -29,7 +29,7 @@
|
||||
"entityKey": "showCustomErrorMessage",
|
||||
"dataType": 0,
|
||||
"booleanActions": 109,
|
||||
"category": 103
|
||||
"category": "TableHeaders.settings"
|
||||
},
|
||||
{
|
||||
"nameResourceKey": "EnrollmentStatusScreen.customMessageTextBox",
|
||||
@@ -37,7 +37,7 @@
|
||||
"entityKey": "customErrorMessage",
|
||||
"dataType": 20,
|
||||
"booleanActions": 0,
|
||||
"category": 103
|
||||
"category": "TableHeaders.settings"
|
||||
},
|
||||
{
|
||||
"nameResourceKey": "EnrollmentStatusScreen.collectLogToggle",
|
||||
@@ -45,7 +45,7 @@
|
||||
"entityKey": "allowLogCollectionOnInstallFailure",
|
||||
"dataType": 0,
|
||||
"booleanActions": 109,
|
||||
"category": 103
|
||||
"category": "TableHeaders.settings"
|
||||
},
|
||||
{
|
||||
"nameResourceKey": "EnrollmentStatusScreen.enableForAutopilotOnlyToggle",
|
||||
@@ -53,7 +53,7 @@
|
||||
"entityKey": "trackInstallProgressForAutopilotOnly",
|
||||
"dataType": 0,
|
||||
"booleanActions": 109,
|
||||
"category": 103
|
||||
"category": "TableHeaders.settings"
|
||||
},
|
||||
{
|
||||
"nameResourceKey": "EnrollmentStatusScreen.blockToggle",
|
||||
@@ -61,7 +61,7 @@
|
||||
"entityKey": "blockDeviceSetupRetryByUser",
|
||||
"dataType": 16,
|
||||
"booleanActions": 0,
|
||||
"category": 103,
|
||||
"category": "TableHeaders.settings",
|
||||
"options": [
|
||||
{
|
||||
"nameResourceKey": "SettingDetails.no",
|
||||
@@ -77,7 +77,7 @@
|
||||
"entityKey": "allowDeviceResetOnInstallFailure",
|
||||
"dataType": 0,
|
||||
"booleanActions": 109,
|
||||
"category": 103
|
||||
"category": "TableHeaders.settings"
|
||||
},
|
||||
{
|
||||
"nameResourceKey": "EnrollmentStatusScreen.allowToUseToggle",
|
||||
@@ -85,7 +85,7 @@
|
||||
"entityKey": "allowDeviceUseOnInstallFailure",
|
||||
"dataType": 0,
|
||||
"booleanActions": 109,
|
||||
"category": 103
|
||||
"category": "TableHeaders.settings"
|
||||
},
|
||||
{
|
||||
"nameResourceKey": "EnrollmentStatusScreen.Apps.useSelectedAppsToggleLabel",
|
||||
@@ -93,7 +93,7 @@
|
||||
"entityKey": "waitForApps",
|
||||
"dataType": 14,
|
||||
"booleanActions": 0,
|
||||
"category": 103
|
||||
"category": "TableHeaders.settings"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
"entityKey": "deployableContentDisplayName",
|
||||
"dataType": 20,
|
||||
"booleanActions": 0,
|
||||
"category": 103
|
||||
"category": "TableHeaders.settings"
|
||||
},
|
||||
{
|
||||
"nameResourceKey": "WindowsQualityUpdateProfile.Details.DaysUntilForcedReboot.label",
|
||||
@@ -21,13 +21,13 @@
|
||||
"entityKey": "expeditedUpdateSettings",
|
||||
"dataType": 6,
|
||||
"booleanActions": 0,
|
||||
"category": 103,
|
||||
"category": "TableHeaders.settings",
|
||||
"complexOptions": [
|
||||
{
|
||||
"nameResourceKey": "WindowsQualityUpdateProfile.Details.DaysUntilForcedReboot.label",
|
||||
"descriptionResourceKey": "",
|
||||
"dataType": 16,
|
||||
"category": 103,
|
||||
"category": "TableHeaders.settings",
|
||||
"entityKey": "daysUntilForcedReboot",
|
||||
"booleanActions": 0,
|
||||
"options": [
|
||||
|
||||
@@ -44,7 +44,7 @@
|
||||
],
|
||||
"booleanActions": 0,
|
||||
"policyType": 108,
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"dataType": 16,
|
||||
|
||||
-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
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -1078,6 +1078,40 @@
|
||||
"policyType": 2,
|
||||
"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,
|
||||
"showAsSectionHeader": true,
|
||||
@@ -1200,6 +1234,24 @@
|
||||
"defaultValue": false,
|
||||
"policyType": 2,
|
||||
"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": [
|
||||
|
||||
@@ -617,6 +617,23 @@
|
||||
"defaultValue": false,
|
||||
"policyType": 61,
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"dataType": 0,
|
||||
"category": 44,
|
||||
"nameResourceKey": "allowActivationLockWhenSupervisedName",
|
||||
"descriptionResourceKey": "allowActivationLockWhenSupervisedDescription",
|
||||
"childSettings": [
|
||||
|
||||
],
|
||||
"options": [
|
||||
|
||||
],
|
||||
"entityKey": "activationLockWhenSupervisedAllowed",
|
||||
"booleanActions": 9,
|
||||
"defaultValue": false,
|
||||
"policyType": 61,
|
||||
"enabled": true
|
||||
}
|
||||
],
|
||||
"options": [
|
||||
|
||||
@@ -33,20 +33,47 @@
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"dataType": 14,
|
||||
"dataType": 10,
|
||||
"category": 90,
|
||||
"nameResourceKey": "minimumPasswordLengthName",
|
||||
"descriptionResourceKey": "minimumPasswordLengthDescription",
|
||||
"emptyValueResourceKey": "minimumPasswordLengthEmptyValueKeyFourToSixteen",
|
||||
"nameResourceKey": "androidTwelveDeprecationInfoBox",
|
||||
"childSettings": [
|
||||
|
||||
],
|
||||
"options": [
|
||||
|
||||
],
|
||||
"entityKey": "passwordMinimumLength",
|
||||
"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,
|
||||
"enabled": true
|
||||
},
|
||||
@@ -153,64 +180,6 @@
|
||||
"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,
|
||||
@@ -296,6 +265,181 @@
|
||||
"defaultValue": false,
|
||||
"policyType": 13,
|
||||
"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
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
],
|
||||
"booleanActions": 0,
|
||||
"policyType": 69,
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"isSettingDescription": false,
|
||||
@@ -30,7 +30,7 @@
|
||||
],
|
||||
"booleanActions": 0,
|
||||
"policyType": 69,
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"isSettingDescription": false,
|
||||
@@ -46,7 +46,7 @@
|
||||
],
|
||||
"booleanActions": 0,
|
||||
"policyType": 69,
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"isSettingDescription": false,
|
||||
@@ -62,7 +62,7 @@
|
||||
],
|
||||
"booleanActions": 0,
|
||||
"policyType": 69,
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"dataType": 16,
|
||||
@@ -87,7 +87,7 @@
|
||||
"booleanActions": 0,
|
||||
"defaultValue": "notConfigured",
|
||||
"policyType": 69,
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"dataType": 16,
|
||||
@@ -112,7 +112,7 @@
|
||||
"booleanActions": 0,
|
||||
"defaultValue": "notConfigured",
|
||||
"policyType": 69,
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"dataType": 16,
|
||||
@@ -137,7 +137,7 @@
|
||||
"booleanActions": 0,
|
||||
"defaultValue": "notConfigured",
|
||||
"policyType": 69,
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"dataType": 16,
|
||||
@@ -162,7 +162,7 @@
|
||||
"booleanActions": 0,
|
||||
"defaultValue": "notConfigured",
|
||||
"policyType": 69,
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"isSettingDescription": false,
|
||||
@@ -178,7 +178,7 @@
|
||||
],
|
||||
"booleanActions": 0,
|
||||
"policyType": 69,
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"isSettingDescription": false,
|
||||
@@ -194,7 +194,7 @@
|
||||
],
|
||||
"booleanActions": 0,
|
||||
"policyType": 69,
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"dataType": 16,
|
||||
@@ -226,7 +226,7 @@
|
||||
],
|
||||
"booleanActions": 0,
|
||||
"policyType": 69,
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"dataType": 16,
|
||||
@@ -432,7 +432,7 @@
|
||||
"booleanActions": 0,
|
||||
"defaultValue": 0,
|
||||
"policyType": 69,
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"columns": [
|
||||
@@ -484,7 +484,7 @@
|
||||
"entityKey": "startDay",
|
||||
"booleanActions": 0,
|
||||
"policyType": 69,
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -620,7 +620,7 @@
|
||||
"entityKey": "startTime",
|
||||
"booleanActions": 0,
|
||||
"policyType": 69,
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -671,7 +671,7 @@
|
||||
"entityKey": "endDay",
|
||||
"booleanActions": 0,
|
||||
"policyType": 69,
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -808,7 +808,7 @@
|
||||
"entityKey": "endTime",
|
||||
"booleanActions": 0,
|
||||
"policyType": 69,
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
}
|
||||
}
|
||||
],
|
||||
@@ -825,7 +825,7 @@
|
||||
"entityKey": "customUpdateTimeWindows",
|
||||
"booleanActions": 0,
|
||||
"policyType": 69,
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
}
|
||||
],
|
||||
"enabled": true
|
||||
@@ -846,7 +846,7 @@
|
||||
],
|
||||
"booleanActions": 0,
|
||||
"policyType": 69,
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"dataType": 16,
|
||||
@@ -1052,7 +1052,7 @@
|
||||
"booleanActions": 0,
|
||||
"defaultValue": 0,
|
||||
"policyType": 69,
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"columns": [
|
||||
@@ -1104,7 +1104,7 @@
|
||||
"entityKey": "startDay",
|
||||
"booleanActions": 0,
|
||||
"policyType": 69,
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -1240,7 +1240,7 @@
|
||||
"entityKey": "startTime",
|
||||
"booleanActions": 0,
|
||||
"policyType": 69,
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -1291,7 +1291,7 @@
|
||||
"entityKey": "endDay",
|
||||
"booleanActions": 0,
|
||||
"policyType": 69,
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
}
|
||||
},
|
||||
{
|
||||
@@ -1428,7 +1428,7 @@
|
||||
"entityKey": "endTime",
|
||||
"booleanActions": 0,
|
||||
"policyType": 69,
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
}
|
||||
}
|
||||
],
|
||||
@@ -1445,7 +1445,7 @@
|
||||
"entityKey": "customUpdateTimeWindows",
|
||||
"booleanActions": 0,
|
||||
"policyType": 69,
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
}
|
||||
],
|
||||
"enabled": true
|
||||
@@ -1456,7 +1456,7 @@
|
||||
"defaultValue": "alwaysUpdate",
|
||||
"unconfiguredValue": "alwaysUpdate",
|
||||
"policyType": 69,
|
||||
"enabled": false
|
||||
"enabled": true
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -1,451 +1,5 @@
|
||||
{
|
||||
"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,
|
||||
"showAsSectionHeader": false,
|
||||
@@ -576,6 +130,410 @@
|
||||
"booleanActions": 0,
|
||||
"policyType": 30,
|
||||
"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
|
||||
},
|
||||
{
|
||||
"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",
|
||||
|
||||
@@ -1683,303 +1683,6 @@
|
||||
}
|
||||
],
|
||||
"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",
|
||||
|
||||
@@ -559,6 +559,34 @@
|
||||
"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": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"dataType": 14,
|
||||
@@ -2276,6 +2304,34 @@
|
||||
"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": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"dataType": 14,
|
||||
@@ -3993,6 +4049,34 @@
|
||||
"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": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"dataType": 14,
|
||||
@@ -5710,6 +5794,34 @@
|
||||
"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": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"dataType": 14,
|
||||
@@ -7915,6 +8027,34 @@
|
||||
"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": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"dataType": 14,
|
||||
@@ -9632,6 +9772,34 @@
|
||||
"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": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"dataType": 14,
|
||||
@@ -11349,6 +11517,34 @@
|
||||
"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": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"dataType": 14,
|
||||
@@ -13051,6 +13247,34 @@
|
||||
"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": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"dataType": 14,
|
||||
@@ -15141,6 +15365,34 @@
|
||||
"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": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"dataType": 14,
|
||||
@@ -16843,6 +17095,34 @@
|
||||
"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": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"dataType": 14,
|
||||
@@ -18545,6 +18825,34 @@
|
||||
"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": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"dataType": 14,
|
||||
@@ -20289,6 +20597,34 @@
|
||||
"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": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"dataType": 14,
|
||||
@@ -22006,6 +22342,34 @@
|
||||
"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": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"dataType": 14,
|
||||
@@ -23723,6 +24087,34 @@
|
||||
"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": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"dataType": 14,
|
||||
@@ -25440,6 +25832,34 @@
|
||||
"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": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"dataType": 14,
|
||||
@@ -27645,6 +28065,34 @@
|
||||
"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": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"dataType": 14,
|
||||
@@ -29362,6 +29810,34 @@
|
||||
"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": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"dataType": 14,
|
||||
@@ -31079,6 +31555,34 @@
|
||||
"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": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"dataType": 14,
|
||||
@@ -32781,6 +33285,34 @@
|
||||
"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": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"dataType": 14,
|
||||
@@ -34871,6 +35403,34 @@
|
||||
"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": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"dataType": 14,
|
||||
@@ -36573,6 +37133,34 @@
|
||||
"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": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"dataType": 14,
|
||||
@@ -38275,6 +38863,34 @@
|
||||
"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": false
|
||||
}
|
||||
},
|
||||
{
|
||||
"metadata": {
|
||||
"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,
|
||||
"category": 140,
|
||||
"nameResourceKey": "webContentFilterTypePermittedUrlsColumnName",
|
||||
"emptyValueResourceKey": "WebContentFilterWhiteListedUrlExample",
|
||||
"emptyValueResourceKey": "WebContentFilterPermittedUrlExample",
|
||||
"childSettings": [
|
||||
|
||||
],
|
||||
@@ -86,7 +86,7 @@
|
||||
"dataType": 20,
|
||||
"category": 140,
|
||||
"nameResourceKey": "webContentFilterTypeBlockedUrlsColumnName",
|
||||
"emptyValueResourceKey": "WebContentFilterBlackListedUrlExample",
|
||||
"emptyValueResourceKey": "WebContentFilterBlockedUrlExample",
|
||||
"childSettings": [
|
||||
|
||||
],
|
||||
@@ -119,7 +119,7 @@
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"nameResourceKey": "webContentFilterTypeWhitelistedUrlsOption",
|
||||
"nameResourceKey": "webContentFilterTypePermittedUrlsOption",
|
||||
"value": "#microsoft.graph.iosWebContentFilterSpecificWebsitesAccess",
|
||||
"children": [
|
||||
{
|
||||
@@ -127,7 +127,7 @@
|
||||
"showAsSectionHeader": false,
|
||||
"dataType": 8,
|
||||
"category": 140,
|
||||
"nameResourceKey": "webContentFilterTypeWhitelistedUrlsHeaderName",
|
||||
"nameResourceKey": "webContentFilterTypePermittedUrlsHeaderName",
|
||||
"descriptionResourceKey": "empty",
|
||||
"childSettings": [
|
||||
|
||||
@@ -144,7 +144,7 @@
|
||||
"showAsSectionHeader": false,
|
||||
"dataType": 8,
|
||||
"category": 140,
|
||||
"nameResourceKey": "webContentFilterTypeWhitelistedUrlsLinkTextName",
|
||||
"nameResourceKey": "webContentFilterTypePermittedUrlsLinkTextName",
|
||||
"descriptionResourceKey": "empty",
|
||||
"childSettings": [
|
||||
|
||||
@@ -162,7 +162,7 @@
|
||||
"metadata": {
|
||||
"dataType": 20,
|
||||
"category": 140,
|
||||
"nameResourceKey": "webContentFilterTypeWhitelistedUrlsColumnUrlName",
|
||||
"nameResourceKey": "webContentFilterTypePermittedUrlsColumnUrlName",
|
||||
"emptyValueResourceKey": "kioskModeAppStoreExample",
|
||||
"childSettings": [
|
||||
|
||||
@@ -180,7 +180,7 @@
|
||||
"metadata": {
|
||||
"dataType": 20,
|
||||
"category": 140,
|
||||
"nameResourceKey": "webContentFilterTypeWhitelistedUrlsColumnBookmarkPathName",
|
||||
"nameResourceKey": "webContentFilterTypePermittedUrlsColumnBookmarkPathName",
|
||||
"emptyValueResourceKey": "WebContentFilterBookmarkPathExample",
|
||||
"childSettings": [
|
||||
|
||||
@@ -198,7 +198,7 @@
|
||||
"metadata": {
|
||||
"dataType": 20,
|
||||
"category": 140,
|
||||
"nameResourceKey": "webContentFilterTypeWhitelistedUrlsColumnTitleName",
|
||||
"nameResourceKey": "webContentFilterTypePermittedUrlsColumnTitleName",
|
||||
"emptyValueResourceKey": "WebContentFilterBookmarkTitleExample",
|
||||
"childSettings": [
|
||||
|
||||
@@ -215,8 +215,8 @@
|
||||
],
|
||||
"dataType": 21,
|
||||
"category": 140,
|
||||
"nameResourceKey": "webContentFilterTypeWhitelistedUrlsTableName",
|
||||
"descriptionResourceKey": "webContentFilterTypeWhitelistedUrlsTableDescription",
|
||||
"nameResourceKey": "webContentFilterTypeSpecificUrlsTableName",
|
||||
"descriptionResourceKey": "webContentFilterTypeSpecificUrlsTableDescription",
|
||||
"childSettings": [
|
||||
|
||||
],
|
||||
|
||||
@@ -125,6 +125,748 @@
|
||||
],
|
||||
"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",
|
||||
"value": "eapTls",
|
||||
@@ -794,7 +1536,7 @@
|
||||
"entityKey": "eapType",
|
||||
"booleanActions": 0,
|
||||
"policyType": 68,
|
||||
"enabled": true
|
||||
"enabled": false
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
@@ -183,7 +183,77 @@
|
||||
"booleanActions": 3,
|
||||
"defaultValue": false,
|
||||
"policyType": 13,
|
||||
"enabled": true
|
||||
"enabled": false
|
||||
},
|
||||
{
|
||||
"dataType": 16,
|
||||
"category": 127,
|
||||
"nameResourceKey": "blockAddingAccountsName",
|
||||
"descriptionResourceKey": "blockAddingAccountsDescription",
|
||||
"childSettings": [
|
||||
|
||||
],
|
||||
"options": [
|
||||
{
|
||||
"nameResourceKey": "allowAllAccountsExceptGoogle",
|
||||
"value": "allowAllExceptGoogleAccounts",
|
||||
"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,
|
||||
@@ -304,29 +374,56 @@
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"dataType": 0,
|
||||
"dataType": 10,
|
||||
"category": 127,
|
||||
"nameResourceKey": "workProfileRequirePasswordName",
|
||||
"descriptionResourceKey": "workProfileRequirePasswordDescription",
|
||||
"nameResourceKey": "androidTwelveDeprecationInfoBox",
|
||||
"childSettings": [
|
||||
|
||||
],
|
||||
"options": [
|
||||
|
||||
],
|
||||
"booleanActions": 0,
|
||||
"policyType": 13,
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"isSettingDescription": false,
|
||||
"showAsSectionHeader": true,
|
||||
"dataType": 8,
|
||||
"category": 127,
|
||||
"nameResourceKey": "allAndroidVersionsPasswordHeader",
|
||||
"childSettings": [
|
||||
{
|
||||
"dataType": 14,
|
||||
"isSettingDescription": false,
|
||||
"showAsSectionHeader": false,
|
||||
"dataType": 8,
|
||||
"category": 127,
|
||||
"nameResourceKey": "workProfileMinimumPasswordLengthName",
|
||||
"descriptionResourceKey": "workProfileMinimumPasswordLengthDescription",
|
||||
"emptyValueResourceKey": "workProfileMinimumPasswordLengthEmptyValueKey",
|
||||
"nameResourceKey": "allAndroidVersionsPasswordHeaderDescription",
|
||||
"childSettings": [
|
||||
|
||||
],
|
||||
"options": [
|
||||
|
||||
],
|
||||
"entityKey": "workProfilePasswordMinimumLength",
|
||||
"booleanActions": 0,
|
||||
"defaultValue": 4,
|
||||
"policyType": 13,
|
||||
"enabled": true
|
||||
},
|
||||
}
|
||||
],
|
||||
"options": [
|
||||
|
||||
],
|
||||
"booleanActions": 0,
|
||||
"policyType": 13,
|
||||
"enabled": true
|
||||
},
|
||||
{
|
||||
"dataType": 0,
|
||||
"category": 127,
|
||||
"nameResourceKey": "workProfileRequirePasswordName",
|
||||
"descriptionResourceKey": "workProfileRequirePasswordDescription",
|
||||
"childSettings": [
|
||||
{
|
||||
"dataType": 16,
|
||||
"category": 127,
|
||||
@@ -430,6 +527,191 @@
|
||||
"policyType": 13,
|
||||
"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
|
||||
},
|
||||
{
|
||||
"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,
|
||||
"category": 127,
|
||||
@@ -549,86 +831,18 @@
|
||||
{
|
||||
"dataType": 14,
|
||||
"category": 127,
|
||||
"nameResourceKey": "workProfileNumberOfPreviousPasswordsToBlockName",
|
||||
"descriptionResourceKey": "workProfileNumberOfPreviousPasswordsToBlockDescription",
|
||||
"emptyValueResourceKey": "workProfileNumberOfPreviousPasswordsToBlockEmptyValueKey",
|
||||
"nameResourceKey": "workProfileMinimumPasswordLengthName",
|
||||
"descriptionResourceKey": "workProfileMinimumPasswordLengthDescription",
|
||||
"emptyValueResourceKey": "workProfileMinimumPasswordLengthEmptyValueKey",
|
||||
"childSettings": [
|
||||
|
||||
],
|
||||
"options": [
|
||||
|
||||
],
|
||||
"entityKey": "workProfilePasswordPreviousPasswordBlockCount",
|
||||
"entityKey": "workProfilePasswordMinimumLength",
|
||||
"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,
|
||||
"defaultValue": 4,
|
||||
"policyType": 13,
|
||||
"enabled": true
|
||||
}
|
||||
|
||||
+248
-99
File diff suppressed because it is too large
Load Diff
+247
-98
File diff suppressed because it is too large
Load Diff
+239
-90
File diff suppressed because it is too large
Load Diff
+251
-102
File diff suppressed because it is too large
Load Diff
+277
-128
File diff suppressed because it is too large
Load Diff
+248
-99
File diff suppressed because it is too large
Load Diff
+249
-100
File diff suppressed because it is too large
Load Diff
+249
-100
File diff suppressed because it is too large
Load Diff
+250
-101
File diff suppressed because it is too large
Load Diff
+249
-100
File diff suppressed because it is too large
Load Diff
+247
-98
File diff suppressed because it is too large
Load Diff
+239
-90
File diff suppressed because it is too large
Load Diff
+249
-100
File diff suppressed because it is too large
Load Diff
+248
-99
File diff suppressed because it is too large
Load Diff
+248
-99
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
+239
-90
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
|
||||
{
|
||||
'1.0.9'
|
||||
'1.0.11'
|
||||
}
|
||||
|
||||
function Invoke-InitializeModule
|
||||
@@ -422,8 +422,8 @@ function Invoke-BulkCompareNamedObjects
|
||||
Write-Log "Compare $($item.ObjectType.Title) objects"
|
||||
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"
|
||||
|
||||
foreach($graphObj in ($graphObjects | Where { $_.Object."$($nameProp)" -imatch [regex]::Escape($sourcePattern) }))
|
||||
@@ -516,7 +516,11 @@ function Start-BulkCompareExportObjects
|
||||
Write-Log "****************************************************************"
|
||||
$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")
|
||||
|
||||
$compareProps = $script:defaultCompareProps
|
||||
@@ -561,7 +565,7 @@ function Start-BulkCompareExportObjects
|
||||
{
|
||||
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))
|
||||
{
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
function Get-ModuleVersion
|
||||
{
|
||||
'1.0.1'
|
||||
'1.0.2'
|
||||
}
|
||||
|
||||
function Invoke-InitializeModule
|
||||
@@ -106,7 +106,7 @@ function Start-BulkCopyObjects
|
||||
Write-Log "Copy $($item.ObjectType.Title) objects"
|
||||
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"
|
||||
|
||||
|
||||
+910
-338
File diff suppressed because it is too large
Load Diff
@@ -10,7 +10,7 @@ This module will also document some objects based on PowerShell functions
|
||||
|
||||
function Get-ModuleVersion
|
||||
{
|
||||
'1.4.0'
|
||||
'1.6.0'
|
||||
}
|
||||
|
||||
function Invoke-InitializeModule
|
||||
@@ -27,6 +27,7 @@ function Invoke-InitializeModule
|
||||
PostAddValue = { Invoke-CDDocumentCustomPostAdd @args }
|
||||
ObjectDocumented = { Invoke-CDDocumentCustomObjectDocumented @args }
|
||||
TranslateSectionFile = { Invoke-CDDocumentTranslateSectionFile @args }
|
||||
PostSettingsCatalog = { Invoke-CDDocumentPostSettingsCatalog @args }
|
||||
})
|
||||
}
|
||||
|
||||
@@ -150,11 +151,16 @@ function Invoke-CDDocumentObject
|
||||
}
|
||||
elseif($type -eq '#microsoft.graph.deviceComplianceScript')
|
||||
{
|
||||
Invoke-CDDocumentdeviceComplianceScript $documentationObj
|
||||
Invoke-CDDocumentDeviceComplianceScript $documentationObj
|
||||
return [PSCustomObject]@{
|
||||
Properties = @("Name","Value","Category","SubCategory")
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif($type -eq '#microsoft.graph.roleScopeTag')
|
||||
{
|
||||
Invoke-CDDocumentScopeTag $documentationObj
|
||||
return $true
|
||||
}
|
||||
}
|
||||
|
||||
function Get-CDAllManagedApps
|
||||
@@ -810,7 +816,13 @@ function Add-CDDocumentCustomProfileProperty
|
||||
|
||||
$obj.outOfBoxExperienceSettings | Add-Member Noteproperty -Name "azureADJoinType" -Value $joinType
|
||||
|
||||
$obj.outOfBoxExperienceSettings | Add-Member Noteproperty -Name "isLanguageSet" -Value (?: ([String]::IsNullOrEmpty($obj.language)) $false $true)
|
||||
$obj.outOfBoxExperienceSettings | Add-Member Noteproperty -Name "isLanguageSet" -Value (?: ([String]::IsNullOrEmpty($obj.language)) $false $true)
|
||||
|
||||
if([String]::IsNullOrEmpty($obj.language))
|
||||
{
|
||||
$obj.language = "user-select"
|
||||
}
|
||||
|
||||
$retValue = $true
|
||||
}
|
||||
elseif($obj.'@OData.Type' -eq "#microsoft.graph.officeSuiteApp")
|
||||
@@ -1186,9 +1198,15 @@ function Add-CDDocumentCustomProfileProperty
|
||||
$requirementRulesSummary = @()
|
||||
$detectionRulesSummary = @()
|
||||
$returnCodes = @()
|
||||
$detectionRules = @()
|
||||
$requirementRules = @()
|
||||
foreach($rc in $obj.returnCodes)
|
||||
{
|
||||
$returnCodes += ("{0} {1}" -f @($rc.returnCode,(Get-LanguageString "Win32ReturnCodes.CodeTypes.$($rc.type)")))
|
||||
$returnCodes += [PSCustomObject]@{
|
||||
returnCode = $rc.returnCode
|
||||
type = (Get-LanguageString "Win32ReturnCodes.CodeTypes.$($rc.type)")
|
||||
}
|
||||
#$returnCodes += ("{0} {1}" -f @($rc.returnCode,(Get-LanguageString "Win32ReturnCodes.CodeTypes.$($rc.type)")))
|
||||
}
|
||||
|
||||
$dependencyApps = @()
|
||||
@@ -1226,17 +1244,26 @@ function Add-CDDocumentCustomProfileProperty
|
||||
{
|
||||
$lngId = "script"
|
||||
$textValue = $rule.displayName
|
||||
Add-ObjectScript $rule.displayName ("{0} - {1}" -f @($obj.displayName, "Requirement script")) $rule.ScriptContent
|
||||
}
|
||||
$requirementRulesSummary += ("{0} {1}" -f @((Get-LanguageString "Win32Requirements.AdditionalRequirements.RequirementTypeOptions.$lngId"),$textValue))
|
||||
|
||||
$requirementRules += Add-CDDocumentRequirementRule $rule
|
||||
}
|
||||
|
||||
if(($obj.detectionRules | Where '@OData.Type' -eq "#microsoft.graph.win32LobAppPowerShellScriptDetection"))
|
||||
{
|
||||
$detectionRulesType = Get-LanguageString "DetectionRules.RuleConfigurationOptions.customScript"
|
||||
foreach($rule in $obj.detectionRules)
|
||||
{
|
||||
$header = (Get-LanguageString "ProactiveRemediations.Create.Settings.DetectionScriptMultiLineTextBox.label")
|
||||
Add-ObjectScript $header ("{0} - {1}" -f @($obj.displayName,$header)) $rule.ScriptContent
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$detectionRulesType = Get-LanguageString "DetectionRules.RuleConfigurationOptions.manual"
|
||||
|
||||
foreach($rule in $obj.detectionRules)
|
||||
{
|
||||
if($rule.'@OData.Type' -eq "#microsoft.graph.win32LobAppFileSystemDetection")
|
||||
@@ -1254,15 +1281,21 @@ function Add-CDDocumentCustomProfileProperty
|
||||
$lngId = "mSI"
|
||||
$textValue = $rule.productCode
|
||||
}
|
||||
|
||||
$detectionRulesSummary += ("{0} {1}" -f @((Get-LanguageString "DetectionRules.Manual.RuleTypeOptions.$lngId"),$textValue))
|
||||
|
||||
$detectionRules += Add-CDDocumentDetectionRule $rule
|
||||
}
|
||||
}
|
||||
|
||||
$obj | Add-Member Noteproperty -Name "requirementRulesSummary" -Value ($requirementRulesSummary -join $objSeparator) -Force
|
||||
$obj | Add-Member Noteproperty -Name "detectionRulesSummary" -Value ($detectionRulesSummary -join $objSeparator) -Force
|
||||
$obj | Add-Member Noteproperty -Name "dependencyApps" -Value ($dependencyApps -join $objSeparator) -Force
|
||||
$obj | Add-Member Noteproperty -Name "supersededApps" -Value ($supersededApps -join $objSeparator) -Force
|
||||
$obj | Add-Member Noteproperty -Name "detectionRulesType" -Value $detectionRulesType -Force
|
||||
$obj | Add-Member Noteproperty -Name "returnCodes" -Value ($returnCodes -join $objSeparator) -Force
|
||||
$obj | Add-Member Noteproperty -Name "requirementRulesTranslated" -Value $requirementRules -Force
|
||||
$obj | Add-Member Noteproperty -Name "detectionRulesTranslated" -Value $detectionRules -Force
|
||||
$obj | Add-Member Noteproperty -Name "returnCodes" -Value $returnCodes -Force
|
||||
$obj | Add-Member Noteproperty -Name "win10Release" -Value (Get-LanguageString "MinimumOperatingSystem.Windows.V10Release.release$($obj.minimumSupportedWindowsRelease)") -Force
|
||||
}
|
||||
elseif($obj.'@OData.Type' -eq "#microsoft.graph.deviceHealthScript")
|
||||
@@ -1274,12 +1307,29 @@ function Add-CDDocumentCustomProfileProperty
|
||||
if($obj.detectionScriptContent)
|
||||
{
|
||||
$obj | Add-Member Noteproperty -Name "detectionScriptContentString" -Value ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String(($obj.detectionScriptContent))))
|
||||
$header = Get-LanguageString "ProactiveRemediations.Create.Settings.DetectionScriptMultiLineTextBox.label"
|
||||
Add-ObjectScript $header ("{1} - {0}" -f $obj.displayName,$header) $obj.detectionScriptContent
|
||||
}
|
||||
if($obj.remediationScriptContent)
|
||||
{
|
||||
$obj | Add-Member Noteproperty -Name "remediationScriptContentString" -Value ([System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String(($obj.remediationScriptContent))))
|
||||
$header = Get-LanguageString "ProactiveRemediations.Create.Settings.RemediationScriptMultiLineTextBox.label"
|
||||
Add-ObjectScript $header ("{1} - {0}" -f $obj.displayName,$header) $obj.remediationScriptContent
|
||||
}
|
||||
}
|
||||
elseif($obj.'@OData.Type' -eq "#microsoft.graph.deviceManagementScript")
|
||||
{
|
||||
if($obj.ScriptContent)
|
||||
{
|
||||
Add-ObjectScript $obj.FileName ("{1} - {0}" -f $obj.displayName,(Get-LanguageString "WindowsManagement.powerShellScriptObjectName")) $obj.ScriptContent
|
||||
}
|
||||
}
|
||||
elseif($obj.'@OData.Type' -eq "#microsoft.graph.deviceShellScript")
|
||||
{
|
||||
if($obj.ScriptContent)
|
||||
{
|
||||
Add-ObjectScript $obj.FileName ("{1} - {0}" -f $obj.displayName,(Get-LanguageString "WindowsManagement.shellScriptObjectName")) $rule.ScriptContent
|
||||
}
|
||||
|
||||
}
|
||||
elseif($obj.'@OData.Type' -eq "#microsoft.graph.windows10TeamGeneralConfiguration")
|
||||
{
|
||||
@@ -1313,6 +1363,13 @@ function Add-CDDocumentCustomProfileProperty
|
||||
$obj | Add-Member Noteproperty -Name "hasForceRestart" -Value $true
|
||||
}
|
||||
}
|
||||
elseif($obj.'@OData.Type' -like "#microsoft.graph.windowsWifiConfiguration")
|
||||
{
|
||||
if($obj.wifiSecurityType -eq "wpa2Personal")
|
||||
{
|
||||
$obj.preSharedKey = "********"
|
||||
}
|
||||
}
|
||||
|
||||
if(($obj.PSObject.Properties | where Name -eq "securityRequireSafetyNetAttestationBasicIntegrity") -and
|
||||
($obj.PSObject.Properties | where Name -eq "securityRequireSafetyNetAttestationCertifiedDevice"))
|
||||
@@ -1332,6 +1389,7 @@ function Add-CDDocumentCustomProfileProperty
|
||||
$retValue = $true
|
||||
}
|
||||
|
||||
|
||||
if(($obj.PSObject.Properties | Where Name -eq "periodOfflineBeforeWipeIsEnforced"))
|
||||
{
|
||||
#Conditional Launch settings for AppProtection policies
|
||||
@@ -1377,6 +1435,390 @@ function Add-CDDocumentCustomProfileProperty
|
||||
return $retValue
|
||||
}
|
||||
|
||||
function Add-CDDocumentRequirementRule
|
||||
{
|
||||
param($rule)
|
||||
|
||||
$strYes = Get-LanguageString "SettingDetails.yes"
|
||||
$strNo = Get-LanguageString "SettingDetails.no"
|
||||
|
||||
$ruleInfo = @()
|
||||
|
||||
if($rule.'@OData.Type' -eq "#microsoft.graph.win32LobAppFileSystemRequirement")
|
||||
{
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "Win32Requirements.AdditionalRequirements.requirementType")
|
||||
value = (Get-LanguageString "Win32Requirements.AdditionalRequirements.RequirementTypeOptions.fileType")
|
||||
}
|
||||
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "DetectionRules.Manual.FileRule.path")
|
||||
value = $rule.path
|
||||
}
|
||||
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "DetectionRules.Manual.FileRule.fileOrFolder")
|
||||
value = $rule.fileOrFolderName
|
||||
}
|
||||
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "Win32Requirements.AdditionalRequirements.File.property")
|
||||
value = switch($rule.detectionType)
|
||||
{
|
||||
"createdDate" { (Get-LanguageString "DetectionRules.Manual.FileRule.DetectionMethodOptions.dateCreated") }
|
||||
"modifiedDate" { (Get-LanguageString "DetectionRules.Manual.FileRule.DetectionMethodOptions.dateModified") }
|
||||
"doesNotExist" { (Get-LanguageString "DetectionRules.Manual.FileRule.DetectionMethodOptions.doesNotExist") }
|
||||
"exists" { (Get-LanguageString "DetectionRules.Manual.FileRule.DetectionMethodOptions.fileOrFolderExists") }
|
||||
"sizeInMB" { (Get-LanguageString "DetectionRules.Manual.FileRule.DetectionMethodOptions.sizeInMB") }
|
||||
"version" { (Get-LanguageString "DetectionRules.Manual.FileRule.DetectionMethodOptions.version") }
|
||||
Default { Get-LanguageString "BooleanActions.notConfigured" }
|
||||
}
|
||||
}
|
||||
|
||||
if($rule.detectionValue -and $rule.operator)
|
||||
{
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "DetectionRules.Manual.FileRule.operator")
|
||||
value = (Get-CDDocumentOperatorString $rule.operator)
|
||||
}
|
||||
|
||||
$detectionValue = $rule.detectionValue
|
||||
if($rule.detectionType -eq "createdDate" -or $rule.detectionType -eq "modifiedDate")
|
||||
{
|
||||
try {
|
||||
$tmpDate = Get-Date $rule.detectionValue
|
||||
$detectionValue = $tmpDate.ToString()
|
||||
} catch {}
|
||||
}
|
||||
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "DetectionRules.Manual.FileRule.value")
|
||||
value = $detectionValue
|
||||
}
|
||||
}
|
||||
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "DetectionRules.Manual.RegistryRule.associatedWith32Bit")
|
||||
value = (?: ($rule.check32BitOn64System -eq $true) ($strYes) ($strNo))
|
||||
}
|
||||
}
|
||||
elseif($rule.'@OData.Type' -eq "#microsoft.graph.win32LobAppRegistryRequirement")
|
||||
{
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "Win32Requirements.AdditionalRequirements.requirementType")
|
||||
value = (Get-LanguageString "Win32Requirements.AdditionalRequirements.RequirementTypeOptions.registry")
|
||||
}
|
||||
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "Win32Requirements.AdditionalRequirements.Registry.keyPath")
|
||||
value = $rule.keyPath
|
||||
}
|
||||
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "Win32Requirements.AdditionalRequirements.Registry.valueName")
|
||||
value = $rule.valueName
|
||||
}
|
||||
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "Win32Requirements.AdditionalRequirements.Registry.registryRequirement")
|
||||
value = switch($rule.detectionType)
|
||||
{
|
||||
"doesNotExist"
|
||||
{
|
||||
if($rule.valueName)
|
||||
{
|
||||
(Get-LanguageString "DetectionRules.Manual.RegistryRule.DetectionMethodOptions.valueDoesNotExist")
|
||||
}
|
||||
else
|
||||
{
|
||||
(Get-LanguageString "DetectionRules.Manual.RegistryRule.DetectionMethodOptions.keyDoesNotExist")
|
||||
}
|
||||
}
|
||||
"exists" {
|
||||
if($rule.valueName)
|
||||
{
|
||||
(Get-LanguageString "DetectionRules.Manual.RegistryRule.DetectionMethodOptions.valueExists")
|
||||
}
|
||||
else
|
||||
{
|
||||
(Get-LanguageString "DetectionRules.Manual.RegistryRule.DetectionMethodOptions.keyExists")
|
||||
}
|
||||
}
|
||||
"integer" { (Get-LanguageString "DetectionRules.Manual.RegistryRule.DetectionMethodOptions.integerComparison") }
|
||||
"string" { (Get-LanguageString "DetectionRules.Manual.RegistryRule.DetectionMethodOptions.stringComparison") }
|
||||
"version" { (Get-LanguageString "DetectionRules.Manual.RegistryRule.DetectionMethodOptions.versionComparison") }
|
||||
Default { Get-LanguageString "BooleanActions.notConfigured" }
|
||||
}
|
||||
}
|
||||
|
||||
if($rule.detectionValue -and $rule.operator)
|
||||
{
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "Win32Requirements.AdditionalRequirements.Registry.operator")
|
||||
value = (Get-CDDocumentOperatorString $rule.operator)
|
||||
}
|
||||
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "DetectionRules.Manual.RegistryRule.value")
|
||||
value = $rule.detectionValue
|
||||
}
|
||||
}
|
||||
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "DetectionRules.Manual.RegistryRule.associatedWith32Bit")
|
||||
value = (?: ($rule.check32BitOn64System -eq $true) ($strYes) ($strNo))
|
||||
}
|
||||
}
|
||||
elseif($rule.'@OData.Type' -eq "#microsoft.graph.win32LobAppPowerShellScriptRequirement")
|
||||
{
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "Win32Requirements.AdditionalRequirements.requirementType")
|
||||
value = (Get-LanguageString "Win32Requirements.AdditionalRequirements.RequirementTypeOptions.script")
|
||||
}
|
||||
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "Win32Requirements.AdditionalRequirements.Script.scriptName")
|
||||
value = $rule.displayName
|
||||
}
|
||||
|
||||
<#
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "Win32Requirements.AdditionalRequirements.Script.scriptContent")
|
||||
$scriptContent = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($rule.scriptContent))
|
||||
value = $scriptContent
|
||||
}
|
||||
#>
|
||||
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "DetectionRules.CustomScript.runAs32Bit")
|
||||
value = (?: ($rule.runAs32Bit -eq $true) ($strYes) ($strNo))
|
||||
}
|
||||
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "Win32Requirements.AdditionalRequirements.Script.loggedOnCredentials")
|
||||
value = (?: ($rule.runAsAccount -ne "system") ($strYes) ($strNo))
|
||||
}
|
||||
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "Win32Requirements.AdditionalRequirements.Script.enforceSignatureCheck")
|
||||
value = (?: ($rule.enforceSignatureCheck -eq $true) ($strYes) ($strNo))
|
||||
}
|
||||
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "Win32Requirements.AdditionalRequirements.Script.requirementMethod")
|
||||
value = switch($rule.detectionType)
|
||||
{
|
||||
"string" { (Get-LanguageString "Win32Requirements.AdditionalRequirements.Script.RequirementMethodOptions.string") }
|
||||
"dateTime" { (Get-LanguageString "Win32Requirements.AdditionalRequirements.Script.RequirementMethodOptions.dateTime") }
|
||||
"integer" { (Get-LanguageString "Win32Requirements.AdditionalRequirements.Script.RequirementMethodOptions.integer") }
|
||||
"float" { (Get-LanguageString "Win32Requirements.AdditionalRequirements.Script.RequirementMethodOptions.float") }
|
||||
"version" { (Get-LanguageString "Win32Requirements.AdditionalRequirements.Script.RequirementMethodOptions.version") }
|
||||
"boolean" { (Get-LanguageString "Win32Requirements.AdditionalRequirements.Script.RequirementMethodOptions.boolean") }
|
||||
Default { Get-LanguageString "BooleanActions.notConfigured" }
|
||||
}
|
||||
}
|
||||
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "Win32Requirements.AdditionalRequirements.Registry.operator")
|
||||
value = (Get-CDDocumentOperatorString $rule.operator)
|
||||
}
|
||||
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "Win32Requirements.AdditionalRequirements.Script.value")
|
||||
value = $rule.detectionValue
|
||||
}
|
||||
}
|
||||
return $ruleInfo
|
||||
}
|
||||
|
||||
function Add-CDDocumentDetectionRule
|
||||
{
|
||||
param($rule)
|
||||
|
||||
$ruleInfo = @()
|
||||
|
||||
if($rule.'@OData.Type' -eq "#microsoft.graph.win32LobAppFileSystemDetection")
|
||||
{
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "DetectionRules.Manual.ruleType")
|
||||
value = (Get-LanguageString "DetectionRules.Manual.RuleTypeOptions.file")
|
||||
}
|
||||
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "DetectionRules.Manual.FileRule.path")
|
||||
value = $rule.path
|
||||
}
|
||||
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "DetectionRules.Manual.FileRule.fileOrFolder")
|
||||
value = $rule.fileOrFolderName
|
||||
}
|
||||
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "DetectionRules.Manual.FileRule.detectionMethod")
|
||||
value = switch($rule.detectionType)
|
||||
{
|
||||
"createdDate" { (Get-LanguageString "DetectionRules.Manual.FileRule.DetectionMethodOptions.dateCreated") }
|
||||
"modifiedDate" { (Get-LanguageString "DetectionRules.Manual.FileRule.DetectionMethodOptions.dateModified") }
|
||||
"doesNotExist" { (Get-LanguageString "DetectionRules.Manual.FileRule.DetectionMethodOptions.doesNotExist") }
|
||||
"exists" { (Get-LanguageString "DetectionRules.Manual.FileRule.DetectionMethodOptions.fileOrFolderExists") }
|
||||
"sizeInMB" { (Get-LanguageString "DetectionRules.Manual.FileRule.DetectionMethodOptions.sizeInMB") }
|
||||
"version" { (Get-LanguageString "DetectionRules.Manual.FileRule.DetectionMethodOptions.version") }
|
||||
Default { Get-LanguageString "BooleanActions.notConfigured" }
|
||||
}
|
||||
}
|
||||
|
||||
if($rule.detectionValue -and $rule.operator)
|
||||
{
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "DetectionRules.Manual.FileRule.operator")
|
||||
value = (Get-CDDocumentOperatorString $rule.operator)
|
||||
}
|
||||
|
||||
$detectionValue = $rule.detectionValue
|
||||
if($rule.detectionType -eq "createdDate" -or $rule.detectionType -eq "modifiedDate")
|
||||
{
|
||||
try {
|
||||
$tmpDate = Get-Date $rule.detectionValue
|
||||
$detectionValue = $tmpDate.ToString()
|
||||
} catch {}
|
||||
}
|
||||
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "DetectionRules.Manual.FileRule.value")
|
||||
value = $detectionValue
|
||||
}
|
||||
}
|
||||
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "DetectionRules.Manual.RegistryRule.associatedWith32Bit")
|
||||
value = (?: ($rule.check32BitOn64System -eq $true) (Get-LanguageString "SettingDetails.yes") (Get-LanguageString "SettingDetails.no"))
|
||||
}
|
||||
}
|
||||
elseif($rule.'@OData.Type' -eq "#microsoft.graph.win32LobAppRegistryDetection")
|
||||
{
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "DetectionRules.Manual.ruleType")
|
||||
value = (Get-LanguageString "DetectionRules.Manual.RuleTypeOptions.registry")
|
||||
}
|
||||
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "DetectionRules.Manual.RegistryRule.keyPath")
|
||||
value = $rule.keyPath
|
||||
}
|
||||
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "DetectionRules.Manual.RegistryRule.valueName")
|
||||
value = $rule.valueName
|
||||
}
|
||||
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "DetectionRules.Manual.RegistryRule.detectionMethod")
|
||||
value = switch($rule.detectionType)
|
||||
{
|
||||
"doesNotExist"
|
||||
{
|
||||
if($rule.valueName)
|
||||
{
|
||||
(Get-LanguageString "DetectionRules.Manual.RegistryRule.DetectionMethodOptions.valueDoesNotExist")
|
||||
}
|
||||
else
|
||||
{
|
||||
(Get-LanguageString "DetectionRules.Manual.RegistryRule.DetectionMethodOptions.keyDoesNotExist")
|
||||
}
|
||||
}
|
||||
"exists" {
|
||||
if($rule.valueName)
|
||||
{
|
||||
(Get-LanguageString "DetectionRules.Manual.RegistryRule.DetectionMethodOptions.valueExists")
|
||||
}
|
||||
else
|
||||
{
|
||||
(Get-LanguageString "DetectionRules.Manual.RegistryRule.DetectionMethodOptions.keyExists")
|
||||
}
|
||||
}
|
||||
"integer" { (Get-LanguageString "DetectionRules.Manual.RegistryRule.DetectionMethodOptions.integerComparison") }
|
||||
"string" { (Get-LanguageString "DetectionRules.Manual.RegistryRule.DetectionMethodOptions.stringComparison") }
|
||||
"version" { (Get-LanguageString "DetectionRules.Manual.RegistryRule.DetectionMethodOptions.versionComparison") }
|
||||
Default { Get-LanguageString "BooleanActions.notConfigured" }
|
||||
}
|
||||
}
|
||||
|
||||
if($rule.detectionValue -and $rule.operator)
|
||||
{
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "DetectionRules.Manual.RegistryRule.operator")
|
||||
value = (Get-CDDocumentOperatorString $rule.operator)
|
||||
}
|
||||
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "DetectionRules.Manual.RegistryRule.value")
|
||||
value = $rule.detectionValue
|
||||
}
|
||||
}
|
||||
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "DetectionRules.Manual.RegistryRule.associatedWith32Bit")
|
||||
value = (?: ($rule.check32BitOn64System -eq $true) (Get-LanguageString "SettingDetails.yes") (Get-LanguageString "SettingDetails.no"))
|
||||
}
|
||||
}
|
||||
else #win32LobAppProductCodeDetection
|
||||
{
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "DetectionRules.Manual.ruleType")
|
||||
value = (Get-LanguageString "DetectionRules.Manual.RuleTypeOptions.mSI")
|
||||
}
|
||||
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "DetectionRules.Manual.MsiRule.productCode")
|
||||
value = $rule.productCode
|
||||
}
|
||||
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "DetectionRules.Manual.MsiRule.productVersionCheck")
|
||||
value = (?: ($null -ne $rule.productVersion) (Get-LanguageString "SettingDetails.yes") (Get-LanguageString "SettingDetails.no"))
|
||||
}
|
||||
|
||||
if($null -ne $rule.productVersion)
|
||||
{
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "DetectionRules.Manual.MsiRule.operator")
|
||||
value = (Get-CDDocumentOperatorString $rule.productVersionOperator)
|
||||
}
|
||||
}
|
||||
|
||||
if($null -ne $rule.productVersion)
|
||||
{
|
||||
$ruleInfo += [PSCustomObject]@{
|
||||
property = (Get-LanguageString "DetectionRules.Manual.MsiRule.productVersion")
|
||||
value = (Get-CDDocumentOperatorString $rule.productVersion)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $ruleInfo
|
||||
}
|
||||
|
||||
function Get-CDDocumentOperatorString
|
||||
{
|
||||
param($operator)
|
||||
|
||||
$lngString = switch ($operator)
|
||||
{
|
||||
"notConfigured" { Get-LanguageString "BooleanActions.notConfigured" }
|
||||
"equal" { Get-LanguageString "DetectionRules.ComparisonOperators.equals" }
|
||||
"notEqual" { Get-LanguageString "DetectionRules.ComparisonOperators.notEqualTo" }
|
||||
"greaterThan" { Get-LanguageString "DetectionRules.ComparisonOperators.greaterThan" }
|
||||
"greaterThanOrEqual" { Get-LanguageString "DetectionRules.ComparisonOperators.greaterThanOrEqualTo" }
|
||||
"lessThan" { Get-LanguageString "DetectionRules.ComparisonOperators.lessThan" }
|
||||
"lessThanOrEqual" { Get-LanguageString "DetectionRules.ComparisonOperators.lessThanOrEqualTo" }
|
||||
"exists" { Get-LanguageString "DetectionRules.Manual.FileRule.DetectionMethodOptions.fileOrFolderExists" }
|
||||
Default { $operator }
|
||||
}
|
||||
|
||||
$lngString
|
||||
}
|
||||
|
||||
# App Config
|
||||
function Invoke-CDDocumentiosMobileAppConfiguration
|
||||
{
|
||||
@@ -3851,7 +4293,7 @@ function Invoke-CDDocumentTranslateSectionFile
|
||||
#endregion
|
||||
|
||||
#region
|
||||
function Invoke-CDDocumentdeviceComplianceScript
|
||||
function Invoke-CDDocumentDeviceComplianceScript
|
||||
{
|
||||
param($documentationObj)
|
||||
|
||||
@@ -3914,4 +4356,70 @@ function Invoke-CDDocumentdeviceComplianceScript
|
||||
SubCategory = $null
|
||||
})
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Settings Catalog
|
||||
|
||||
function Invoke-CDDocumentPostSettingsCatalog
|
||||
{
|
||||
param($obj, $objectType, $settingsData)
|
||||
|
||||
if($obj.templateReference.TemplateId.StartsWith("19c8aa67-f286-4861-9aa0-f23541d31680"))
|
||||
{
|
||||
$reusableSettingsType = Get-GraphObjectType "ReusableSettings"
|
||||
if($reusableSettingsType)
|
||||
{
|
||||
foreach($setting in ($settingsData | Where SettingId -eq "vendor_msft_firewall_mdmstore_firewallrules_{firewallrulename}_remoteaddressdynamickeywords"))
|
||||
{
|
||||
$reusableSettings = Invoke-GraphRequest -Url "$($reusableSettingsType.API)/$($setting.RawValue)"
|
||||
if($reusableSettings.displayName)
|
||||
{
|
||||
$setting.Value = $reusableSettings.displayName
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Log "No Reusable Settings object found with ID $($setting.RawValue)" 2
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Scope Tags
|
||||
function Invoke-CDDocumentScopeTag
|
||||
{
|
||||
param($obj, $objectType)
|
||||
|
||||
$script:objectSeparator = ?? $global:cbDocumentationObjectSeparator.SelectedValue ([System.Environment]::NewLine)
|
||||
$script:propertySeparator = ?? $global:cbDocumentationPropertySeparator.SelectedValue ","
|
||||
|
||||
$groupIDs, $groupInfo, $filterIds,$filtersInfo = Get-ObjectAssignments $obj.Object
|
||||
|
||||
$nameLabel = Get-LanguageString "Inputs.displayNameLabel"
|
||||
$descriptionLabel = Get-LanguageString "TableHeaders.description"
|
||||
$assignmentsLabel = Get-LanguageString "TableHeaders.assignments"
|
||||
|
||||
$scopeTagInfo = Get-TableObjects $obj.ObjectType
|
||||
|
||||
if(-not $scopeTagInfo)
|
||||
{
|
||||
$scopeTagInfo = [PSCustomObject]@{
|
||||
TypeName = (Get-LanguageString "SettingDetails.scopeTags")
|
||||
ObjectType = $obj.ObjectType
|
||||
Properties = @($nameLabel, "id", $descriptionLable, $assignmentsLabel)
|
||||
Items = @()
|
||||
}
|
||||
Set-TableObjects $scopeTagInfo
|
||||
}
|
||||
|
||||
$scopeTagInfo.Items += ([PSCustomObject]@{
|
||||
$nameLabel = $obj.displayName
|
||||
ID = $obj.Id
|
||||
$descriptionLabel = $obj.Description
|
||||
$assignmentsLabel = ($groupInfo.displayName -join $script:objectSeparator)
|
||||
Object = $documentationObj.Object
|
||||
})
|
||||
}
|
||||
|
||||
#endregion
|
||||
@@ -0,0 +1,657 @@
|
||||
function Get-ModuleVersion
|
||||
{
|
||||
'1.0.0'
|
||||
}
|
||||
|
||||
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.target.PSObject.Properties | Where Name -eq "deviceAndAppManagementAssignmentFilterType"))
|
||||
{
|
||||
$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
|
||||
}
|
||||
}
|
||||
+311
-128
@@ -1,34 +1,127 @@
|
||||
function Get-ModuleVersion
|
||||
{
|
||||
'1.0.0'
|
||||
'1.1.0'
|
||||
}
|
||||
|
||||
function Invoke-InitializeModule
|
||||
{
|
||||
Add-OutputType ([PSCustomObject]@{
|
||||
Name="Markdown (Experimental)"
|
||||
Name="Markdown"
|
||||
Value="md"
|
||||
#OutputOptions = (Add-MDOptionsControl)
|
||||
OutputOptions = (Add-MDOptionsControl)
|
||||
#Activate = { Invoke-MDActivate @args }
|
||||
PreProcess = { Invoke-MDPreProcessItems @args }
|
||||
NewObjectGroup = { Invoke-MDNewObjectGroup @args }
|
||||
NewObjectGroup = { Invoke-MDNewObjectGroup2 @args }
|
||||
NewObjectType = { Invoke-MDNewObjectType2 @args }
|
||||
Process = { Invoke-MDProcessItem @args }
|
||||
PostProcess = { Invoke-MDPostProcessItems @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
|
||||
{
|
||||
$script:mdStrings = [System.Text.StringBuilder]::new()
|
||||
$script:sectionAnchors = @()
|
||||
$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
|
||||
{
|
||||
|
||||
$userName = $global:me.displayName
|
||||
if($global:me.givenName -and $global:me.surname)
|
||||
{
|
||||
@@ -59,24 +152,38 @@ function Invoke-MDPostProcessItems
|
||||
|
||||
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")
|
||||
}
|
||||
|
||||
$mdText = $script:cssStyle
|
||||
|
||||
$script:mdContent.AppendLine("")
|
||||
$mdText = $script:mdContent.ToString()
|
||||
$mdText += $script:mdStrings.ToString()
|
||||
$mdText += $script:mdContent.ToString()
|
||||
if($script:outputType -eq "Full")
|
||||
{
|
||||
$mdText += $script:mdStrings.ToString()
|
||||
}
|
||||
|
||||
$fileName = Expand-FileName "%MyDocuments%\%Organization%-%Date%.md"
|
||||
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
|
||||
{
|
||||
$mdText | Out-File -FilePath $fileName -Force -Encoding utf8 -ErrorAction Stop
|
||||
Write-Log "Markdown document $fileName saved successfully"
|
||||
|
||||
if((Get-Setting "Documentation" "MDOpenFile" $true) -eq $true)
|
||||
{
|
||||
Invoke-Item $fileName
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
Write-LogError "Failed to save Markdown file" $_.Exception
|
||||
Write-LogError "Failed to save Markdown file: $fileName." $_.Exception
|
||||
}
|
||||
#>
|
||||
}
|
||||
|
||||
function Invoke-MDNewObjectGroup
|
||||
@@ -86,7 +193,39 @@ function Invoke-MDNewObjectGroup
|
||||
$objectTypeString = Get-ObjectTypeString $obj.Object $obj.ObjectType
|
||||
|
||||
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
|
||||
@@ -97,7 +236,14 @@ function Invoke-MDProcessItem
|
||||
|
||||
$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("")
|
||||
|
||||
@@ -164,7 +310,6 @@ function Invoke-MDProcessItem
|
||||
|
||||
if(($documentedObj.Assignments | measure).Count -gt 0)
|
||||
{
|
||||
$params = @{}
|
||||
if($documentedObj.Assignments[0].RawIntent)
|
||||
{
|
||||
$properties = @("GroupMode","Group","Filter","FilterMode")
|
||||
@@ -197,15 +342,26 @@ function Invoke-MDProcessItem
|
||||
{
|
||||
$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
|
||||
{
|
||||
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
|
||||
}
|
||||
}
|
||||
|
||||
@@ -227,24 +383,17 @@ function Add-MDTableItems
|
||||
}
|
||||
|
||||
$tableText = [System.Text.StringBuilder]::new()
|
||||
$tableText.AppendLine("<table>")
|
||||
$tableText.AppendLine("<tr>")
|
||||
$columnHeaders = "|"
|
||||
$columnChars = "|"
|
||||
$tableText.AppendLine("<table class='table-settings'>")
|
||||
$tableText.AppendLine("<tr class='table-header1'>")
|
||||
|
||||
$columnCount = 0
|
||||
foreach($prop in $properties)
|
||||
{
|
||||
$tableText.AppendLine("<td> $($prop.Split(".")[-1]) </td>")
|
||||
$tableText.AppendLine("<td>$((Invoke-DocTranslateColumnHeader $prop.Split(".")[-1]))</td>")
|
||||
$columnCount++
|
||||
|
||||
$columnHeaders += ((Invoke-DocTranslateColumnHeader ($prop.Split(".")[-1])) + "|")
|
||||
$columnChars += "----|"
|
||||
}
|
||||
$tableText.AppendLine("</tr>")
|
||||
|
||||
#Add-MDText $columnHeaders
|
||||
#Add-MDText $columnChars
|
||||
|
||||
$curCategory = ""
|
||||
$curSubCategory = ""
|
||||
|
||||
@@ -253,34 +402,39 @@ function Add-MDTableItems
|
||||
|
||||
foreach($itemObj in $items)
|
||||
{
|
||||
$additionalRowClass = ""
|
||||
if($itemObj.Category -and $curCategory -ne $itemObj.Category -and $AddCategories -eq $true)
|
||||
{
|
||||
$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>")
|
||||
|
||||
#$columnCategory = "|**" + (Set-MDText $itemObj.Category) + "**|"
|
||||
#Add-MDText $columnCategory
|
||||
$curCategory = $itemObj.Category
|
||||
$curSubCategory = ""
|
||||
$curentPropertyIndex = 0
|
||||
}
|
||||
|
||||
if($itemObj.SubCategory -and $curSubCategory -ne $itemObj.SubCategory -and $AddSubcategories -eq $true)
|
||||
{
|
||||
$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>")
|
||||
|
||||
#$columnSubCategory = "|***" + (Set-MDText $itemObj.SubCategory) + "***|"
|
||||
#Add-MDText $columnSubCategory
|
||||
$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
|
||||
{
|
||||
$tableText.AppendLine("<tr>")
|
||||
$tableText.AppendLine("<tr class='$($additionalRowClass)'>")
|
||||
|
||||
$curCol = 1
|
||||
foreach($prop in $properties)
|
||||
{
|
||||
try
|
||||
@@ -293,7 +447,49 @@ function Add-MDTableItems
|
||||
{
|
||||
$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)"))|"
|
||||
}
|
||||
catch
|
||||
@@ -301,6 +497,7 @@ function Add-MDTableItems
|
||||
#$columnData += "|"
|
||||
Write-LogError "Failed to add property value for $prop" $_.Exception
|
||||
}
|
||||
$curCol++
|
||||
}
|
||||
|
||||
}
|
||||
@@ -337,57 +534,93 @@ function Add-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)
|
||||
{
|
||||
$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("`r`n", "<br />")
|
||||
$textOut = $text.Replace("`n", "<br />")
|
||||
}
|
||||
|
||||
$text = $text.Replace("|", '`|')
|
||||
$text = $text.Replace("*", '`*')
|
||||
$text = $text.Replace("$", '`$')
|
||||
$text = $text.Replace("`r`n", "<br />")
|
||||
$text = $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
|
||||
{
|
||||
param($text, [int]$level = 1, [switch]$AddParagraph, [switch]$UseHTML, [switch]$ToT, [switch]$SkipTOC)
|
||||
|
||||
$prefix = ""
|
||||
if($ToT -eq $true)
|
||||
{
|
||||
$prefix = "Table $(($script:totAnchors.Count + 1)). "
|
||||
}
|
||||
|
||||
if($UseHTML -eq $true)
|
||||
if($script:mdStrings)
|
||||
{
|
||||
$prefix = ""
|
||||
if($ToT -eq $true)
|
||||
{
|
||||
$sectionAnchor = "table-$(($script:totAnchors.Count + 1))"
|
||||
}
|
||||
else
|
||||
{
|
||||
$sectionAnchor = "section-$(($script:sectionAnchors.Count + 1))"
|
||||
}
|
||||
|
||||
$script:mdStrings.AppendLine("<h$level id=`"$prefix$($sectionAnchor)`">$text</h$level>")
|
||||
}
|
||||
else
|
||||
{
|
||||
# Warnig: Not complete! Use HTML if not working...
|
||||
$text = "$prefix$text"
|
||||
$sectionAnchor = $text.ToLower().Replace(" ","-").Replace("[","").Replace("]","")
|
||||
$prefix = "Table $(($script:totAnchors.Count + 1)). "
|
||||
}
|
||||
|
||||
$mdHeader = [String]::new('#',$level)
|
||||
$script:mdStrings.AppendLine("$mdHeader $text")
|
||||
if($UseHTML -eq $true)
|
||||
{
|
||||
if($ToT -eq $true)
|
||||
{
|
||||
$sectionAnchor = "table-$(($script:totAnchors.Count + 1))"
|
||||
}
|
||||
else
|
||||
{
|
||||
$sectionAnchor = "section-$(($script:sectionAnchors.Count + 1))"
|
||||
}
|
||||
|
||||
$script:mdStrings.AppendLine("<h$level id=`"$prefix$($sectionAnchor)`">$text</h$level>")
|
||||
}
|
||||
else
|
||||
{
|
||||
# Warnig: Not complete! Use HTML if not working...
|
||||
$text = "$prefix$text"
|
||||
$sectionAnchor = $text.ToLower().Replace(" ","-").Replace("[","").Replace("]","")
|
||||
|
||||
$mdHeader = [String]::new('#',$level)
|
||||
$script:mdStrings.AppendLine("$mdHeader $text")
|
||||
}
|
||||
$FileName = $script:currentItemFileName
|
||||
}
|
||||
else
|
||||
{
|
||||
$sectionAnchor = $null
|
||||
$FileName = $null
|
||||
}
|
||||
|
||||
if($ToT -eq $true)
|
||||
@@ -395,6 +628,8 @@ function Add-MDHeader
|
||||
$script:totAnchors += [PSCustomObject]@{
|
||||
Name = $text
|
||||
Anchor = $sectionAnchor
|
||||
FileName = $FileName
|
||||
Level = $level
|
||||
}
|
||||
}
|
||||
elseif($SkipTOC -ne $true)
|
||||
@@ -402,6 +637,8 @@ function Add-MDHeader
|
||||
$script:sectionAnchors += [PSCustomObject]@{
|
||||
Name = $text
|
||||
Anchor = $sectionAnchor
|
||||
FileName = $FileName
|
||||
Level = $level
|
||||
}
|
||||
}
|
||||
|
||||
@@ -415,68 +652,14 @@ function Add-MDHeader
|
||||
function Add-MDObjectSettings
|
||||
{
|
||||
param($obj, $objectType, $documentedObj)
|
||||
|
||||
if($obj."@OData.Type" -eq "#microsoft.graph.deviceManagementScript")
|
||||
|
||||
foreach($objectScript in $documentedObj.Scripts)
|
||||
{
|
||||
if($obj.ScriptContent)
|
||||
{
|
||||
$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("~~~")
|
||||
if(-not $objectScript.ScriptContent -or -not $objectScript.Caption) { continue }
|
||||
|
||||
$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((Get-DocScriptContent $obj.detectionScriptContent))
|
||||
$script:mdStrings.AppendLine("~~~")
|
||||
$caption = Get-LanguageString "ProactiveRemediations.Create.Settings.DetectionScriptMultiLineTextBox.label"
|
||||
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
|
||||
}
|
||||
$script:mdStrings.AppendLine("~~~powershell")
|
||||
$script:mdStrings.AppendLine($objectScript.ScriptContent)
|
||||
$script:mdStrings.AppendLine("~~~")
|
||||
Add-MDHeader $objectScript.Caption -Level 6 -SkipTOC -AddParagraph
|
||||
}
|
||||
}
|
||||
@@ -3,7 +3,7 @@
|
||||
#https://docs.microsoft.com/en-us/office/vba/api/overview/word
|
||||
function Get-ModuleVersion
|
||||
{
|
||||
'1.3.0'
|
||||
'1.5.0'
|
||||
}
|
||||
|
||||
function Invoke-InitializeModule
|
||||
@@ -76,8 +76,6 @@ function Add-WordOptionsControl
|
||||
$global:txtWordTitleProperty.Text = Get-Setting "Documentation" "WordTitleProperty" "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:txtWordScriptTableStyle.Text = Get-Setting "Documentation" "WordScriptTableStyle" ""
|
||||
@@ -142,8 +140,6 @@ function Invoke-WordPreProcessItems
|
||||
Save-Setting "Documentation" "WordTitleProperty" $global:txtWordTitleProperty.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" "WordScriptTableStyle" $global:txtWordScriptTableStyle.Text
|
||||
@@ -466,35 +462,22 @@ function Set-WordContentControlText
|
||||
|
||||
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 $obj.ObjectType.Title) $global:txtWordHeader1Style.Text
|
||||
Add-DocText $objectTypeString $global:txtWordHeader1Style.Text
|
||||
}
|
||||
|
||||
function Invoke-WordNewObjectType
|
||||
{
|
||||
param($obj, $documentedObj, [int]$groupCategoryCount = 0)
|
||||
param($objectTypeName)
|
||||
|
||||
if($groupCategoryCount -le 1 -or -not $global:txtWordHeader3Style.Text) { return }
|
||||
|
||||
$script:objectHeaderLevel = 2
|
||||
|
||||
if($obj.ObjectType.GroupId -eq "EndpointSecurity")
|
||||
{
|
||||
$objectTypeString = $obj.CategoryName
|
||||
}
|
||||
else
|
||||
{
|
||||
$objectTypeString = $obj.ObjectType.Title
|
||||
}
|
||||
Add-DocText $objectTypeName (Get-ObjectLevelHeader)
|
||||
|
||||
Add-DocText (?? $objectTypeString $obj.ObjectType.Title) (Get-ObjectLevelHeader)
|
||||
|
||||
$script:objectHeaderLevel = 3;
|
||||
$script:objectHeaderLevel = 3
|
||||
}
|
||||
|
||||
function local:Get-ObjectLevelHeader
|
||||
@@ -610,6 +593,7 @@ function Invoke-WordProcessItem
|
||||
$settingProps += ("Settings." + $objProp)
|
||||
}
|
||||
}
|
||||
$params.Add("AddCategories", $true)
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -649,6 +633,7 @@ function Invoke-WordProcessItem
|
||||
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.TypeParagraph()
|
||||
try { $fi.Delete() } catch {} # Cleanup
|
||||
}
|
||||
}
|
||||
@@ -666,12 +651,18 @@ function Set-DocTableSettingsItems
|
||||
|
||||
$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 = ""
|
||||
|
||||
$row = 2
|
||||
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, $secondColumn).Range.Text = ""
|
||||
$script:docTable.Cell($row, $firstColumn).Split($properties.Count,1)
|
||||
@@ -680,7 +671,7 @@ function Set-DocTableSettingsItems
|
||||
$cellRow = $row
|
||||
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('.')
|
||||
$tmpObj = $itemObj
|
||||
@@ -690,7 +681,7 @@ function Set-DocTableSettingsItems
|
||||
$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++
|
||||
}
|
||||
@@ -726,6 +717,7 @@ function Invoke-WordProcessAllObjects
|
||||
$nameLabel = $obj.displayName
|
||||
ID = $obj.Id
|
||||
$descriptionLable = $obj.Description
|
||||
Object = $obj
|
||||
}
|
||||
}
|
||||
|
||||
@@ -794,10 +786,23 @@ function Add-DocTableItems
|
||||
$curSubCategory = ""
|
||||
|
||||
$row = 2
|
||||
$curentPropertyIndex = 0
|
||||
foreach($itemObj in $items)
|
||||
{
|
||||
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
|
||||
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)
|
||||
{
|
||||
$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)
|
||||
@@ -850,7 +870,6 @@ function Add-DocTableItems
|
||||
$propValueFull | Out-File -LiteralPath $tmpFile -Force
|
||||
$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")
|
||||
#$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 {}
|
||||
}
|
||||
}
|
||||
@@ -1041,85 +1060,14 @@ function Set-DocObjectStyle
|
||||
$styleSet
|
||||
}
|
||||
|
||||
|
||||
function Add-DocObjectSettings
|
||||
function Add-DocObjectSettings
|
||||
{
|
||||
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(-not $objectScript.ScriptContent -or -not $objectScript.Caption) { continue }
|
||||
|
||||
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
|
||||
{
|
||||
|
||||
}
|
||||
Add-DocTableScript $objectScript.Caption $objectScript.Header $objectScript.ScriptContent
|
||||
}
|
||||
}
|
||||
+420
-51
@@ -1,5 +1,4 @@
|
||||
<#
|
||||
<#
|
||||
.SYNOPSIS
|
||||
Module for managing Intune objects
|
||||
|
||||
@@ -11,7 +10,7 @@ This module is for the Endpoint Manager/Intune View. It manages Export/Import/Co
|
||||
#>
|
||||
function Get-ModuleVersion
|
||||
{
|
||||
'3.7.2'
|
||||
'3.9.0'
|
||||
}
|
||||
|
||||
function Invoke-InitializeModule
|
||||
@@ -90,7 +89,7 @@ function Invoke-InitializeModule
|
||||
Deactivating = { Invoke-EMDeactivateView }
|
||||
Activating = { Invoke-EMActivatingView }
|
||||
Authentication = (Get-MSALAuthenticationObject)
|
||||
Authenticate = { Invoke-EMAuthenticateToMSAL }
|
||||
Authenticate = { Invoke-EMAuthenticateToMSAL @args }
|
||||
AppInfo = (Get-GraphAppInfo "EMAzureApp" "d1ddf0e4-d672-4dae-b554-9d5bdfd93547" "EM")
|
||||
SaveSettings = { Invoke-EMSaveSettings }
|
||||
|
||||
@@ -121,7 +120,7 @@ function Invoke-InitializeModule
|
||||
ViewID = "IntuneGraphAPI"
|
||||
API = "/identity/conditionalAccess/policies"
|
||||
Permissons=@("Policy.Read.All","Policy.ReadWrite.ConditionalAccess","Application.Read.All")
|
||||
Dependencies = @("NamedLocations","Applications","TermsOfUse")
|
||||
Dependencies = @("NamedLocations","Applications","TermsOfUse","AuthenticationStrengths","AssignmentFilters")
|
||||
GroupId = "ConditionalAccess"
|
||||
ImportExtension = { Add-ConditionalAccessImportExtensions @args }
|
||||
PreImportCommand = { Start-PreImportConditionalAccess @args }
|
||||
@@ -129,21 +128,19 @@ function Invoke-InitializeModule
|
||||
ExpandAssignmentsList = $false
|
||||
})
|
||||
|
||||
if((Get-SettingValue "PreviewFeatures" $false) -eq $true)
|
||||
{
|
||||
Add-ViewItem (New-Object PSObject -Property @{
|
||||
Title = "Terms of use"
|
||||
Id = "TermsOfUse"
|
||||
ViewID = "IntuneGraphAPI"
|
||||
ViewProperties = @("id", "displayName")
|
||||
Expand = "files"
|
||||
QUERYLIST = "`$expand=files"
|
||||
API = "/identityGovernance/termsOfUse/agreements"
|
||||
Permissons=@("Agreement.ReadWrite.All")
|
||||
PreImportCommand = { Start-PreImportTermsOfUse @args }
|
||||
GroupId = "ConditionalAccess"
|
||||
})
|
||||
}
|
||||
Add-ViewItem (New-Object PSObject -Property @{
|
||||
Title = "Terms of use"
|
||||
Id = "TermsOfUse"
|
||||
ViewID = "IntuneGraphAPI"
|
||||
ViewProperties = @("id", "displayName")
|
||||
Expand = "files"
|
||||
QUERYLIST = "`$expand=files"
|
||||
API = "/identityGovernance/termsOfUse/agreements"
|
||||
Permissons=@("Agreement.ReadWrite.All")
|
||||
PreImportCommand = { Start-PreImportTermsOfUse @args }
|
||||
PostExportCommand = { Start-PostExportTermsOfUse @args }
|
||||
GroupId = "ConditionalAccess"
|
||||
})
|
||||
|
||||
Add-ViewItem (New-Object PSObject -Property @{
|
||||
Title = "Named Locations"
|
||||
@@ -166,11 +163,13 @@ function Invoke-InitializeModule
|
||||
PostListCommand = { Start-PostListEndpointSecurity @args }
|
||||
PostExportCommand = { Start-PostExportEndpointSecurity @args }
|
||||
PostFileImportCommand = { Start-PostFileImportEndpointSecurity @args }
|
||||
PostGetCommand = { Start-PostGetEndpointSecurity @args }
|
||||
#PreCopyCommand = { Start-PreCopyEndpointSecurity @args }
|
||||
PostCopyCommand = { Start-PostCopyEndpointSecurity @args }
|
||||
PreUpdateCommand = { Start-PreUpdateEndpointSecurity @args }
|
||||
Permissons=@("DeviceManagementConfiguration.ReadWrite.All")
|
||||
GroupId = "EndpointSecurity"
|
||||
Dependencies = @("ReusableSettings")
|
||||
GroupId = "EndpointSecurity"
|
||||
})
|
||||
|
||||
Add-ViewItem (New-Object PSObject -Property @{
|
||||
@@ -254,11 +253,13 @@ function Invoke-InitializeModule
|
||||
PreReplaceCommand = { Start-PreReplaceEnrollmentRestrictions @args } # Note: Uses same PreReplaceCommand as restrictions
|
||||
PostReplaceCommand = { Start-PostReplaceEnrollmentRestrictions @args } # Note: Uses same PostReplaceCommand as restrictions
|
||||
PreFilesImportCommand = { Start-PreFilesImportEnrollmentRestrictions @args } # Note: Uses same PreFilesImportCommand as restrictions
|
||||
PreImportAssignmentsCommand = { Start-PreImportAssignmentsEnrollmentRestrictions @args } # Note: Uses same PreFilesImportCommand as restrictions
|
||||
PostListCommand = { Start-PostListESP @args }
|
||||
#PreUpdateCommand = { Start-PreUpdateEnrollmentRestrictions @args } # Note: Uses same PreUpdateCommand as restrictions
|
||||
#QUERYLIST = "`$filter=endsWith(id,'Windows10EnrollmentCompletionPageConfiguration')"
|
||||
Permissons=@("DeviceManagementServiceConfig.ReadWrite.All")
|
||||
SkipRemoveProperties = @('Id')
|
||||
Dependencies = @("Applications")
|
||||
AssignmentsType = "enrollmentConfigurationAssignments"
|
||||
PropertiesToRemoveForUpdate = @('priority')
|
||||
GroupId = "WinEnrollment"
|
||||
@@ -277,6 +278,7 @@ function Invoke-InitializeModule
|
||||
PostReplaceCommand = { Start-PostReplaceEnrollmentRestrictions @args }
|
||||
PreFilesImportCommand = { Start-PreFilesImportEnrollmentRestrictions @args }
|
||||
PostListCommand = { Start-PostListEnrollmentRestrictions @args }
|
||||
PreImportAssignmentsCommand = { Start-PreImportAssignmentsEnrollmentRestrictions @args }
|
||||
#PreUpdateCommand = { Start-PreUpdateEnrollmentRestrictions @args }
|
||||
PropertiesToRemoveForUpdate = @('priority')
|
||||
Permissons=@("DeviceManagementServiceConfig.ReadWrite.All")
|
||||
@@ -448,11 +450,17 @@ function Invoke-InitializeModule
|
||||
PreUpdateCommand = { Start-PreUpdateApplication @args }
|
||||
PreImportCommand = { Start-PreImportCommandApplication @args }
|
||||
DetailExtension = { Add-DetailExtensionApplications @args }
|
||||
PreImportAssignmentsCommand = { Start-PreImportAssignmentsApplications @args }
|
||||
PreDeleteCommand = { Start-PreDeleteApplications @args }
|
||||
PostExportCommand = { Start-PostExportApplications @args }
|
||||
PostListCommand = { Start-PostListApplications @args }
|
||||
ExportExtension = { Add-ScriptExportExtensions @args }
|
||||
GroupId = "Apps"
|
||||
ScopeTagsReturnedInList = $false
|
||||
})
|
||||
|
||||
Add-ViewItem (New-Object PSObject -Property @{
|
||||
Title = "AutoPilot"
|
||||
Title = "Autopilot"
|
||||
Id = "AutoPilot"
|
||||
API = "/deviceManagement/windowsAutopilotDeploymentProfiles"
|
||||
ViewID = "IntuneGraphAPI"
|
||||
@@ -550,6 +558,8 @@ function Invoke-InitializeModule
|
||||
Icon="DeviceConfiguration"
|
||||
PostExportCommand = { Start-PostExportSettingsCatalog @args }
|
||||
PreUpdateCommand = { Start-PreUpdateSettingsCatalog @args }
|
||||
PostGetCommand = { Start-PostGetSettingsCatalog @args }
|
||||
Dependencies = @("ReusableSettings")
|
||||
GroupId = "DeviceConfiguration"
|
||||
})
|
||||
|
||||
@@ -579,6 +589,7 @@ function Invoke-InitializeModule
|
||||
QUERYLIST = "`$filter=isBuiltIn%20eq%20false"
|
||||
Permissons=@("DeviceManagementRBAC.ReadWrite.All")
|
||||
PostExportCommand = { Start-PostExportScopeTags @args }
|
||||
PostGetCommand = { Start-PostGetScopeTags @args }
|
||||
ImportOrder = 10
|
||||
DocumentAll = $true
|
||||
GroupId = "TenantAdmin"
|
||||
@@ -639,6 +650,7 @@ function Invoke-InitializeModule
|
||||
GroupId = "TenantAdmin"
|
||||
PropertiesToRemoveForUpdate = @('platform')
|
||||
ExpandAssignmentsList = $false
|
||||
PropertiesToRemove = @("payloads")
|
||||
})
|
||||
|
||||
Add-ViewItem (New-Object PSObject -Property @{
|
||||
@@ -650,10 +662,13 @@ function Invoke-InitializeModule
|
||||
PreDeleteCommand = { Start-PreDeleteDeviceHealthScripts @args }
|
||||
PreImportCommand = { Start-PreImportDeviceHealthScripts @args }
|
||||
PreUpdateCommand = { Start-PreUpdateDeviceHealthScripts @args }
|
||||
PostExportCommand = { Start-PostExportDeviceHealthScripts @args }
|
||||
ExportExtension = { Add-ScriptExportExtensions @args }
|
||||
Permissons=@("DeviceManagementConfiguration.ReadWrite.All")
|
||||
GroupId = "EndpointAnalytics"
|
||||
Icon = "Report"
|
||||
AssignmentsType = "deviceHealthScriptAssignments"
|
||||
AssignmentProperties = @("target","runSchedule","runRemediationScript")
|
||||
PropertiesToRemoveForUpdate = @('version','isGlobalScript','highestAvailableVersion')
|
||||
})
|
||||
|
||||
@@ -688,13 +703,79 @@ function Invoke-InitializeModule
|
||||
ViewProperties = @("fileName","status","Id")
|
||||
})
|
||||
#>
|
||||
|
||||
Add-ViewItem (New-Object PSObject -Property @{
|
||||
Title = "Reusable Settings"
|
||||
Id = "ReusableSettings"
|
||||
ViewID = "IntuneGraphAPI"
|
||||
API = "/deviceManagement/reusablePolicySettings"
|
||||
PropertiesToRemove = @('Settings','@OData.Type')
|
||||
PostGetCommand = { Start-PostGetReusableSettings @args }
|
||||
ImportOrder = 70
|
||||
Permissons=@("DeviceManagementConfiguration.ReadWrite.All")
|
||||
ExpandAssignmentsList = $false
|
||||
SkipRemoveProperties = @("@OData.Type")
|
||||
Icon = "EndpointSecurity"
|
||||
GroupId = "EndpointSecurity"
|
||||
})
|
||||
|
||||
Add-ViewItem (New-Object PSObject -Property @{
|
||||
Title = "Authentication Strengths"
|
||||
Id = "AuthenticationStrengths"
|
||||
ViewID = "IntuneGraphAPI"
|
||||
API = "/identity/conditionalAccess/authenticationStrengths/policies"
|
||||
PreImportCommand = { Start-PreImportCommandAuthenticationStrengths @args }
|
||||
PropertiesToRemove = @()
|
||||
ImportOrder = 45
|
||||
Permissons=@("Policy.ReadWrite.ConditionalAccess")
|
||||
ExpandAssignmentsList = $false
|
||||
Icon = "ConditionalAccess"
|
||||
GroupId = "EndpointSecurity"
|
||||
})
|
||||
|
||||
Add-ViewItem (New-Object PSObject -Property @{
|
||||
Title = "Authentication Context"
|
||||
Id = "AuthenticationContext"
|
||||
ViewID = "IntuneGraphAPI"
|
||||
API = "/identity/conditionalAccess/authenticationContextClassReferences"
|
||||
PropertiesToRemove = @("@odata.type")
|
||||
SkipRemoveProperties = @('Id')
|
||||
ImportOrder = 46
|
||||
PreImportCommand = { Start-PreImportCommandAuthenticationContext @args }
|
||||
Permissons=@("Policy.ReadWrite.ConditionalAccess")
|
||||
ExpandAssignmentsList = $false
|
||||
Icon = "ConditionalAccess"
|
||||
GroupId = "EndpointSecurity"
|
||||
})
|
||||
|
||||
Add-ViewItem (New-Object PSObject -Property @{
|
||||
Title = "W365 Provisioning Policies"
|
||||
Id = "W365ProvisioningPolicies"
|
||||
ViewID = "IntuneGraphAPI"
|
||||
API = "/deviceManagement/virtualEndpoint/provisioningPolicies"
|
||||
Permissons=@("CloudPC.ReadWrite.All")
|
||||
Icon = "Devices"
|
||||
GroupId = "DeviceConfiguration"
|
||||
})
|
||||
|
||||
Add-ViewItem (New-Object PSObject -Property @{
|
||||
Title = "W365 User Settings"
|
||||
Id = "W365UserSettings"
|
||||
ViewID = "IntuneGraphAPI"
|
||||
API = "/deviceManagement/virtualEndpoint/userSettings"
|
||||
Permissons = @("CloudPC.ReadWrite.All")
|
||||
Icon = "Devices"
|
||||
GroupId = "DeviceConfiguration"
|
||||
})
|
||||
}
|
||||
|
||||
function Invoke-EMAuthenticateToMSAL
|
||||
{
|
||||
param($params = @{})
|
||||
|
||||
$global:EMViewObject.AppInfo = Get-GraphAppInfo "EMAzureApp" "d1ddf0e4-d672-4dae-b554-9d5bdfd93547" "EM"
|
||||
Set-MSALCurrentApp $global:EMViewObject.AppInfo
|
||||
& $global:msalAuthenticator.Login -Account (?? $global:MSALToken.Account.UserName (Get-Setting "" "LastLoggedOnUser"))
|
||||
& $global:msalAuthenticator.Login -Account (?? $global:MSALToken.Account.UserName (Get-Setting "" "LastLoggedOnUser")) @params
|
||||
}
|
||||
|
||||
function Invoke-EMDeactivateView
|
||||
@@ -861,7 +942,7 @@ function Set-EMViewPanel
|
||||
|
||||
$global:btnLoadAllPages.add_click({
|
||||
Write-Status "Loading $($global:curObjectType.Title) objects"
|
||||
$graphObjects = @(Get-GraphObjects -property $global:curObjectType.ViewProperties -objectType $global:curObjectType -AllPages)
|
||||
[array]$graphObjects = Get-GraphObjects -property $global:curObjectType.ViewProperties -objectType $global:curObjectType -AllPages
|
||||
$graphObjects | ForEach-Object { $global:dgObjects.ItemsSource.AddNewItem($_) | Out-Null }
|
||||
$global:dgObjects.ItemsSource.CommitNew()
|
||||
Set-GraphPagesButtonStatus
|
||||
@@ -871,7 +952,7 @@ function Set-EMViewPanel
|
||||
|
||||
$global:btnLoadNextPage.add_click({
|
||||
Write-Status "Loading $($global:curObjectType.Title) objects"
|
||||
$graphObjects = @(Get-GraphObjects -property $global:curObjectType.ViewProperties -objectType $global:curObjectType -SinglePage)
|
||||
[array]$graphObjects = Get-GraphObjects -property $global:curObjectType.ViewProperties -objectType $global:curObjectType -SinglePage
|
||||
$graphObjects | ForEach-Object { $global:dgObjects.ItemsSource.AddNewItem($_) | Out-Null }
|
||||
$global:dgObjects.ItemsSource.CommitNew()
|
||||
Set-GraphPagesButtonStatus
|
||||
@@ -998,17 +1079,19 @@ function Start-PostListEndpointSecurity
|
||||
if(-not $script:baseLineTemplates) { return }
|
||||
|
||||
foreach($obj in $objList)
|
||||
{
|
||||
{
|
||||
if(-not $obj.Object.templateId) { continue }
|
||||
if($obj.Object.templateId -ne $baseLineTemplate.Id)
|
||||
{
|
||||
$baseLineTemplate = $script:baseLineTemplates | Where Id -eq $obj.Object.templateId
|
||||
}
|
||||
|
||||
if($baseLineTemplate)
|
||||
{
|
||||
$obj | Add-Member -MemberType NoteProperty -Name "Type" -Value $baseLineTemplate.displayName
|
||||
$obj | Add-Member -MemberType NoteProperty -Name "Category" -Value (?: ($baseLineTemplate.templateSubtype -eq "none") $baseLineTemplate.templateType $baseLineTemplate.templateSubtype)
|
||||
}
|
||||
|
||||
}
|
||||
$objList
|
||||
}
|
||||
@@ -1026,7 +1109,7 @@ function Start-PostExportEndpointSecurity
|
||||
$settings = Invoke-GraphRequest -Url "$($objectType.API)/$($obj.id)/settings"
|
||||
$settingsJson = "{ `"settings`": $((ConvertTo-Json $settings.value -Depth 20 ))`n}"
|
||||
$fileName = "$path\$((Remove-InvalidFileNameChars $fileName))_Settings.json"
|
||||
$settingsJson | Out-File -LiteralPath $fileName -Force
|
||||
Save-GraphObjectToFile $settingsJson $fileName
|
||||
}
|
||||
|
||||
function Start-PostFileImportEndpointSecurity
|
||||
@@ -1037,7 +1120,7 @@ function Start-PostFileImportEndpointSecurity
|
||||
if($settings)
|
||||
{
|
||||
Start-GraphPreImport $settings
|
||||
Invoke-GraphRequest -Url "$($objectType.API)/$($obj.id)/updateSettings" -Body ($settings | ConvertTo-Json -Depth 20) -Method "POST"
|
||||
Invoke-GraphRequest -Url "$($objectType.API)/$($obj.id)/updateSettings" -Body ($settings | ConvertTo-Json -Depth 50) -Method "POST"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1121,6 +1204,18 @@ function Start-PreUpdateEndpointSecurity
|
||||
Remove-Property $obj "templateId"
|
||||
}
|
||||
|
||||
function Start-PostGetEndpointSecurity
|
||||
{
|
||||
param($obj, $objectType)
|
||||
|
||||
Add-EndpointSecurityInfo $obj
|
||||
}
|
||||
|
||||
function local:Add-EndpointSecurityInfo
|
||||
{
|
||||
param($obj, $baseLineTemplate = $null)
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region
|
||||
@@ -1131,7 +1226,7 @@ function Start-PostFileImportDeviceConfiguration
|
||||
|
||||
if($obj.'@OData.Type' -like "#microsoft.graph.windows10GeneralConfiguration")
|
||||
{
|
||||
$tmpObj = Get-Content -LiteralPath $importFile | ConvertFrom-Json
|
||||
$tmpObj = Get-GraphObjectFromFile $importFile
|
||||
|
||||
if(($tmpObj.privacyAccessControls | measure).Count -gt 0)
|
||||
{
|
||||
@@ -1827,15 +1922,23 @@ function Start-PostFileImportApplications
|
||||
{
|
||||
param($obj, $objectType, $file)
|
||||
|
||||
$tmpObj = Get-Content -LiteralPath $file | ConvertFrom-Json
|
||||
$tmpObj = Get-GraphObjectFromFile $file
|
||||
|
||||
if(-not ($obj.PSObject.Properties | Where Name -eq '@odata.type'))
|
||||
{
|
||||
# Add @odata.type property if it is missing. Required by app package import
|
||||
$obj | Add-Member -MemberType NoteProperty -Name '@odata.type' -Value $objectType.'@odata.type'
|
||||
}
|
||||
|
||||
$fi = [IO.FileInfo]$file
|
||||
$tmpFilName = $fi.DirectoryName + "\" + $obj.FileName
|
||||
|
||||
if([IO.File]::Exists($tmpFilName) -eq $false)
|
||||
{
|
||||
$tmpFilName = $null
|
||||
}
|
||||
|
||||
Start-ImportApp $obj
|
||||
Start-ImportApp $obj $tmpFilName
|
||||
}
|
||||
|
||||
function local:Start-ImportApp
|
||||
@@ -1921,7 +2024,6 @@ function Start-PreImportCommandApplication
|
||||
@{ "Import" = $false }
|
||||
}
|
||||
|
||||
Write-Log "### TEST ### OData.Type: $($obj.'@OData.Type')"
|
||||
if($obj.'@OData.Type' -eq '#microsoft.graph.officeSuiteApp')
|
||||
{
|
||||
if($obj.officeSuiteAppDefaultFileFormat -eq "notConfigured")
|
||||
@@ -1980,6 +2082,117 @@ function Add-DetailExtensionApplications
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function Start-PreImportAssignmentsApplications
|
||||
{
|
||||
param($obj, $objectType, $file, $assignments)
|
||||
|
||||
if($obj.'@odata.type' -eq "#microsoft.graph.windowsMicrosoftEdgeApp")
|
||||
{
|
||||
foreach($assignment in $assignments)
|
||||
{
|
||||
Remove-Property $assignment.target "deviceAndAppManagementAssignmentFilterId"
|
||||
Remove-Property $assignment.target "deviceAndAppManagementAssignmentFilterType"
|
||||
}
|
||||
@{"Assignments"=$assignments}
|
||||
}
|
||||
elseif($obj.'@odata.type' -eq "#microsoft.graph.winGetApp")
|
||||
{
|
||||
Write-LogDebug "Wait for app to be published"
|
||||
$i = 2
|
||||
Start-Sleep -s ($i)
|
||||
$x = 0
|
||||
while($x -lt 10)
|
||||
{
|
||||
###!!!
|
||||
$appInfo = Invoke-GraphRequest -Url "$($objectType.API)/$($obj.id)" -ODataMetadata "skip"
|
||||
if($appInfo.publishingState -eq "Published")
|
||||
{
|
||||
Write-LogDebug "Application $($obj.displayName) is published"
|
||||
return
|
||||
}
|
||||
Start-Sleep -s ($i)
|
||||
$x++
|
||||
if($x -ge 5) { $i++ }
|
||||
}
|
||||
|
||||
Write-Log "Application '$($obj.displayName)' is not published. Skipping assignment" 2
|
||||
@{"Import"=$false}
|
||||
}
|
||||
}
|
||||
|
||||
function Start-PreDeleteApplications
|
||||
{
|
||||
if($obj.'@odata.type' -eq "#microsoft.graph.microsoftStoreForBusinessApp")
|
||||
{
|
||||
# Don't delete Microsoft Store for Business Apps
|
||||
@{ "Delete" = $false }
|
||||
}
|
||||
}
|
||||
|
||||
function Start-PostExportApplications
|
||||
{
|
||||
param($obj, $objectType, $path)
|
||||
|
||||
if($global:chkExportScript.IsChecked)
|
||||
{
|
||||
$fileName = Get-GraphObjectFile $obj $objectType
|
||||
$fi = [IO.FileInfo]"$path\$fileName"
|
||||
|
||||
try
|
||||
{
|
||||
foreach($rule in ($obj.detectionRules | Where '@OData.Type' -eq "#microsoft.graph.win32LobAppPowerShellScriptDetection"))
|
||||
{
|
||||
if($rule.ScriptContent)
|
||||
{
|
||||
[IO.File]::WriteAllBytes(("$path\$($fi.BaseName)_DetectionScript.ps1"), ([System.Convert]::FromBase64String($rule.ScriptContent)))
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
foreach($rule in $obj.requirementRules)
|
||||
{
|
||||
if($rule.'@OData.Type' -eq "#microsoft.graph.win32LobAppPowerShellScriptRequirement")
|
||||
{
|
||||
if($rule.ScriptContent)
|
||||
{
|
||||
[IO.File]::WriteAllBytes(("$path\$($fi.BaseName)_RequirementScript.ps1"), ([System.Convert]::FromBase64String($rule.ScriptContent)))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
Write-LogError "Failed to export scripts" $_.Exception
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function Start-PostListApplications
|
||||
{
|
||||
param($objList, $objectType)
|
||||
|
||||
foreach($obj in ($objList | Where { $_.Object."@OData.Type" -eq "#microsoft.graph.winGetApp"}))
|
||||
{
|
||||
if($obj.Object.packageIdentifier -like "9*")
|
||||
{
|
||||
$installerType = "UWP"
|
||||
}
|
||||
elseif($obj.Object.packageIdentifier -like "X*")
|
||||
{
|
||||
$installerType = "Win32"
|
||||
}
|
||||
else
|
||||
{
|
||||
$objName = Get-GraphObjectName $obj.Object $objectType
|
||||
Write-Log "Unknown package identifier for app $($objName): $($obj.Object.packageIdentifier)" 2
|
||||
$installerType = "Unknown"
|
||||
}
|
||||
$obj.Object | Add-Member -MemberType NoteProperty -Name "InstallerType" -Value $installerType
|
||||
}
|
||||
$objList
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Group Policy/Administrative Templates functions
|
||||
@@ -2185,7 +2398,7 @@ function Start-PostExportAdministrativeTemplate
|
||||
}
|
||||
|
||||
$fileName = "$path\$((Remove-InvalidFileNameChars $fileName))_Settings.json"
|
||||
ConvertTo-Json $settings -Depth 20 | Out-File -LiteralPath $fileName -Force
|
||||
Save-GraphObjectToFile $settings $fileName
|
||||
}
|
||||
|
||||
function Start-PostCopyAdministrativeTemplate
|
||||
@@ -2203,10 +2416,10 @@ function Start-PostFileImportAdministrativeTemplate
|
||||
{
|
||||
param($obj, $objectType, $file)
|
||||
|
||||
$settings = Get-EMSettingsObject $obj $objectType $file -settingsProperty "definitionValues"
|
||||
$settings = Get-EMSettingsObject $obj $objectType $file -settingsProperty "definitionValues" -SettingsArray
|
||||
if($settings)
|
||||
{
|
||||
$tmpObj = (Get-Content -LiteralPath $file) | ConvertFrom-Json
|
||||
$tmpObj = Get-GraphObjectFromFile $file
|
||||
|
||||
Import-GPOSetting $obj $settings -CustomADMX:($tmpObj.policyConfigurationIngestionType -eq "Custom")
|
||||
}
|
||||
@@ -2220,8 +2433,8 @@ function Start-LoadAdministrativeTemplate
|
||||
|
||||
$fi = [IO.FileInfo]$fileName
|
||||
if($fi.Exists -eq $false) { return }
|
||||
|
||||
$obj = Get-Content -LiteralPath $fi.FullName | ConvertFrom-Json
|
||||
|
||||
$obj = Get-GraphObjectFromFile $fi.FullName
|
||||
|
||||
if($obj.definitionValues)
|
||||
{
|
||||
@@ -2232,7 +2445,7 @@ function Start-LoadAdministrativeTemplate
|
||||
|
||||
if([IO.File]::Exists($settingsFile))
|
||||
{
|
||||
$definitionValues = Get-Content -LiteralPath $settingsFile | ConvertFrom-Json
|
||||
$definitionValues = Get-GraphObjectFromFile $settingsFile
|
||||
|
||||
$obj | Add-Member Noteproperty -Name "definitionValues" -Value $definitionValues -Force
|
||||
}
|
||||
@@ -2442,7 +2655,7 @@ function Start-PostExportRoleDefinitions
|
||||
$fileName = "$path\$((Remove-InvalidFileNameChars $fileName)).json"
|
||||
if([IO.File]::Exists($fileName))
|
||||
{
|
||||
$tmpObj = Get-Content -LiteralPath $fileName | ConvertFrom-Json
|
||||
$tmpObj = Get-GraphObjectFromFile $fileName
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2466,7 +2679,7 @@ function Start-PostExportRoleDefinitions
|
||||
if($roleAssignmentsArr.Count -gt 0)
|
||||
{
|
||||
$tmpObj.RoleAssignments = $roleAssignmentsArr
|
||||
$tmpObj | ConvertTo-Json -Depth 20 | Out-File -LiteralPath $fileName
|
||||
Save-GraphObjectToFile $tmpObj $fileName
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2483,7 +2696,7 @@ function Start-PostFileImportRoleDefinitions
|
||||
{
|
||||
param($obj, $objectType, $file)
|
||||
|
||||
$tmpObj = Get-Content -LiteralPath $file | ConvertFrom-Json
|
||||
$tmpObj = Get-GraphObjectFromFile $file
|
||||
|
||||
$loadedScopeTags = $global:LoadedDependencyObjects["ScopeTags"]
|
||||
if(($tmpObj.RoleAssignments | measure).Count -gt 0 -and ($loadedScopeTags | measure).Count -gt 0)
|
||||
@@ -2533,6 +2746,21 @@ function Start-PreUpdateSettingsCatalog
|
||||
@{"Method"="PUT"}
|
||||
}
|
||||
|
||||
function Start-PostGetSettingsCatalog
|
||||
{
|
||||
param($obj, $objectType)
|
||||
|
||||
if(-not $obj.Object.Assignments)
|
||||
{
|
||||
$url = "$($objectType.API)/$($obj.id)/assignments"
|
||||
$assignments = (Invoke-GraphRequest -Url $url).Value
|
||||
if($assignments)
|
||||
{
|
||||
$obj.Object.Assignments = $assignments
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Notification functions
|
||||
@@ -2549,7 +2777,7 @@ function Start-PostFileImportNotifications
|
||||
{
|
||||
param($obj, $objectType, $file)
|
||||
|
||||
$tmpObj = Get-Content -LiteralPath $file | ConvertFrom-Json
|
||||
$tmpObj = Get-GraphObjectFromFile $file
|
||||
|
||||
foreach($localizedNotificationMessage in $tmpObj.localizedNotificationMessages)
|
||||
{
|
||||
@@ -2703,6 +2931,17 @@ function Start-PostListEnrollmentRestrictions
|
||||
}
|
||||
}
|
||||
|
||||
function Start-PreImportAssignmentsEnrollmentRestrictions
|
||||
{
|
||||
param($obj, $objectType, $file, $assignments)
|
||||
|
||||
if($obj.Priority -eq 0)
|
||||
{
|
||||
# Skip Assignment for Default Policy
|
||||
@{ "Import" = $false }
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region
|
||||
@@ -2722,6 +2961,19 @@ function Start-PostExportScopeTags
|
||||
|
||||
Add-EMAssignmentsToExportFile $obj $objectType $path
|
||||
}
|
||||
|
||||
function Start-PostGetScopeTags
|
||||
{
|
||||
param($obj, $objectType)
|
||||
|
||||
$strAPI = "$($objectType.API)/$($obj.Object.Id)/assignments"
|
||||
$tmpObj = Invoke-GraphRequest -Url $strAPI
|
||||
|
||||
if(($tmpObj.value | measure).count -gt 0)
|
||||
{
|
||||
$obj.Object.assignments = $tmpObj.value
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region AutoPilot
|
||||
@@ -2791,6 +3043,34 @@ function Start-PreUpdateDeviceHealthScripts
|
||||
}
|
||||
}
|
||||
|
||||
function Start-PostExportDeviceHealthScripts
|
||||
{
|
||||
param($obj, $objectType, $path)
|
||||
|
||||
if($global:chkExportScript.IsChecked)
|
||||
{
|
||||
$fileName = Get-GraphObjectFile $obj $objectType
|
||||
$fi = [IO.FileInfo]"$path\$fileName"
|
||||
|
||||
try
|
||||
{
|
||||
if($obj.detectionScriptContent)
|
||||
{
|
||||
[IO.File]::WriteAllBytes(("$path\$($fi.BaseName)_DetectionScript.ps1"), ([System.Convert]::FromBase64String($obj.detectionScriptContent)))
|
||||
}
|
||||
|
||||
if($obj.remediationScriptContent)
|
||||
{
|
||||
[IO.File]::WriteAllBytes(("$path\$($fi.BaseName)_RemediationScript.ps1"), ([System.Convert]::FromBase64String($obj.remediationScriptContent)))
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
Write-LogError "Failed to export scripts" $_.Exception
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Generic functions
|
||||
@@ -2813,7 +3093,7 @@ function Save-EMDefaultPolicy
|
||||
# Clean up from old version of the script that used the wrong name for Default policies
|
||||
try { [IO.File]::Delete($oldFile) | Out-Null } Catch {}
|
||||
}
|
||||
$obj | ConvertTo-Json -Depth 20 | Out-File -LiteralPath "$path\$((Remove-InvalidFileNameChars $fileName)).json"
|
||||
Save-GraphObjectToFile $obj "$path\$((Remove-InvalidFileNameChars $fileName)).json"
|
||||
}
|
||||
}
|
||||
catch {}
|
||||
@@ -2821,7 +3101,7 @@ function Save-EMDefaultPolicy
|
||||
}
|
||||
function Get-EMSettingsObject
|
||||
{
|
||||
param($obj, $objectType, $file, $settingsProperty = "settings")
|
||||
param($obj, $objectType, $file, $settingsProperty = "settings", [switch]$SettingsArray)
|
||||
|
||||
if($obj.$settingsProperty) { return $obj.$settingsProperty }
|
||||
|
||||
@@ -2829,8 +3109,22 @@ function Get-EMSettingsObject
|
||||
if($fi.Exists)
|
||||
{
|
||||
# Settings property removed during import so lets try exported file first
|
||||
$tmpObj = (Get-Content -LiteralPath $fi.FullName) | ConvertFrom-Json
|
||||
if($tmpObj.$settingsProperty) { return $tmpObj.$settingsProperty }
|
||||
$tmpObj = Get-GraphObjectFromFile $fi.FullName
|
||||
if($SettingsArray -eq $true)
|
||||
{
|
||||
# Only the an array of settings is expected
|
||||
return $tmpObj.$settingsProperty
|
||||
}
|
||||
else
|
||||
{
|
||||
if($tmpObj.$settingsProperty)
|
||||
{
|
||||
# A property with the an array of settings is expected
|
||||
return ([PSCustomObject]@{
|
||||
$settingsProperty = $tmpObj.$settingsProperty
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Write-Log "Settings not included in export file. Try import from _Settings.json file" 2
|
||||
$settingsFile = $fi.DirectoryName + "\" + $fi.BaseName + "_Settings.json"
|
||||
@@ -2839,9 +3133,8 @@ function Get-EMSettingsObject
|
||||
{
|
||||
Write-Log "Settings file '$($fiSettings.FullName)' was not found" 2
|
||||
return
|
||||
}
|
||||
|
||||
(Get-Content -LiteralPath $fiSettings.FullName) | ConvertFrom-Json
|
||||
}
|
||||
Get-GraphObjectFromFile $fiSettings.FullName
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -2864,7 +3157,8 @@ function Add-EMAssignmentsToExportFile
|
||||
Write-Log "File not found: $fileName. Could not add assignments to file" 3
|
||||
return
|
||||
}
|
||||
$tmpObj = Get-Content -LiteralPath $fileName | ConvertFrom-Json
|
||||
|
||||
$tmpObj = Get-GraphObjectFromFile $fileName
|
||||
|
||||
if(-not $url)
|
||||
{
|
||||
@@ -2881,7 +3175,7 @@ function Add-EMAssignmentsToExportFile
|
||||
{
|
||||
$tmpObj.Assignments = $assignments
|
||||
}
|
||||
ConvertTo-Json $tmpObj -Depth 20 | Out-File -LiteralPath $fileName -Force
|
||||
Save-GraphObjectToFile $tmpObj $fileName
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3000,6 +3294,22 @@ function Start-PreImportConditionalAccess
|
||||
{
|
||||
$obj.state = $global:cbImportCAState.SelectedValue
|
||||
}
|
||||
|
||||
if($obj.grantControls.authenticationStrength)
|
||||
{
|
||||
$obj.grantControls.operator = "AND"
|
||||
$tmpObj = Get-GraphObjectFromFile $file
|
||||
|
||||
$authSetting = [PSCustomObject]@{
|
||||
id = $tmpObj.grantControls.authenticationStrength.id
|
||||
}
|
||||
$obj.grantControls.authenticationStrength = $authSetting
|
||||
}
|
||||
|
||||
if($obj.sessionControls.disableResilienceDefaults -eq $false)
|
||||
{
|
||||
$obj.sessionControls.disableResilienceDefaults = $null
|
||||
}
|
||||
}
|
||||
|
||||
function Start-PostExportConditionalAccess
|
||||
@@ -3078,12 +3388,32 @@ function Start-PreImportTermsOfUse
|
||||
return
|
||||
}
|
||||
|
||||
Write-Log "Add file data: $pdfFile"
|
||||
|
||||
$bytes = [IO.File]::ReadAllBytes($pdfFile)
|
||||
$file.fileData = [PSCustomObject]@{
|
||||
data = [Convert]::ToBase64String($bytes)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function Start-PostExportTermsOfUse
|
||||
{
|
||||
param($obj, $objectType, $path)
|
||||
|
||||
foreach($file in $obj.Files)
|
||||
{
|
||||
$url = "agreements/$($obj.id)/file/localizations('$($file.id)')/fileData/data"
|
||||
$data = (Invoke-GraphRequest -Url $url -ODataMetadata "Minimal").Value
|
||||
if($data)
|
||||
{
|
||||
Write-Log "Save file $($file.FileName)"
|
||||
$fileName = "$path\$($file.FileName)"
|
||||
[IO.File]::WriteAllBytes($fileName, [System.Convert]::FromBase64String($data))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region ADMXFiles
|
||||
@@ -3158,7 +3488,46 @@ function Start-PreDeleteADMXFiles
|
||||
@{ "Delete" = $false }
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Reusable Groups
|
||||
function Start-PostGetReusableSettings
|
||||
{
|
||||
param($obj, $objectType)
|
||||
|
||||
$strAPI = "$($objectType.API)/$($obj.Object.Id)?`$select=settinginstance,displayname,description"
|
||||
$tmpObj = Invoke-GraphRequest -Url $strAPI
|
||||
|
||||
if($tmpObj.settingInstance)
|
||||
{
|
||||
$obj.Object | Add-Member Noteproperty -Name "settingInstance" -Value $tmpObj.settingInstance -Force
|
||||
}
|
||||
}
|
||||
|
||||
#endregon
|
||||
|
||||
#region Authentication Strength
|
||||
function Start-PreImportCommandAuthenticationStrengths
|
||||
{
|
||||
param($obj, $objectType, $file, $assignments)
|
||||
|
||||
if($obj.policyType -ne "custom")
|
||||
{
|
||||
Write-Log "Built-in Authentication Strength objects cannot be imported" 2
|
||||
@{ "Import" = $false }
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
#region Authentication Strength
|
||||
function Start-PreImportCommandAuthenticationContext
|
||||
{
|
||||
param($obj, $objectType, $file, $assignments)
|
||||
|
||||
#@{ "Method" = "PATCH" }
|
||||
|
||||
}
|
||||
#endregion
|
||||
|
||||
#nedregion
|
||||
|
||||
Export-ModuleMember -alias * -function *
|
||||
@@ -10,7 +10,7 @@ This module is for the Endpoint Info View. It shows read-only objects in Intune
|
||||
#>
|
||||
function Get-ModuleVersion
|
||||
{
|
||||
'3.5.0'
|
||||
'3.9.0'
|
||||
}
|
||||
|
||||
function Invoke-InitializeModule
|
||||
@@ -22,6 +22,7 @@ function Invoke-InitializeModule
|
||||
ID = "EMInfoGraphAPI"
|
||||
ViewPanel = $viewPanel
|
||||
AuthenticationID = "MSAL"
|
||||
AllowDelete = $false
|
||||
ItemChanged = { Show-GraphObjects -ObjectTypeChanged; Invoke-ModuleFunction "Invoke-GraphObjectsChanged"; Write-Status ""}
|
||||
Activating = { Invoke-EMInfoActivatingView }
|
||||
Authentication = (Get-MSALAuthenticationObject)
|
||||
@@ -87,6 +88,24 @@ function Invoke-InitializeModule
|
||||
Permissons=@("DeviceManagementServiceConfig.ReadWrite.All")
|
||||
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
|
||||
@@ -107,4 +126,39 @@ function Invoke-EMInfoAuthenticateToMSAL
|
||||
{
|
||||
& $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
|
||||
{
|
||||
'3.4.0'
|
||||
'3.9.0'
|
||||
}
|
||||
|
||||
#########################################################################################
|
||||
@@ -357,26 +357,37 @@ function Send-IntuneFileToAzureStorage
|
||||
$ids += $id
|
||||
|
||||
$start = $chunk * $chunkSizeInBytes
|
||||
$length = [Math]::Min($chunkSizeInBytes, $fileSize - $start)
|
||||
$length = [Math]::Min([uint64]($chunkSizeInBytes), [uint64]($fileSize - $start))
|
||||
$bytes = $reader.ReadBytes($length)
|
||||
|
||||
$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)
|
||||
{
|
||||
Request-RenewAzureStorageUpload $fileUri
|
||||
$sasRenewalTimer.Restart()
|
||||
}
|
||||
}
|
||||
$reader.Close()
|
||||
}
|
||||
}
|
||||
catch
|
||||
{
|
||||
Write-Log "Failed to send file to Intune. $($_.Exception.Message)" 3
|
||||
}
|
||||
finally
|
||||
{
|
||||
if ($reader -ne $null) { $reader.Dispose() }
|
||||
if ($reader -ne $null)
|
||||
{
|
||||
$reader.Close()
|
||||
$reader.Dispose()
|
||||
}
|
||||
}
|
||||
|
||||
# Finalize the upload.
|
||||
@@ -443,15 +454,39 @@ function Write-AzureStorageChunk
|
||||
|
||||
$curProgressPreference = $ProgressPreference
|
||||
$ProgressPreference = 'SilentlyContinue'
|
||||
try
|
||||
{
|
||||
$response = Invoke-WebRequest $uri -Method Put -Headers $headers -Body $encodedBody
|
||||
}
|
||||
catch
|
||||
{
|
||||
Write-Log "Failed to upload file chunk. $($_.Exception.Message)" 3
|
||||
}
|
||||
|
||||
$success = $false
|
||||
$retryCount = 0
|
||||
while($true)
|
||||
{
|
||||
|
||||
try
|
||||
{
|
||||
$response = Invoke-WebRequest $uri -Method Put -Headers $headers -Body $encodedBody -UseBasicParsing
|
||||
if($retryCount -gt 0)
|
||||
{
|
||||
Write-Log "Chunk uploaded successfully"
|
||||
}
|
||||
$success = $true
|
||||
break
|
||||
}
|
||||
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
|
||||
break
|
||||
}
|
||||
}
|
||||
}
|
||||
$ProgressPreference = $curProgressPreference
|
||||
$success
|
||||
}
|
||||
|
||||
function Get-IntuneKey
|
||||
|
||||
@@ -10,7 +10,7 @@ This module manages Authentication for the application with MSAL. It is also res
|
||||
#>
|
||||
function Get-ModuleVersion
|
||||
{
|
||||
'3.7.2'
|
||||
'3.8.1'
|
||||
}
|
||||
|
||||
$global:msalAuthenticator = $null
|
||||
@@ -37,7 +37,7 @@ function Invoke-InitializeModule
|
||||
Name = "Azure AD China"
|
||||
Value = "china"
|
||||
URL = "login.partner.microsoftonline.cn"
|
||||
GraphURL = "https://microsoftgraph.chinacloudapi.cn"
|
||||
GraphURL = "microsoftgraph.chinacloudapi.cn"
|
||||
}
|
||||
)
|
||||
|
||||
@@ -209,16 +209,15 @@ function Set-MSALGraphEnvironment
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif($cuAADEnv.GraphURL)
|
||||
elseif($curAADEnv.GraphURL)
|
||||
{
|
||||
$graphEnv = $cuAADEnv.GraphURL
|
||||
$graphEnv = $curAADEnv.GraphURL
|
||||
}
|
||||
|
||||
Write-Log "Use Graph environment: $graphEnv"
|
||||
$global:MSALGraphEnvironment = $graphEnv
|
||||
}
|
||||
|
||||
|
||||
function Get-MSALUserInfo
|
||||
{
|
||||
if($global:MSALToken)
|
||||
@@ -231,7 +230,7 @@ function Get-MSALUserInfo
|
||||
$global:Me = $tmpMe
|
||||
Write-Log "Get profile picture"
|
||||
$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
|
||||
}
|
||||
|
||||
Write-Log "Get organization info"
|
||||
|
||||
+342
-101
@@ -10,7 +10,7 @@ This module manages Microsoft Grap fuctions like calling APIs, managing graph ob
|
||||
#>
|
||||
function Get-ModuleVersion
|
||||
{
|
||||
'3.7.2'
|
||||
'3.9.0'
|
||||
}
|
||||
|
||||
$global:MSGraphGlobalApps = @(
|
||||
@@ -451,7 +451,35 @@ function Invoke-GraphRequest
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-LogError "Failed to invoke MS Graph with URL $Url (Request ID: $requestId). Status code: $($_.Exception.Response.StatusCode)" $_.Excption
|
||||
$extMessage = $null
|
||||
try
|
||||
{
|
||||
$reader = New-Object System.IO.StreamReader($_.Exception.Response.GetResponseStream())
|
||||
$reader.BaseStream.Position = 0
|
||||
$reader.DiscardBufferedData()
|
||||
$response = $reader.ReadToEnd() | ConvertFrom-Json
|
||||
if($response.Error.Message)
|
||||
{
|
||||
$extMessage = $response.Error.Message
|
||||
try
|
||||
{
|
||||
if($response.Error.Message.StartsWith("{") -and $response.Error.Message.EndsWith("}"))
|
||||
{
|
||||
$message = $response.Error.Message | ConvertFrom-Json
|
||||
if($message.Message)
|
||||
{
|
||||
$extMessage = ". Response message: $($message.Message)"
|
||||
}
|
||||
}
|
||||
}
|
||||
catch {}
|
||||
|
||||
$extMessage = ". Response message: $($extMessage)"
|
||||
}
|
||||
}
|
||||
catch{}
|
||||
|
||||
Write-LogError "Failed to invoke MS Graph with URL $Url (Request ID: $requestId). Status code: $($_.Exception.Response.StatusCode)$extMessage" $_.Exception
|
||||
}
|
||||
}
|
||||
} while($retryRequest -eq $true)
|
||||
@@ -559,21 +587,31 @@ function Get-GraphObjects
|
||||
|
||||
if($graphObjects -and ($graphObjects | GM -Name Value -MemberType NoteProperty))
|
||||
{
|
||||
$retObjects = $graphObjects.Value
|
||||
$retObjects = $graphObjects.Value
|
||||
}
|
||||
else
|
||||
{
|
||||
$retObjects = $graphObjects
|
||||
}
|
||||
|
||||
$graphObjects = Add-GraphObjectProperties $retObjects $objectType $property $exclude $SortProperty
|
||||
|
||||
if($SingleObject -ne $true -and $objectType.PostListCommand)
|
||||
if($retObjects)
|
||||
{
|
||||
$graphObjects = & $objectType.PostListCommand $graphObjects $objectType
|
||||
$graphObjects = Add-GraphObjectProperties $retObjects $objectType $property $exclude $SortProperty
|
||||
|
||||
if($SingleObject -ne $true -and $objectType.PostListCommand)
|
||||
{
|
||||
$graphObjects = & $objectType.PostListCommand $graphObjects $objectType
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
$graphObjects = $null
|
||||
}
|
||||
|
||||
$graphObjects
|
||||
if(($graphObjects | measure).Count -gt 0)
|
||||
{
|
||||
$graphObjects
|
||||
}
|
||||
}
|
||||
|
||||
function Add-GraphObjectProperties
|
||||
@@ -693,12 +731,12 @@ function Show-GraphObjects
|
||||
|
||||
$script:nextGraphPage = $null
|
||||
|
||||
$graphObjects = @(Get-GraphObjects -property $global:curObjectType.ViewProperties -objectType $global:curObjectType -SinglePage -Filter $filter)
|
||||
[array]$graphObjects = Get-GraphObjects -property $global:curObjectType.ViewProperties -objectType $global:curObjectType -SinglePage -Filter $filter
|
||||
|
||||
$dgObjects.AutoGenerateColumns = $false
|
||||
$dgObjects.Columns.Clear()
|
||||
|
||||
if(($graphObjects | measure).Count -gt 0)
|
||||
if($graphObjects)
|
||||
{
|
||||
$tmpObj = $graphObjects | Select -First 1
|
||||
|
||||
@@ -781,6 +819,7 @@ function Show-GraphObjects
|
||||
if($ctrl.Name -eq "btnDelete")
|
||||
{
|
||||
$allowDelete = Get-SettingValue "EMAllowDelete"
|
||||
if($global:currentViewObject.ViewInfo.AllowDelete -eq $false) { $allowDelete = $false }
|
||||
$ctrl.Visibility = (?: ($allowDelete -eq $true) "Visible" "Collapsed")
|
||||
}
|
||||
elseif(-not $global:curObjectType.ShowButtons -or ($global:curObjectType.ShowButtons | Where-Object { $ctrl.Name -like "*$($_)" } ))
|
||||
@@ -1305,6 +1344,18 @@ function Get-GraphBatchObjectTypes
|
||||
$silentViewObjects
|
||||
}
|
||||
|
||||
function Get-GraphObjectType
|
||||
{
|
||||
param($objTypeId)
|
||||
|
||||
$intuneView = $global:viewObjects | Where { $_.ViewInfo.Id -eq "IntuneGraphAPI" }
|
||||
|
||||
if($intuneView)
|
||||
{
|
||||
($intuneView.ViewItems | Where Id -eq $objTypeId)
|
||||
}
|
||||
}
|
||||
|
||||
function Start-GraphObjectExport
|
||||
{
|
||||
Write-Status "Export objects" -Block
|
||||
@@ -1335,7 +1386,7 @@ function Start-GraphObjectExport
|
||||
$folder = Expand-FileName $folder
|
||||
|
||||
Write-Status "Get a list of all $($item.ObjectType.Title) objects" -SkipLog -Force
|
||||
$objects = @(Get-GraphObjects -property $item.ObjectType.ViewProperties -objectType $item.ObjectType)
|
||||
[array]$objects = Get-GraphObjects -property $item.ObjectType.ViewProperties -objectType $item.ObjectType
|
||||
|
||||
if((Get-SettingValue "UseBatchAPI") -eq $true)
|
||||
{
|
||||
@@ -1345,6 +1396,7 @@ function Start-GraphObjectExport
|
||||
$total = ($batchObjects | measure).Count
|
||||
foreach($batchResult in $batchObjects)
|
||||
{
|
||||
if(-not $batchResult.Object) { continue }
|
||||
$objName = Get-GraphObjectName $batchResult.Object $batchResult.ObjectType
|
||||
Write-Status "Export $($item.Title): $objName ($($i)/$($total))" -Force
|
||||
Export-GraphObject $batchResult.Object $batchResult.ObjectType $folder -IsFullObject
|
||||
@@ -1621,7 +1673,7 @@ function Show-GraphImportForm
|
||||
$navigationPropObjects = @()
|
||||
foreach ($fileObj in $filesToImport)
|
||||
{
|
||||
if($allowUpdate -and $global:cbImportType.SelectedValue -ne "alwaysImport" -and (Reset-GraphObjet $fileObj $global:dgObjects.ItemsSource))
|
||||
if($allowUpdate -and $global:cbImportType.SelectedValue -ne "alwaysImport" -and (Reset-GraphObject $fileObj $global:dgObjects.ItemsSource))
|
||||
{
|
||||
continue
|
||||
}
|
||||
@@ -1839,7 +1891,7 @@ function Start-GraphObjectImport
|
||||
try
|
||||
{
|
||||
Write-Status "Get $($item.Title) objects" -Force
|
||||
$graphObjects = @(Get-GraphObjects -property $item.ObjectType.ViewProperties -objectType $item.ObjectType)
|
||||
[array]$graphObjects = Get-GraphObjects -property $item.ObjectType.ViewProperties -objectType $item.ObjectType
|
||||
}
|
||||
catch {}
|
||||
}
|
||||
@@ -1864,7 +1916,7 @@ function Start-GraphObjectImport
|
||||
continue
|
||||
}
|
||||
|
||||
if($allowUpdate -and $global:cbImportType.SelectedValue -ne "alwaysImport" -and $graphObjects -and (Reset-GraphObjet $fileObj $graphObjects))
|
||||
if($allowUpdate -and $global:cbImportType.SelectedValue -ne "alwaysImport" -and $graphObjects -and (Reset-GraphObject $fileObj $graphObjects))
|
||||
{
|
||||
$importedObjects++
|
||||
continue
|
||||
@@ -2048,7 +2100,7 @@ function Show-GraphBulkDeleteForm
|
||||
Write-Log "Start bulk delete"
|
||||
Write-Log "****************************************************************"
|
||||
|
||||
foreach($item in ($global:dgBulkDeleteObjects.ItemsSource | Where Selected -eq $true))
|
||||
foreach($item in ($global:dgBulkDeleteObjects.ItemsSource | Where Selected -eq $true | sort-object -property @{e={$_.ObjectType.ImportOrder}} -Descending))
|
||||
{
|
||||
Write-Log "----------------------------------------------------------------"
|
||||
Write-Log "Delete $($item.ObjectType.Title) objects"
|
||||
@@ -2060,8 +2112,8 @@ function Show-GraphBulkDeleteForm
|
||||
|
||||
try
|
||||
{
|
||||
Write-Status "Get $($item.Title) objects" -Force
|
||||
$objects = @(Get-GraphObjects -property $item.ObjectType.ViewProperties -objectType $item.ObjectType)
|
||||
Write-Status "Get $($item.ObjectType.Title) objects" -Force
|
||||
[array]$objects = Get-GraphObjects -property $item.ObjectType.ViewProperties -objectType $item.ObjectType
|
||||
foreach($obj in $objects)
|
||||
{
|
||||
$objName = Get-GraphObjectName $obj.Object $obj.ObjectType
|
||||
@@ -2071,7 +2123,7 @@ function Show-GraphBulkDeleteForm
|
||||
continue
|
||||
}
|
||||
|
||||
Write-Status "Delete $($item.Title): $objName" -Force -SkipLog
|
||||
Write-Status "Delete $($item.ObjectType.Title): $objName" -Force -SkipLog
|
||||
Remove-GraphObject $obj.Object $obj.ObjectType $folder
|
||||
}
|
||||
}
|
||||
@@ -2113,12 +2165,7 @@ function Get-GraphFileObjects
|
||||
}
|
||||
else
|
||||
{
|
||||
$json = Get-Content -LiteralPath $file.FullName -Raw
|
||||
if($global:Organization.Id)
|
||||
{
|
||||
$json = $json -replace "%OrganizationId%",$global:Organization.Id
|
||||
}
|
||||
$graphObj = (ConvertFrom-Json $json)
|
||||
$graphObj = Get-GraphObjectFromFile $file.FullName
|
||||
}
|
||||
|
||||
$obj = New-Object PSObject -Property @{
|
||||
@@ -2194,16 +2241,16 @@ function Import-GraphFile
|
||||
}
|
||||
}
|
||||
|
||||
function Reset-GraphObjet
|
||||
function Reset-GraphObject
|
||||
{
|
||||
param($fileObj, $objectList)
|
||||
|
||||
$nameProp = ?? $fileObj.ObjectType.NameProperty "displayName"
|
||||
$curObject = $objectList | Where { $_.Object.$nameProp -eq $fileObj.Object.$nameProp -and $_.Object.'@OData.Type' -eq $fileObj.Object.'@OData.Type' }
|
||||
|
||||
if($global:cbImportType.SelectedValue -eq "skipIfExist" -and ($curObject | measure).Count -gt 0)
|
||||
if($global:cbImportType.SelectedValue -eq "skipIfExist" -and ($curObject | measure).Count -gt 0 -and $fileObj.ObjectType.AlwaysImport -ne $true)
|
||||
{
|
||||
Write-Log "Objects with name $($fileObj.Object.$nameProp) already exists. Object will not be imported"
|
||||
Write-Log "Object with name $($fileObj.Object.$nameProp) already exists. Object will not be imported"
|
||||
return $true
|
||||
}
|
||||
elseif(($curObject | measure).Count -gt 1)
|
||||
@@ -2213,7 +2260,12 @@ function Reset-GraphObjet
|
||||
}
|
||||
elseif(($curObject | measure).Count -eq 1)
|
||||
{
|
||||
Write-Log "Update $((Get-GraphObjectName $fileObj.Object $fileObj.ObjectType)) with id $($curObject.Object.Id)"
|
||||
$idInfo = ""
|
||||
if([String]::IsNullOrEmpty($curObject.Object.Id) -eq $false)
|
||||
{
|
||||
$idInfo = " with id $($curObject.Object.Id)"
|
||||
}
|
||||
Write-Log "Update $((Get-GraphObjectName $fileObj.Object $fileObj.ObjectType))$idInfo"
|
||||
$objectType = $fileObj.ObjectType
|
||||
|
||||
# Clone the object before removing properties
|
||||
@@ -2369,10 +2421,12 @@ function Import-GraphObjectAssignment
|
||||
|
||||
if($preConfig["Import"] -eq $false) { return } # Assignment managed manually so skip further processing
|
||||
|
||||
$api = ?? $preConfig["API"] "$($objectType.API)/$($newObj.Id)/assign"
|
||||
$api = ?? $preConfig["API"] "$($objectType.API)/$($obj.Id)/assign"
|
||||
|
||||
$method = ?? $preConfig["Method"] "POST"
|
||||
|
||||
$clonedAssignments = ?? $preConfig["Assignments"] $clonedAssignments
|
||||
|
||||
$keepProperties = ?? $objectType.AssignmentProperties @("target")
|
||||
$keepTargetProperties = ?? $objectType.AssignmentTargetProperties @("@odata.type","groupId","deviceAndAppManagementAssignmentFilterId","deviceAndAppManagementAssignmentFilterType")
|
||||
|
||||
@@ -2417,8 +2471,7 @@ function Import-GraphObjectAssignment
|
||||
if($objectType.PostImportAssignmentsCommand)
|
||||
{
|
||||
& $objectType.PostImportAssignmentsCommand $obj $objectType $fromFile $objAssign
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
#endregion
|
||||
|
||||
@@ -2491,7 +2544,6 @@ function Add-GraphMigrationInfo
|
||||
if($objType -eq "#microsoft.graph.groupAssignmentTarget" -or
|
||||
$objType -eq "#microsoft.graph.exclusionGroupAssignmentTarget")
|
||||
{
|
||||
#Add-GroupMigrationObject $objInfo.groupid
|
||||
Add-GraphMigrationObject $objInfo.groupid "/groups" "Group"
|
||||
}
|
||||
elseif($objType -eq "#microsoft.graph.allLicensedUsersAssignmentTarget" -or
|
||||
@@ -2572,7 +2624,7 @@ function Add-GroupMigrationObject
|
||||
if(-not $groupObj)
|
||||
{
|
||||
# Get group info
|
||||
$groupObj = Invoke-GraphRequest "/groups/$groupId" -ODataMetadata "none"
|
||||
$groupObj = Invoke-GraphRequest "/groups/$groupId" -ODataMetadata "none" -NoError
|
||||
}
|
||||
|
||||
if($groupObj)
|
||||
@@ -2587,9 +2639,13 @@ function Add-GroupMigrationObject
|
||||
$grouspPath = Join-Path $path "Groups"
|
||||
if(-not (Test-Path $grouspPath)) { mkdir -Path $grouspPath -Force -ErrorAction SilentlyContinue | Out-Null }
|
||||
$fileName = "$grouspPath\$((Remove-InvalidFileNameChars $groupObj.displayName)).json"
|
||||
ConvertTo-Json $groupObj -Depth 50 | Out-File $fileName -Force
|
||||
Save-GraphObjectToFile $groupObj $fileName
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Log "No group found with ID $($groupId). It might be deleted." 2
|
||||
}
|
||||
}
|
||||
|
||||
function Add-GraphMigrationObject
|
||||
@@ -2609,13 +2665,13 @@ function Add-GraphMigrationObject
|
||||
if(-not $graphObj)
|
||||
{
|
||||
# Get object info
|
||||
$graphObj = Invoke-GraphRequest "$($grapAPI)/$objId" -ODataMetadata "none"
|
||||
$graphObj = Invoke-GraphRequest "$($grapAPI)/$objId" -ODataMetadata "none" -NoError
|
||||
}
|
||||
|
||||
if($graphObj)
|
||||
{
|
||||
# Add object to cache
|
||||
if($global:AADObjectCache.ContainsKey($objId) -eq $false) { $global:AADObjectCache.Add($objId, $ugraphObjserObj) }
|
||||
if($global:AADObjectCache.ContainsKey($objId) -eq $false) { $global:AADObjectCache.Add($objId, $graphObj ) }
|
||||
|
||||
# Add object to migration file
|
||||
if((Add-GraphMigrationObjectToFile $graphObj $path $objTypeName))
|
||||
@@ -2626,10 +2682,14 @@ function Add-GraphMigrationObject
|
||||
$grouspPath = Join-Path $path "Groups"
|
||||
if(-not (Test-Path $grouspPath)) { mkdir -Path $grouspPath -Force -ErrorAction SilentlyContinue | Out-Null }
|
||||
$fileName = "$grouspPath\$((Remove-InvalidFileNameChars $graphObj.displayName)).json"
|
||||
ConvertTo-Json $graphObj -Depth 50 | Out-File $fileName -Force
|
||||
Save-GraphObjectToFile $graphObj $fileName
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Log "No $objTypeName found with ID $($groupId). It might be deleted." 2
|
||||
}
|
||||
}
|
||||
|
||||
function Get-GraphMigrationObject
|
||||
@@ -2754,22 +2814,23 @@ function Get-GraphMigrationObjectsFromFile
|
||||
foreach($migObj in $migFileObj.Objects)
|
||||
{
|
||||
if($migObj.Type -like "*group*")
|
||||
{
|
||||
$obj = (Invoke-GraphRequest "/groups?`$filter=displayName eq '$($migObj.DisplayName)'").Value
|
||||
{
|
||||
$migTableGroupName = $migObj.DisplayName.Trim()
|
||||
$obj = (Invoke-GraphRequest "/groups?`$filter=displayName eq '$($migTableGroupName)'").Value
|
||||
if(-not $obj)
|
||||
{
|
||||
$groupFi = $null
|
||||
if($global:GraphMigrationTable)
|
||||
{
|
||||
$fi = [IO.FileInfo]$global:GraphMigrationTable
|
||||
$groupFi = [IO.FileInfo]($fi.DirectoryName + "\Groups\$((Remove-InvalidFileNameChars $migObj.DisplayName)).json")
|
||||
$groupFi = [IO.FileInfo]($fi.DirectoryName + "\Groups\$((Remove-InvalidFileNameChars $migTableGroupName)).json")
|
||||
}
|
||||
|
||||
if($groupFi.Exists -eq $true)
|
||||
{
|
||||
# ToDo: Create group from Json (could be a dynamic group)
|
||||
# Warn if synched group
|
||||
$groupObj = (Get-Content -LiteralPath $groupFi.FullName) | ConvertFrom-Json
|
||||
$groupObj = Get-GraphObjectFromFile $groupFi.FullName
|
||||
|
||||
#isAssignableToRole - For Role assignment groupd.
|
||||
$keepProps = @("displayName","description","mailEnabled","mailNickname","securityEnabled","membershipRule","groupTypes", "membershipRuleProcessingState")
|
||||
@@ -2779,31 +2840,47 @@ function Get-GraphMigrationObjectsFromFile
|
||||
|
||||
Remove-Property $groupObj $prop.Name
|
||||
}
|
||||
$groupObj.displayName = $groupObj.displayName.Trim()
|
||||
$groupJson = ConvertTo-Json $groupObj -Depth 50
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Log "No group object found for $($migObj.DisplayName). Creating a cloud group with default settings" 2
|
||||
$groupName = $migTableGroupName
|
||||
Write-Log "No group object found for $groupName. Creating a cloud group with default settings" 2
|
||||
$dateStr = ((Get-Date).ToString("yyMMddHHmmss"))
|
||||
|
||||
if(($groupName.Length + $dateStr.Length) -gt 64)
|
||||
{
|
||||
$nickName = $groupName.Substring(0,(64-$dateStr.Length))
|
||||
}
|
||||
else
|
||||
{
|
||||
$nickName = $groupName
|
||||
}
|
||||
$nickName = $nickName + $dateStr
|
||||
|
||||
$groupJson = @"
|
||||
{
|
||||
"displayName": "$($migObj.DisplayName)",
|
||||
"groupTypes": [
|
||||
],
|
||||
"displayName": "$($groupName)",
|
||||
"mailEnabled": false,
|
||||
"mailNickname" "NotSet"
|
||||
"securityEnabled": true
|
||||
"mailNickname": "$($nickName)",
|
||||
"securityEnabled": true
|
||||
}
|
||||
"@
|
||||
}
|
||||
Write-Log "Create AAD Group $($migObj.DisplayName)"
|
||||
Write-Log "Create AAD Group $($migTableGroupName)"
|
||||
|
||||
$obj = Invoke-GraphRequest "/groups" -HttpMethod "POST" -Content $groupJson
|
||||
}
|
||||
$global:MigrationTableCache += (New-Object PSObject -Property @{
|
||||
OriginalId = $migObj.Id
|
||||
Id = $obj.Id
|
||||
Type = $migObj.Type
|
||||
})
|
||||
|
||||
if($obj)
|
||||
{
|
||||
$global:MigrationTableCache += (New-Object PSObject -Property @{
|
||||
OriginalId = $migObj.Id
|
||||
Id = $obj.Id
|
||||
Type = $migObj.Type
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3017,7 +3094,7 @@ function Export-GraphObject
|
||||
[switch]$SkipAddID,
|
||||
[switch]$PassThru)
|
||||
|
||||
if(-not $exportFolder) { return }
|
||||
if(-not $exportFolder -or -not $objToExport -or -not $objectType) { return }
|
||||
|
||||
Write-Status "Export $((Get-GraphObjectName $objToExport $objectType))"
|
||||
|
||||
@@ -3057,14 +3134,7 @@ function Export-GraphObject
|
||||
}
|
||||
|
||||
$fullPath = ([IO.Path]::Combine($exportFolder, (Remove-InvalidFileNameChars "$($fileName).json")))
|
||||
$json = $obj | ConvertTo-Json -Depth 50
|
||||
|
||||
if($global:Organization.Id)
|
||||
{
|
||||
$json = $json -replace $global:Organization.Id, "%OrganizationId%"
|
||||
}
|
||||
|
||||
$json | Out-File -LiteralPath $fullPath -Force
|
||||
Save-GraphObjectToFile $obj $fullPath
|
||||
|
||||
if($objectType.PostExportCommand)
|
||||
{
|
||||
@@ -3097,12 +3167,11 @@ function Set-GraphNavigationPropertiesFromFile
|
||||
}
|
||||
|
||||
# Reload data from file. Some object properties was removed before import...
|
||||
$objFileInfo = (ConvertFrom-Json (Get-Content -LiteralPath $navPropObject.File.FileInfo.FullName -Raw))
|
||||
$objFileInfo = Get-GraphObjectFromFile $navPropObject.File.FileInfo.FullName
|
||||
|
||||
if(-not ($objFileInfo.PSObject.Properties | Where { $_.Name -like "#CustomRef_*" })) { return }
|
||||
|
||||
Set-GraphNavigationProperties $navPropObject.ImportedObject $objFileInfo $navPropObject.File.ObjectType
|
||||
|
||||
}
|
||||
|
||||
function Set-GraphNavigationProperties
|
||||
@@ -3129,25 +3198,49 @@ function Set-GraphNavigationProperties
|
||||
# Is this the correct way of filter out Assignments, summaries etc.?
|
||||
if($prop.ContainsTarget -eq $true) { continue }
|
||||
|
||||
|
||||
if(-not ($oldObj."$($prop.Name)@odata.associationLink")) { continue }
|
||||
|
||||
$associationLink = $oldObj."$($prop.Name)@odata.associationLink" -replace $oldObj.Id,$newObj.Id
|
||||
$refBodyObjs = $null #@()
|
||||
$refBodyObjs = @()
|
||||
$refObjName = $null
|
||||
$refObjId = $null
|
||||
if($prop.Type -like "Collection(*")
|
||||
{
|
||||
$multiNavProperty = $true
|
||||
$method = "POST"
|
||||
}
|
||||
else
|
||||
{
|
||||
$multiNavProperty = $false
|
||||
$method = "PUT"
|
||||
}
|
||||
|
||||
if($FromOldObject -eq $true)
|
||||
{
|
||||
$navProp = Invoke-GraphRequest -URL $oldObj."$($prop.Name)@odata.navigationLink" -ODataMetadata "minimal" -NoError
|
||||
|
||||
if(-not $navProp) { continue }
|
||||
|
||||
if($multiNavProperty)
|
||||
{
|
||||
$navProperties = $navProp.Value
|
||||
}
|
||||
else
|
||||
{
|
||||
$navProperties = $navProp
|
||||
}
|
||||
|
||||
$refObjName = Get-GraphObjectName $navProp $navProp
|
||||
$refObjId = $navProp.Id
|
||||
|
||||
$refBodyObjs = ([PSCustomObject]@{
|
||||
"@odata.id" = ("https://$global:MSALGraphEnvironment/beta/$($objectType.API)('$($navProp.Id)')")
|
||||
})
|
||||
foreach($navProp in $navProperties)
|
||||
{
|
||||
$refBodyObjs += [PSCustomObject]@{
|
||||
RefObjName = $navProp.displayName ### NOT Correct. Migh be another property but we don't know the type
|
||||
RefObjId = $navProp.Id
|
||||
RefBody = ([PSCustomObject]@{
|
||||
"@odata.id" = ("https://$global:MSALGraphEnvironment/beta/$($objectType.API)('$($navProp.Id)')")
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -3156,50 +3249,58 @@ function Set-GraphNavigationProperties
|
||||
$idx = $oldObj."#CustomRef_$($prop.Name)".IndexOf("|:|")
|
||||
if($idx -gt -1)
|
||||
{
|
||||
$refObjName = $oldObj."#CustomRef_$($prop.Name)".SubString(0,$idx)
|
||||
$refObjNames = $oldObj."#CustomRef_$($prop.Name)".SubString(0,$idx)
|
||||
}
|
||||
else
|
||||
{
|
||||
$refObjName = $oldObj."#CustomRef_$($prop.Name)"
|
||||
}
|
||||
|
||||
$refObjects = Invoke-GraphRequest -URL "$($objectType.API)?`$filter=$($nameProp) eq '$($refObjName)'" -NoError
|
||||
$refObjNames = $oldObj."#CustomRef_$($prop.Name)"
|
||||
}
|
||||
|
||||
$objectsFound = ($refObjects.value | measure).Count
|
||||
foreach($refObjName in $refObjNames.Split(","))
|
||||
{
|
||||
$refObjects = Invoke-GraphRequest -URL "$($objectType.API)?`$filter=$($nameProp) eq '$($refObjName)'" -NoError
|
||||
|
||||
if($objectsFound -eq 1)
|
||||
{
|
||||
# Are there any references that allows multiple ref objects?
|
||||
foreach($refObj in $refObjects.value)
|
||||
$objectsFound = ($refObjects.value | measure).Count
|
||||
|
||||
if($objectsFound -eq 1)
|
||||
{
|
||||
$refBodyObjs = ([PSCustomObject]@{
|
||||
"@odata.id" = ("https://$global:MSALGraphEnvironment/beta/$($objectType.API)('$($refObj.Id)')")
|
||||
})
|
||||
$refObjId = $refObj.Id
|
||||
# Are there any references that allows multiple ref objects?
|
||||
foreach($refObj in $refObjects.value)
|
||||
{
|
||||
$refBodyObjs += [PSCustomObject]@{
|
||||
RefObjName = $refObjName
|
||||
RefObjId = $refObj.Id
|
||||
RefBody = ([PSCustomObject]@{
|
||||
"@odata.id" = ("https://$global:MSALGraphEnvironment/beta/$($objectType.API)('$($refObj.Id)')")
|
||||
})
|
||||
}
|
||||
}
|
||||
}
|
||||
elseif($objectsFound -gt 1)
|
||||
{
|
||||
Write-Log "Multiple objects ($objectsFound) found with $nameProp $refObjName. Skipping reference." 2
|
||||
continue
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Log "No object found with $nameProp $refObjName" 2
|
||||
continue
|
||||
}
|
||||
}
|
||||
elseif($objectsFound -gt 1)
|
||||
{
|
||||
Write-Log "Multiple objects ($objectsFound) found with $nameProp $refObjName. Skipping reference." 2
|
||||
continue
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Log "No object found with $nameProp $refObjName" 2
|
||||
continue
|
||||
}
|
||||
}
|
||||
|
||||
Write-Log "Add $refObjName ($refObjId) to navigation property $($prop.Name)"
|
||||
|
||||
$body = $refBodyObjs | ConvertTo-Json -Depth 50
|
||||
Invoke-GraphRequest -URL $associationLink -HttpMethod "PUT" -Content $body | Out-Null
|
||||
foreach($refObject in $refBodyObjs)
|
||||
{
|
||||
Write-Log "Add $($refObject.RefObjName) ($($refObject.RefObjId)) to navigation property $($prop.Name)"
|
||||
$body = $refObject.RefBody | ConvertTo-Json -Depth 50
|
||||
Invoke-GraphRequest -URL $associationLink -HttpMethod $method -Content $body | Out-Null
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
<#
|
||||
Add Navigation Property data to the object so it included in the exported json file
|
||||
Add Navigation Property data to the object so they are included in the exported json file
|
||||
#>
|
||||
function Add-GraphNavigationProperties
|
||||
{
|
||||
@@ -3264,6 +3365,7 @@ function Get-GraphBatchObjects
|
||||
$batchArr = @()
|
||||
$batchTotal = 0
|
||||
$objectType = $null
|
||||
|
||||
foreach($obj in $objects)
|
||||
{
|
||||
$objectType = $obj.ObjectType
|
||||
@@ -3460,7 +3562,11 @@ function Import-GraphObject
|
||||
|
||||
$newObj = (Invoke-GraphRequest -Url $strAPI -Content $json -HttpMethod $method @params)
|
||||
|
||||
if($newObj -and $method -eq "POST")
|
||||
if($newObj -is [Boolean] -and $newObj -and $method -eq "PATCH")
|
||||
{
|
||||
$newObj = (Get-GraphObject -obj $obj -objectType $objectType -SkipAssignments).Object
|
||||
}
|
||||
elseif($newObj -and $method -eq "POST")
|
||||
{
|
||||
Write-Log "$($objectType.Title) object imported successfully with id: $($newObj.Id)"
|
||||
}
|
||||
@@ -3984,6 +4090,12 @@ function Get-GraphObjectName
|
||||
{
|
||||
param($obj, $objectType)
|
||||
|
||||
if($objectType.GetObjectName)
|
||||
{
|
||||
return (& $objectType.GetObjectName $obj $objectType)
|
||||
|
||||
}
|
||||
|
||||
$obj."$((?? ($objectType.NameProperty) "displayName"))"
|
||||
}
|
||||
|
||||
@@ -4120,3 +4232,132 @@ function Get-GraphEntityTypeProperties
|
||||
|
||||
$properties
|
||||
}
|
||||
|
||||
function Get-GraphObjectFromFile
|
||||
{
|
||||
param($fileName)
|
||||
|
||||
if(-not $fileName) { return }
|
||||
|
||||
if([System.IO.File]::Exists($fileName) -eq $false)
|
||||
{
|
||||
Write-LogDebug "File $fileName not found" 2
|
||||
return
|
||||
}
|
||||
|
||||
$json = Get-Content -LiteralPath $fileName -Raw
|
||||
if($global:Organization.Id)
|
||||
{
|
||||
$json = $json -replace "%OrganizationId%",$global:Organization.Id
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
$json | ConvertFrom-Json
|
||||
}
|
||||
catch
|
||||
{
|
||||
Write-LogError "Failed to convert json file $fileName" $_.Exception
|
||||
}
|
||||
}
|
||||
|
||||
function Save-GraphObjectToFile
|
||||
{
|
||||
param($obj, $fileName)
|
||||
|
||||
$json = $obj | ConvertTo-Json -Depth 50
|
||||
|
||||
if($global:Organization.Id)
|
||||
{
|
||||
$json = $json -replace $global:Organization.Id, "%OrganizationId%"
|
||||
}
|
||||
|
||||
try
|
||||
{
|
||||
$json | Out-File -LiteralPath $fileName -Force -ErrorAction Stop
|
||||
}
|
||||
catch
|
||||
{
|
||||
Write-LogError "Failed to save file $fileName" $_.Exception
|
||||
}
|
||||
}
|
||||
|
||||
function Get-GraphObjectFile
|
||||
{
|
||||
param($obj, $objectType, $path)
|
||||
$fileName = (Get-GraphObjectName $obj $objectType)
|
||||
|
||||
if((Get-SettingValue "AddIDToExportFile") -eq $true -and $obj.Id)
|
||||
{
|
||||
$fileName = ($fileName + "_" + $obj.Id)
|
||||
}
|
||||
$fileName = "$((Remove-InvalidFileNameChars $fileName)).json"
|
||||
if($path)
|
||||
{
|
||||
$fileName = "$path\$fileName"
|
||||
}
|
||||
|
||||
$fileName
|
||||
}
|
||||
|
||||
function Confirm-GraphMatchFilter
|
||||
{
|
||||
param($graphObj, [string]$filter)
|
||||
|
||||
if(-not $filter.Trim()) { return $true }
|
||||
|
||||
$filterScope = ""
|
||||
|
||||
if($filter -like "scope:*" -or $filter -like "tag:*")
|
||||
{
|
||||
$filterScope = $filter.Split(':')[1]
|
||||
}
|
||||
|
||||
$objName = Get-GraphObjectName $graphObj.Object $graphObj.ObjectType
|
||||
if($filterScope)
|
||||
{
|
||||
if(($graphObj.Object.PSObject.Properties | Where Name -eq "roleScopeTagIds"))
|
||||
{
|
||||
$scopeTagProperty = "roleScopeTagIds"
|
||||
}
|
||||
elseif(($graphObj.Object.PSObject.Properties | Where Name -eq "roleScopeTags"))
|
||||
{
|
||||
$scopeTagProperty = "roleScopeTags"
|
||||
}
|
||||
else
|
||||
{
|
||||
Write-Log "$objName excluded based on Scope(Tags) not supported on $($graphObj.ObjectType.GroupId) objects"
|
||||
continue
|
||||
}
|
||||
|
||||
if(-not $script:scopeTags -and $script:offlineDocumentation -ne $true)
|
||||
{
|
||||
$script:scopeTags = (Invoke-GraphRequest -Url "/deviceManagement/roleScopeTags").Value
|
||||
}
|
||||
|
||||
$found = $false
|
||||
foreach($scopeTagId in $graphObj.Object."$scopeTagProperty")
|
||||
{
|
||||
$scopeTagObj = $script:scopeTags | Where Id -eq $scopeTagId
|
||||
if($scopeTagObj -and $filterScope -and $scopeTagObj.displayName -match [RegEx]::Escape($filterScope))
|
||||
{
|
||||
return $true
|
||||
}
|
||||
}
|
||||
|
||||
if($found -eq $false)
|
||||
{
|
||||
Write-Log "$objName excluded based on no Scope(Tags) found that matches the filter"
|
||||
return $false
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if($objName -and $filter -and $objName -notmatch [RegEx]::Escape($filter))
|
||||
{
|
||||
Write-Log "$objName excluded based on the name does not match the filter"
|
||||
return $false
|
||||
}
|
||||
}
|
||||
return $true
|
||||
}
|
||||
@@ -240,10 +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.
|
||||
|
||||
## Supported Intune objects
|
||||
* ADMX Files
|
||||
* ADMX Files [^1]
|
||||
* App Configurations (App and Device)
|
||||
* App Protection
|
||||
* Applications
|
||||
* Applications [^2]
|
||||
* Apple Enrolment Types - NOT fully tested
|
||||
* Autopilot profiles
|
||||
* Baseline Security profiles
|
||||
@@ -252,7 +252,7 @@ Start-WithJson.cmd is included as an example on how to start the script with jso
|
||||
* Conditional Access
|
||||
* Custom Attributes
|
||||
* 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 Status Page profiles
|
||||
* Feature Updates
|
||||
@@ -263,6 +263,7 @@ Start-WithJson.cmd is included as an example on how to start the script with jso
|
||||
* Notifications
|
||||
* Policy Sets
|
||||
* Quality Updates
|
||||
* Reusable Settings
|
||||
* Role Definitions
|
||||
* Scope Tags
|
||||
* Scripts (PowerShell and Shell scripts, supports download of script)
|
||||
@@ -271,6 +272,9 @@ Start-WithJson.cmd is included as an example on how to start the script with jso
|
||||
* Update Policies
|
||||
* 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.
|
||||
|
||||
|
||||
+149
@@ -1,4 +1,153 @@
|
||||
# Release Notes
|
||||
## 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**
|
||||
|
||||
+58
-30
@@ -19,6 +19,8 @@
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
@@ -33,7 +35,7 @@
|
||||
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="Specify the targeted object type for the documentation" />
|
||||
</StackPanel>
|
||||
<ComboBox Name="cbDocumentationType" Margin="0,5,0,0" MinWidth="250" Grid.Column="1" HorizontalAlignment="Left"
|
||||
DisplayMemberPath="Name" SelectedValuePath="Value" />
|
||||
DisplayMemberPath="Name" SelectedValuePath="Value" />
|
||||
|
||||
<StackPanel Orientation="Horizontal" Margin="0,5,5,0" Grid.Row="1">
|
||||
<Label Content="Language" />
|
||||
@@ -55,39 +57,18 @@
|
||||
<ComboBox Name="cbDocumentationObjectSeparator" Margin="0,5,0,0" Width="100" Grid.Row="3" Grid.Column="1" HorizontalAlignment="Left"
|
||||
DisplayMemberPath="Name" SelectedValuePath="Value" />
|
||||
|
||||
<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 Orientation="Horizontal" Margin="0,5,5,0" Grid.Row="7" Grid.ColumnSpan="2" Name="spDocumentFilter">
|
||||
<Label Content="Filter" />
|
||||
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="Filter policies by name or Scope (Tag)" />
|
||||
</StackPanel>
|
||||
<ComboBox Name="cbDocumentationValueOutputProperty" Margin="0,5,0,0" Grid.Row="4" Grid.Column="1" HorizontalAlignment="Left" DisplayMemberPath="Name" SelectedValuePath="Value" />
|
||||
<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">
|
||||
<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" Margin="0,5,5,0" Grid.Row="7" Grid.ColumnSpan="2" Name="spDocumentFromFolder">
|
||||
<StackPanel Orientation="Horizontal" Margin="0,5,5,0" Grid.Row="9" Grid.ColumnSpan="2" Name="spDocumentFromFolder">
|
||||
<Label Content="Source files" />
|
||||
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="Create documentation from exported files" />
|
||||
</StackPanel>
|
||||
|
||||
<Grid Grid.Row='8' 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>
|
||||
<ColumnDefinition Width="*" />
|
||||
<ColumnDefinition Width="5" />
|
||||
@@ -100,7 +81,6 @@
|
||||
<Button Grid.Column="2" Name="browseDocumentFromFolder" Padding="5,0,5,0" Width="50" ToolTip="Browse for export folder">...</Button>
|
||||
</Grid>
|
||||
|
||||
|
||||
<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">
|
||||
<!--
|
||||
@@ -130,6 +110,9 @@
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="Auto"/>
|
||||
<RowDefinition Height="*"/>
|
||||
</Grid.RowDefinitions>
|
||||
<Grid.ColumnDefinitions>
|
||||
@@ -148,7 +131,7 @@
|
||||
<Label Content="Skip unconfigured properties" />
|
||||
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="Exclude properties that are empty or set to 'Not configured'" />
|
||||
</StackPanel>
|
||||
<CheckBox Grid.Column='1' Grid.Row='1' Name='chkSkipNotConfigured' VerticalAlignment="Center" IsChecked="true" />
|
||||
<CheckBox Grid.Column='1' Grid.Row='1' Name='chkSkipNotConfigured' VerticalAlignment="Center" IsChecked="true" />
|
||||
|
||||
<StackPanel Orientation="Horizontal" Margin="0,5,5,0" Grid.Row="2">
|
||||
<Label Content="Skip default values" />
|
||||
@@ -161,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" />
|
||||
</StackPanel>
|
||||
<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>
|
||||
|
||||
<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>
|
||||
<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">
|
||||
<Label Content="Attach Json file" />
|
||||
<Rectangle Style="{DynamicResource InfoIcon}" ToolTip="Attach the Json file to the documentation" />
|
||||
|
||||
@@ -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>
|
||||
Reference in New Issue
Block a user