Windows 10 Pro: “A Cortana está desativada pela política da empresa”

0

.. E eu acho que sei porque. No início, eu comprei no "Windows 10 é spyware !!" meme e correu alguma ferramenta aleatória que aparentemente danificou várias partes do meu sistema.

Agora estou tentando recuperar esses bits danificados, começando com a Cortana.

Clicar no ícone de pesquisa na barra de tarefas e clicar no equipamento me leva a uma tela que diz "A Cortana está desativada pela política da empresa". Algumas leituras descortinam algumas coisas que poderiam fazer com que o recurso fosse desativado, mas eu verifiquei todas:

  • Um modelo administrativo de política de grupo que desabilita a Cortana. Isso é definido como "não configurado".

  • Um hack do registro, em HKLM / SOFTWARE / Policies / Microsoft / Windows / Pesquisa do Windows, que colocaria uma chave AllowCortana = 0. Nenhuma dessas chaves existe.

  • Tendo os arquivos de idioma incorretos instalados. Tudo o que tenho é inglês e estou nos EUA e no idioma inglês.

  • Ter a telemetria desativada - estou no programa interno, por isso, está definido como Completo para mim.

Para risos, eu fiz um sfc /scannow e, claro, nada foi encontrado.

Como posso desfazer qualquer dano que esta ferramenta fez no meu sistema, e recuperar Cortana?

    
por Mikey T.K. 08.04.2016 / 04:06

1 resposta

0

  1. Verifique se você não tem nenhuma conta do Exchange configurada com o Outlook.
  2. Execute este script do powershell.

Feito.

# Needs to run as administrator
If ( -not ([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole([Security.Principal.WindowsBuiltInRole] "Administrator"))
{
    $arguments = "& '" + $myinvocation.mycommand.definition + "'"
        Start-Process powershell -Verb runAs -ArgumentList $arguments
        Break
}

# Installs cortana (and friends)

Get-AppXPackage -AllUsers | ForEach { Add-AppXPackage -DisableDevelopmentMode -Register "$($_.InstallLocation)\AppXManifest.xml" }

# Set registry keys properly
# taken from 'http://stackoverflow.com/a/5652674/850326'
Function Test-RegistryValue {
    param(
        [Alias("PSPath")]
        [Parameter(Position = 0, Mandatory = $true, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)]
        [String]$Path
        ,
        [Parameter(Position = 1, Mandatory = $true)]
        [String]$Name
        ,
        [Switch]$PassThru
    )

    process {
        if (Test-Path $Path) {
            $Key = Get-Item -LiteralPath $Path
            if ($Key.GetValue($Name, $null) -ne $null) {
                if ($PassThru) {
                    Get-ItemProperty $Path $Name
                } else {
                    $true
                }
            } else {
                $false
            }
        } else {
            $false
        }
    }
}

Function Set-RegistryValue {
    param(
        [Parameter(Position = 0, Mandatory = $true, ValueFromPipeline = $true, ValueFromPipelineByPropertyName = $true)]
        [String]$Path
        ,
        [Parameter(Position = 1, Mandatory = $true)]
        [String]$Name
        ,
        [Parameter(Position = 2, Mandatory = $true)]
        [String]$Value
    )

    If (-not (Test-Path $Path))
    {
        New-Item -Path "$Path" -Force | Out-Null

    }

    if (-not (Test-RegistryValue -Path "$Path" -Name "$Name"))
    {
        New-ItemProperty -Path "$Path" -Name "$Name" -Value "$Value"
    }
    else
    {
        Set-ItemProperty -Path "$Path" -Name "$Name" -Value "$Value"
    }
}

# Fix allow cortana key

$allowCortanaPath = "Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\Windows Search"
$allowCortanaName = "AllowCortana"
$allowCortanaValue = "1"

Set-RegistryValue -Path "$allowCortanaPath" -Name "$allowCortanaName" -Value "$allowCortanaValue"

# Fix allow telemetry key

$allowTelemetryPath = "Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\DataCollection"
$allowTelemetryName = "AllowTelemetry"
# The following value sets "AllowTelemetry" to "Full"
$allowTelemetryValue = "3"

Set-RegistryValue -Path "$allowTelemetryPath" -Name "$allowTelemetryName" -Value "$allowTelemetryValue"

# Restart explorer to see changes

Stop-Process -name explorer
    
por 04.08.2016 / 22:55