|
@ -148,7 +148,9 @@ public static extern bool SetForegroundWindow(IntPtr hWnd); |
|
|
# Detect Windows bitness |
|
|
# Detect Windows bitness |
|
|
if (-not [System.Environment]::Is64BitOperatingSystem) |
|
|
if (-not [System.Environment]::Is64BitOperatingSystem) |
|
|
{ |
|
|
{ |
|
|
|
|
|
Write-Information -MessageData "" -InformationAction Continue |
|
|
Write-Warning -Message $Localization.UnsupportedOSBitness |
|
|
Write-Warning -Message $Localization.UnsupportedOSBitness |
|
|
|
|
|
Write-Information -MessageData "" -InformationAction Continue |
|
|
|
|
|
|
|
|
Write-Verbose -Message "https://t.me/sophia_chat" -Verbose |
|
|
Write-Verbose -Message "https://t.me/sophia_chat" -Verbose |
|
|
Write-Verbose -Message "https://discord.gg/sSryhaEv79" -Verbose |
|
|
Write-Verbose -Message "https://discord.gg/sSryhaEv79" -Verbose |
|
@ -584,7 +586,9 @@ public static extern bool SetForegroundWindow(IntPtr hWnd); |
|
|
# Detect Windows build version |
|
|
# Detect Windows build version |
|
|
if ((Get-WindowsEdition -Online).Edition -notmatch "EnterpriseS") |
|
|
if ((Get-WindowsEdition -Online).Edition -notmatch "EnterpriseS") |
|
|
{ |
|
|
{ |
|
|
|
|
|
Write-Information -MessageData "" -InformationAction Continue |
|
|
Write-Warning -Message $Localization.UnsupportedOSBuild |
|
|
Write-Warning -Message $Localization.UnsupportedOSBuild |
|
|
|
|
|
Write-Information -MessageData "" -InformationAction Continue |
|
|
|
|
|
|
|
|
Write-Verbose -Message "https://t.me/sophia_chat" -Verbose |
|
|
Write-Verbose -Message "https://t.me/sophia_chat" -Verbose |
|
|
Write-Verbose -Message "https://discord.gg/sSryhaEv79" -Verbose |
|
|
Write-Verbose -Message "https://discord.gg/sSryhaEv79" -Verbose |
|
@ -839,7 +843,12 @@ public static extern bool SetForegroundWindow(IntPtr hWnd); |
|
|
Get-ChildItem -Path "$env:TEMP\Computer.txt", "$env:TEMP\User.txt" -Force -ErrorAction Ignore | Remove-Item -Recurse -Force -ErrorAction Ignore |
|
|
Get-ChildItem -Path "$env:TEMP\Computer.txt", "$env:TEMP\User.txt" -Force -ErrorAction Ignore | Remove-Item -Recurse -Force -ErrorAction Ignore |
|
|
|
|
|
|
|
|
# Save all opened folders in order to restore them after File Explorer restart |
|
|
# Save all opened folders in order to restore them after File Explorer restart |
|
|
|
|
|
try |
|
|
|
|
|
{ |
|
|
$Script:OpenedFolders = {(New-Object -ComObject Shell.Application).Windows() | ForEach-Object -Process {$_.Document.Folder.Self.Path}}.Invoke() |
|
|
$Script:OpenedFolders = {(New-Object -ComObject Shell.Application).Windows() | ForEach-Object -Process {$_.Document.Folder.Self.Path}}.Invoke() |
|
|
|
|
|
} |
|
|
|
|
|
catch [System.Management.Automation.PropertyNotFoundException] |
|
|
|
|
|
{} |
|
|
|
|
|
|
|
|
<# |
|
|
<# |
|
|
.SYNOPSIS |
|
|
.SYNOPSIS |
|
@ -965,7 +974,7 @@ public static extern bool SetForegroundWindow(IntPtr hWnd); |
|
|
# Get the name of a preset (e.g Sophia.ps1) regardless it was named |
|
|
# Get the name of a preset (e.g Sophia.ps1) regardless it was named |
|
|
# $_.File has no EndsWith() method |
|
|
# $_.File has no EndsWith() method |
|
|
Write-Information -MessageData "" -InformationAction Continue |
|
|
Write-Information -MessageData "" -InformationAction Continue |
|
|
$PresetName = Split-Path -Path (((Get-PSCallStack).Position | Where-Object -FilterScript {$_.File}).File | Where-Object -FilterScript {$_.EndsWith(".ps1")}) -Leaf |
|
|
[string]$PresetName = ((Get-PSCallStack).Position | Where-Object -FilterScript {$_.File}).File | Where-Object -FilterScript {$_.EndsWith(".ps1")} |
|
|
Write-Verbose -Message ($Localization.CustomizationWarning -f $PresetName) -Verbose |
|
|
Write-Verbose -Message ($Localization.CustomizationWarning -f $PresetName) -Verbose |
|
|
|
|
|
|
|
|
do |
|
|
do |
|
@ -10563,6 +10572,7 @@ function SoftwareDistributionTask |
|
|
# Get user's SID the task was created as |
|
|
# Get user's SID the task was created as |
|
|
$Script:SID = ([xml]$_.xml).Task.Principals.Principal.UserID |
|
|
$Script:SID = ([xml]$_.xml).Task.Principals.Principal.UserID |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
# Convert SID to username |
|
|
# Convert SID to username |
|
|
$TaskUserAccount = (New-Object System.Security.Principal.SecurityIdentifier($SID)).Translate([System.Security.Principal.NTAccount]).Value -split "\\" | Select-Object -Last 1 |
|
|
$TaskUserAccount = (New-Object System.Security.Principal.SecurityIdentifier($SID)).Translate([System.Security.Principal.NTAccount]).Value -split "\\" | Select-Object -Last 1 |
|
|
|
|
|
|
|
@ -11672,6 +11682,14 @@ function WindowsScriptHost |
|
|
{ |
|
|
{ |
|
|
"Disable" |
|
|
"Disable" |
|
|
{ |
|
|
{ |
|
|
|
|
|
# Check if any scheduled tasks were created before, because they rely on Windows Host running vbs files |
|
|
|
|
|
Get-ScheduledTask -TaskName SoftwareDistribution, Temp, "Windows Cleanup", "Windows Cleanup Notification" | ForEach-Object -Process { |
|
|
|
|
|
if ($_.State -eq "Ready") |
|
|
|
|
|
{ |
|
|
|
|
|
continue |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
if (-not (Test-Path -Path "HKCU:\Software\Microsoft\Windows Script Host\Settings")) |
|
|
if (-not (Test-Path -Path "HKCU:\Software\Microsoft\Windows Script Host\Settings")) |
|
|
{ |
|
|
{ |
|
|
New-Item -Path "HKCU:\Software\Microsoft\Windows Script Host\Settings" -Force |
|
|
New-Item -Path "HKCU:\Software\Microsoft\Windows Script Host\Settings" -Force |
|
@ -12831,6 +12849,8 @@ public static void PostMessage() |
|
|
Start-Sleep -Seconds 3 |
|
|
Start-Sleep -Seconds 3 |
|
|
|
|
|
|
|
|
# Restoring closed folders |
|
|
# Restoring closed folders |
|
|
|
|
|
if (Get-Variable -Name OpenedFolder -ErrorAction Ignore) |
|
|
|
|
|
{ |
|
|
foreach ($Script:OpenedFolder in $Script:OpenedFolders) |
|
|
foreach ($Script:OpenedFolder in $Script:OpenedFolders) |
|
|
{ |
|
|
{ |
|
|
if (Test-Path -Path $Script:OpenedFolder) |
|
|
if (Test-Path -Path $Script:OpenedFolder) |
|
@ -12838,6 +12858,7 @@ public static void PostMessage() |
|
|
Start-Process -FilePath explorer -ArgumentList $Script:OpenedFolder |
|
|
Start-Process -FilePath explorer -ArgumentList $Script:OpenedFolder |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
# Check whether any of scheduled tasks were created. Unless open Task Scheduler |
|
|
# Check whether any of scheduled tasks were created. Unless open Task Scheduler |
|
|
if ($Script:ScheduledTasks) |
|
|
if ($Script:ScheduledTasks) |
|
|