63 lines
1.5 KiB
PowerShell
63 lines
1.5 KiB
PowerShell
# Script by Timur@0x01337.com
|
|
# Date: 2023-11-24
|
|
<#
|
|
.DESCRIPTION
|
|
Disables Cortana
|
|
|
|
Requires administrator privileges.
|
|
|
|
.PARAMETER help
|
|
Displays a detailed usage description of this script.
|
|
|
|
.EXAMPLE
|
|
PS> .\Disable-Cortana.ps1
|
|
|
|
.EXAMPLE
|
|
PS> .\Disable-Cortana.ps1 -help
|
|
#>
|
|
|
|
# Getting command line parameters
|
|
param (
|
|
[parameter(Mandatory = $false)][switch]$help
|
|
)
|
|
|
|
$currentPrincipal = New-Object Security.Principal.WindowsPrincipal([Security.Principal.WindowsIdentity]::GetCurrent())
|
|
$isAdmin = $currentPrincipal.IsInRole([Security.Principal.WindowsBuiltInRole]::Administrator)
|
|
if (!$isAdmin) {
|
|
Write-Error "This script requires administrator privileges"
|
|
exit 1
|
|
}
|
|
|
|
# Writing help message
|
|
if ($help) {
|
|
get-help $MyInvocation.MyCommand.Path -Full
|
|
exit 0
|
|
}
|
|
|
|
$registryKeyPath = 'HKLM:\SOFTWARE\Policies\Microsoft\Windows\Windows Search'
|
|
$propertyName = 'AllowCortana'
|
|
|
|
if (!(Test-Path $registryKeyPath)) {
|
|
Write-Host "Create registry key path ($registryKeyPath)"
|
|
New-Item -Path $registryKeyPath -Force
|
|
}
|
|
|
|
try {
|
|
Get-ItemProperty -Path $registryKeyPath -Name $propertyName -ErrorAction Stop | Out-Null
|
|
}
|
|
catch {
|
|
Write-Host "Create property ($propertyName) in ($registryKeyPath)"
|
|
New-ItemProperty -Path $registryKeyPath -Name $propertyName -PropertyType DWORD -Value '0'
|
|
}
|
|
|
|
try {
|
|
Set-ItemProperty -Path $registryKeyPath -Name $propertyName -Value '0'
|
|
}
|
|
catch {
|
|
Write-Error $_
|
|
exit 1
|
|
}
|
|
|
|
Write-Host "Cortana is disabled"
|
|
exit 0
|