..我想我知道为什么。早些时候,我听信了“Windows 10 是间谍软件!!”的说法,并运行了一些随机工具,这些工具显然损坏了我系统的各个部分。
我现在正尝试恢复那些损坏的部分,从 Cortana 开始。
点击任务栏搜索图标,然后点击齿轮,屏幕会显示“Cortana 已被公司政策禁用”。一些阅读资料发现了一些会导致该功能被禁用的原因,但我已经检查了所有原因:
禁用 Cortana 的组策略管理模板。此项设置为“未配置”。
注册表黑客在 HKLM/SOFTWARE/Policies/Microsoft/Windows/Windows Search 下放置了 AllowCortana = 0 项。不存在这样的项。
安装了错误的语言文件。我只有英语,而且我在美国,使用英语区域设置。
遥测已关闭-我处于内部程序中,因此它对我来说设置为完整。
为了好玩,我做了一个sfc /scannow
,当然,什么也没发现。
我该如何消除此工具对我的系统造成的损害并恢复 Cortana?
答案1
- 确保您没有在 Outlook 中设置任何 Exchange 帐户。
- 运行此 powershell 脚本。
完毕。
# 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