Public mode

No tenant, Graph, or device access. Every item links to its source. What this means

Some sources or documents need attention: 258/260 feeds/APIs · 417/444 docs · checked 17:18 UTC Customize Public modeDiscuss ChangeIntel on Discord

Microsoft FSLogix Group Policy settings

115 settings · 26.08 · 27 Aug 2026

0 settings

    No settings match

    Try fewer words or a registry value name. All settings

    Back to the list

    FSLogix › Logging

    Process Start

    ComputerIntune-readyLoggingProcessStart

    Supported on v2105 or later

    What it does

    NOTE: Once this policy is Enabled or Disabled, setting it back to Not Configured has NO EFFECT. Enables logging of the Start Process component. Registry Entry: HKLM\SOFTWARE\FSLogix\Logging\ProcessStart Type: DWORD Values: 0 = Disabled, 1 = Enabled

    What it writes

    Hive
    HKEY_LOCAL_MACHINE
    Registry key
    Software\FSLogix\Logging

    Options

    OptionTypeRegistry valueAllowed values
    LoggingProcessStart Drop-down list ProcessStart
    • Disabled0
    • Enabled1

    Configure and deploy

    Choose a state and the option values; the output below is generated from the template for exactly that.

    State
    Options used when Enabled

    Enabled · Computer · template defaults

    Registry file (.reg)

    Windows Registry Editor Version 5.00
    
    [HKEY_LOCAL_MACHINE\Software\FSLogix\Logging]
    "ProcessStart"=dword:00000000
    
    

    PowerShell

    $ErrorActionPreference = 'Stop'
    
    function Set-RegistryValue {
        param(
            [Parameter(Mandatory = $true)][string] $Path,
            [Parameter(Mandatory = $true)][string] $Name,
            [Parameter(Mandatory = $true)][string] $PropertyType,
            [Parameter(Mandatory = $true)][object] $Value
        )
    
        if (-not (Test-Path -LiteralPath $Path)) {
            New-Item -Path $Path -Force | Out-Null
        }
    
        New-ItemProperty -LiteralPath $Path -Name $Name -PropertyType $PropertyType -Value $Value -Force | Out-Null
    }
    
    function Remove-RegistryValue {
        param(
            [Parameter(Mandatory = $true)][string] $Path,
            [Parameter(Mandatory = $true)][string] $Name
        )
    
        if (Test-Path -LiteralPath $Path) {
            Remove-ItemProperty -LiteralPath $Path -Name $Name -Force -ErrorAction SilentlyContinue
        }
    }
    
    function Clear-RegistryKeyValues {
        param(
            [Parameter(Mandatory = $true)][string] $Path
        )
    
        if (-not (Test-Path -LiteralPath $Path)) {
            return
        }
    
        foreach ($propertyName in (Get-Item -LiteralPath $Path).Property) {
            Remove-ItemProperty -LiteralPath $Path -Name $propertyName -Force -ErrorAction SilentlyContinue
        }
    }
    
    # Policy: Process Start
    # Name: LoggingProcessStart
    # Scope: Machine
    # State: Enabled
    # Source: fslogix.admx
    
    Set-RegistryValue -Path 'Registry::HKEY_LOCAL_MACHINE\Software\FSLogix\Logging' -Name 'ProcessStart' -PropertyType 'DWord' -Value 0
    
    • The OMA-URI is an inferred ADMX-backed Policy CSP candidate derived from the source ADMX file name and policy name.
    • Some Microsoft policies use built-in Policy CSP pages whose area names don't match the ADMX file name, so verify the candidate against Microsoft Learn before deployment.
    • The generated payload is incomplete because one or more ADMX element values were not supplied: LoggingProcessStart

    ADMX profile candidate (OMA-URI)

    ./Device/Vendor/MSFT/Policy/Config/ADMX_fslogix/LoggingProcessStart
    Intune remediation scripts

    Detection

    $ErrorActionPreference = 'Stop'
    $reasons = [System.Collections.Generic.List[string]]::new()
    
    function Test-RegistryValueExists {
        param(
            [Parameter(Mandatory = $true)][string] $Path,
            [Parameter(Mandatory = $true)][string] $Name
        )
    
        if (-not (Test-Path -LiteralPath $Path)) {
            return $false
        }
    
        return $null -ne (Get-ItemProperty -LiteralPath $Path -Name $Name -ErrorAction SilentlyContinue)
    }
    
    function Test-RegistryValueEquals {
        param(
            [Parameter(Mandatory = $true)][string] $Path,
            [Parameter(Mandatory = $true)][string] $Name,
            [Parameter(Mandatory = $true)][string] $Kind,
            [Parameter(Mandatory = $true)][object] $Expected
        )
    
        if (-not (Test-Path -LiteralPath $Path)) {
            return $false
        }
    
        $valueObject = Get-ItemProperty -LiteralPath $Path -Name $Name -ErrorAction SilentlyContinue
        if ($null -eq $valueObject) {
            return $false
        }
    
        $actual = $valueObject.$Name
        switch ($Kind) {
            'String' { return [string]$actual -ceq [string]$Expected }
            'ExpandString' { return [string]$actual -ceq [string]$Expected }
            'DWord' { return [uint32]$actual -eq [uint32]$Expected }
            'QWord' { return [uint64]$actual -eq [uint64]$Expected }
            'MultiString' {
                $actualArray = @($actual)
                $expectedArray = @($Expected)
                if ($actualArray.Count -ne $expectedArray.Count) { return $false }
                for ($index = 0; $index -lt $actualArray.Count; $index++) {
                    if ([string]$actualArray[$index] -cne [string]$expectedArray[$index]) { return $false }
                }
                return $true
            }
            'Binary' {
                $actualArray = [byte[]]$actual
                $expectedArray = [byte[]]$Expected
                if ($actualArray.Length -ne $expectedArray.Length) { return $false }
                for ($index = 0; $index -lt $actualArray.Length; $index++) {
                    if ($actualArray[$index] -ne $expectedArray[$index]) { return $false }
                }
                return $true
            }
            default { return [string]$actual -ceq [string]$Expected }
        }
    }
    
    # Policy: Process Start
    # Name: LoggingProcessStart
    # Scope: Machine
    # State: Enabled
    # Source: fslogix.admx
    
    $isMatch = Test-RegistryValueEquals -Path 'Registry::HKEY_LOCAL_MACHINE\Software\FSLogix\Logging' -Name 'ProcessStart' -Kind 'DWord' -Expected 0
    if (-not $isMatch) {
        $reasons.Add('Value mismatch: HKEY_LOCAL_MACHINE\Software\FSLogix\Logging\ProcessStart') | Out-Null
    }
    
    if ($reasons.Count -eq 0) {
        Write-Output 'Compliant'
        exit 0
    }
    
    $reasons | ForEach-Object { Write-Output $_ }
    exit 1
    

    Remediation

    $ErrorActionPreference = 'Stop'
    
    function Set-RegistryValue {
        param(
            [Parameter(Mandatory = $true)][string] $Path,
            [Parameter(Mandatory = $true)][string] $Name,
            [Parameter(Mandatory = $true)][string] $PropertyType,
            [Parameter(Mandatory = $true)][object] $Value
        )
    
        if (-not (Test-Path -LiteralPath $Path)) {
            New-Item -Path $Path -Force | Out-Null
        }
    
        New-ItemProperty -LiteralPath $Path -Name $Name -PropertyType $PropertyType -Value $Value -Force | Out-Null
    }
    
    function Remove-RegistryValue {
        param(
            [Parameter(Mandatory = $true)][string] $Path,
            [Parameter(Mandatory = $true)][string] $Name
        )
    
        if (Test-Path -LiteralPath $Path) {
            Remove-ItemProperty -LiteralPath $Path -Name $Name -Force -ErrorAction SilentlyContinue
        }
    }
    
    function Clear-RegistryKeyValues {
        param(
            [Parameter(Mandatory = $true)][string] $Path
        )
    
        if (-not (Test-Path -LiteralPath $Path)) {
            return
        }
    
        foreach ($propertyName in (Get-Item -LiteralPath $Path).Property) {
            Remove-ItemProperty -LiteralPath $Path -Name $propertyName -Force -ErrorAction SilentlyContinue
        }
    }
    
    # Policy: Process Start
    # Name: LoggingProcessStart
    # Scope: Machine
    # State: Enabled
    # Source: fslogix.admx
    
    Set-RegistryValue -Path 'Registry::HKEY_LOCAL_MACHINE\Software\FSLogix\Logging' -Name 'ProcessStart' -PropertyType 'DWord' -Value 0
    

    History 1 retained release

    1. 26.0827 Aug 2026
      • Already present in the first release ChangeIntel keeps.

    Template

    Internal name
    LoggingProcessStart
    Namespace
    FSLogix.Policies
    Template file
    fslogix.admx
    Release
    Microsoft FSLogix 26.08 · file set d042c1d887a47461…
    Definition, editor controls and support

    Definition

    <policy class="Machine" displayName="$(string.LoggingProcessStart_Display)" explainText="$(string.LoggingProcessStart_Explain)" key="Software\FSLogix\Logging" name="LoggingProcessStart" presentation="$(presentation.LoggingProcessStart)" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
          <parentCategory ref="FSLogix.Policies:Logging" />
          <supportedOn ref="FSLogix.Policies:v2105" />
          <elements>
            <enum id="LoggingProcessStart" key="Software\FSLogix\Logging" valueName="ProcessStart">
              <item displayName="$(string.LoggingProcessStart_0_Enum)">
                <value>
                  <decimal value="0" />
                </value>
              </item>
              <item displayName="$(string.LoggingProcessStart_1_Enum)">
                <value>
                  <decimal value="1" />
                </value>
              </item>
            </enum>
          </elements>
        </policy>

    Editor controls

    <presentation id="LoggingProcessStart" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
            <dropdownList refId="LoggingProcessStart" />
          </presentation>

    Supported platforms and category

    FSLogix.Policies:category:FSLogix
    <category displayName="$(string.FSLogix_Category)" name="FSLogix" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
    FSLogix.Policies:category:Logging
    <category displayName="$(string.Logging_Category)" name="Logging" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
          <parentCategory ref="FSLogix.Policies:FSLogix" />
        </category>
    FSLogix.Policies:definition:v2105
    <definition displayName="$(string.v2105_Definition)" name="v2105" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
    FSLogix.Policies:category:FSLogix
    <category displayName="$(string.FSLogix_Category)" name="FSLogix" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
    <strings><string id="FSLogix.Policies:FSLogix_Category">FSLogix</string></strings>
    FSLogix.Policies:category:Logging
    <category displayName="$(string.Logging_Category)" name="Logging" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions">
          <parentCategory ref="FSLogix.Policies:FSLogix" />
        </category>
    <strings><string id="FSLogix.Policies:Logging_Category">Logging</string></strings>
    FSLogix.Policies:definition:v2105
    <definition displayName="$(string.v2105_Definition)" name="v2105" xmlns="http://schemas.microsoft.com/GroupPolicy/2006/07/PolicyDefinitions" />
    <strings><string id="FSLogix.Policies:v2105_Definition">v2105 or later</string></strings>
    ChangeIntel

    An IT change radar: releases, security, known issues, retirements, documentation changes, and service status from public sources. Every item links to supporting evidence; dates and statuses can change after they are read.

    Sources read 19 Oct 17:18 UTC · 258 of 260 readable · 256 fully read · documentation 417/444 current