From 405dcdc676abe42d12a8a3d9528ae3f2c535b3d7 Mon Sep 17 00:00:00 2001 From: Dmitry Nefedov Date: Mon, 20 Sep 2021 00:23:15 +0300 Subject: [PATCH] 19.09.2021 v5.12.3 --- Sophia/PowerShell 5.1/Functions.ps1 | 6 +- Sophia/PowerShell 5.1/Manifest/Sophia.psd1 | 2 +- Sophia/PowerShell 5.1/Module/Sophia.psm1 | 338 +++++++++++---------- Sophia/PowerShell 5.1/Sophia.ps1 | 27 +- 4 files changed, 193 insertions(+), 180 deletions(-) diff --git a/Sophia/PowerShell 5.1/Functions.ps1 b/Sophia/PowerShell 5.1/Functions.ps1 index aa3480c8..bd55cc1b 100644 --- a/Sophia/PowerShell 5.1/Functions.ps1 +++ b/Sophia/PowerShell 5.1/Functions.ps1 @@ -2,8 +2,8 @@ .SYNOPSIS The TAB completion for functions and their arguments - Version: v5.12.2 - Date: 25.08.2021 + Version: v5.12.3 + Date: 19.09.2021 Copyright (c) 2014–2021 farag Copyright (c) 2019–2021 farag & Inestic @@ -54,7 +54,7 @@ function Sophia Clear-Host -$Host.UI.RawUI.WindowTitle = "Sophia Script for Windows 10 v5.12.2 | Made with $([char]::ConvertFromUtf32(0x1F497)) of Windows | $([char]0x00A9) farag & Inestic, 2014–2021" +$Host.UI.RawUI.WindowTitle = "Sophia Script for Windows 10 v5.12.3 | Made with $([char]::ConvertFromUtf32(0x1F497)) of Windows | $([char]0x00A9) farag & Inestic, 2014–2021" Remove-Module -Name Sophia -Force -ErrorAction Ignore Import-Module -Name $PSScriptRoot\Manifest\Sophia.psd1 -PassThru -Force diff --git a/Sophia/PowerShell 5.1/Manifest/Sophia.psd1 b/Sophia/PowerShell 5.1/Manifest/Sophia.psd1 index 52e2adc9..cac812ef 100644 --- a/Sophia/PowerShell 5.1/Manifest/Sophia.psd1 +++ b/Sophia/PowerShell 5.1/Manifest/Sophia.psd1 @@ -1,6 +1,6 @@ @{ RootModule = '..\Module\Sophia.psm1' - ModuleVersion = '5.12.2' + ModuleVersion = '5.12.3' GUID = '109cc881-c42b-45af-a74a-550781989d6a' Author = 'Dmitry "farag" Nefedov' Copyright = '(c) 2014–2021 farag & Inestic. All rights reserved' diff --git a/Sophia/PowerShell 5.1/Module/Sophia.psm1 b/Sophia/PowerShell 5.1/Module/Sophia.psm1 index 18c8115d..2225c584 100644 --- a/Sophia/PowerShell 5.1/Module/Sophia.psm1 +++ b/Sophia/PowerShell 5.1/Module/Sophia.psm1 @@ -2,8 +2,8 @@ .SYNOPSIS Sophia Script is a PowerShell module for Windows 10 & Windows 11 fine-tuning and automating the routine tasks - Version: v5.12.2 - Date: 25.08.2021 + Version: v5.12.3 + Date: 19.09.2021 Copyright (c) 2014–2021 farag Copyright (c) 2019–2021 farag & Inestic @@ -31,15 +31,15 @@ https://t.me/sophianews https://t.me/sophia_chat - .LINK Authors - https://github.com/farag2 - https://github.com/Inestic - - .LINK + .NOTES https://forum.ru-board.com/topic.cgi?forum=62&topic=30617#15 https://habr.com/company/skillfactory/blog/553800/ https://forums.mydigitallife.net/threads/powershell-windows-10-sophia-script.81675/ https://www.reddit.com/r/PowerShell/comments/go2n5v/powershell_script_setup_windows_10/ + + .LINK Authors + https://github.com/farag2 + https://github.com/Inestic #> #region Checkings @@ -85,10 +85,18 @@ function Checkings $Version = Get-ItemPropertyValue -Path "HKLM:\SOFTWARE\Microsoft\Windows nt\CurrentVersion" -Name UBR Write-Warning -Message ($Localization.UpdateWarning -f $Version) - # Check for updates + # Receive updates for other Microsoft products when you update Windows + (New-Object -ComObject Microsoft.Update.ServiceManager).AddService2("7971f918-a847-4430-9279-4a52d1efe18d", 7, "") + + Start-Sleep -Seconds 1 + + # Open the "Windows Update" page Start-Process -FilePath "ms-settings:windowsupdate-action" - Start-Sleep -Seconds 3 - Start-Process -FilePath "ms-settings:windowsupdate-optionalupdates" + + Start-Sleep -Seconds 1 + + # Trigger Windows Update for detecting new updates + (New-Object -ComObject Microsoft.Update.AutoUpdate).DetectNow() exit } @@ -174,7 +182,7 @@ function Checkings } # Unblock all files in the script folder by removing the Zone.Identifier alternate data stream with a value of "3" - Get-ChildItem -Path $PSScriptRoot -Recurse -Force | Unblock-File + Get-ChildItem -Path $PSScriptRoot\..\ -File -Recurse -Force | Unblock-File # Display a warning message about whether a user has customized the preset file if ($Warning) @@ -227,12 +235,12 @@ function Checkings #endregion Checkings #region Protection -# Enable script logging. The log will be being recorded into the script folder +# Enable script logging. The log will be being recorded into the script root folder # To stop logging just close the console or type "Stop-Transcript" function Logging { $TrascriptFilename = "Log-$((Get-Date).ToString("dd.MM.yyyy-HH-mm"))" - Start-Transcript -Path $PSScriptRoot\$TrascriptFilename.txt -Force + Start-Transcript -Path $PSScriptRoot\..\$TrascriptFilename.txt -Force } # Create a restore point for the system drive @@ -509,7 +517,7 @@ function FeedbackFrequency } "Automatically" { - Remove-Item -Path HKCU:\SOFTWARE\Microsoft\Siuf\Rules -Force -ErrorAction SilentlyContinue + Remove-Item -Path HKCU:\SOFTWARE\Microsoft\Siuf\Rules -Force -ErrorAction Ignore } } } @@ -796,10 +804,13 @@ function ScheduledTasks if (-not ($Tasks)) { + Write-Information -MessageData "" -InformationAction Continue Write-Verbose -Message $Localization.NoData -Verbose + return } + Write-Information -MessageData "" -InformationAction Continue Write-Verbose -Message $Localization.DialogBoxOpening -Verbose #region Sendkey function @@ -809,9 +820,9 @@ function ScheduledTasks Add-Type -AssemblyName System.Windows.Forms $SetForegroundWindow = @{ - Namespace = "WinAPI" - Name = "ForegroundWindow" - Language = "CSharp" + Namespace = "WinAPI" + Name = "ForegroundWindow" + Language = "CSharp" MemberDefinition = @" [DllImport("user32.dll")] public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow); @@ -2082,7 +2093,7 @@ function 3DObjects } "Show" { - Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{31C0DD25-9439-4F12-BF41-7FF4EDA38722}\PropertyBag" -Name ThisPCPolicy -Force -ErrorAction SilentlyContinue + Remove-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\FolderDescriptions\{31C0DD25-9439-4F12-BF41-7FF4EDA38722}\PropertyBag" -Name ThisPCPolicy -Force -ErrorAction Ignore } } @@ -2715,9 +2726,9 @@ function UnpinTaskbarShortcuts # Extract strings from shell32.dll using its' number $Signature = @{ - Namespace = "WinAPI" - Name = "GetStr" - Language = "CSharp" + Namespace = "WinAPI" + Name = "GetStr" + Language = "CSharp" MemberDefinition = @" [DllImport("kernel32.dll", CharSet = CharSet.Auto)] public static extern IntPtr GetModuleHandle(string lpModuleName); @@ -2751,9 +2762,8 @@ public static string GetString(uint strId) if (Test-Path -Path "$env:AppData\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar\Microsoft Edge.lnk") { # Call the shortcut context menu item - $Shell = New-Object -ComObject Shell.Application - $Folder = $Shell.NameSpace("$env:AppData\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar") - $Shortcut = $Folder.ParseName("Microsoft Edge.lnk") + $Shell = (New-Object -ComObject Shell.Application).NameSpace("$env:AppData\Microsoft\Internet Explorer\Quick Launch\User Pinned\TaskBar") + $Shortcut = $Shell.ParseName("Microsoft Edge.lnk") $Shortcut.Verbs() | Where-Object -FilterScript {$_.Name -eq $LocalizedString} | ForEach-Object -Process {$_.DoIt()} } } @@ -2833,7 +2843,7 @@ function ControlPanelView switch ($PSCmdlet.ParameterSetName) { - "Category" + "Category" { if (-not (Test-Path -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ControlPanel)) { @@ -3015,11 +3025,7 @@ function NewAppInstalledNotification } "Show" { - if (-not (Test-Path -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer)) - { - New-Item -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer -Force - } - New-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer -Name NoNewAppAlert -PropertyType DWord -Value 0 -Force + Remove-ItemProperty -Path HKLM:\SOFTWARE\Policies\Microsoft\Windows\Explorer -Name NoNewAppAlert -Force } } } @@ -3066,11 +3072,11 @@ function FirstLogonAnimation { "Disable" { - New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -Name EnableFirstLogonAnimation -PropertyType DWord -Value 0 -Force + New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" -Name EnableFirstLogonAnimation -PropertyType DWord -Value 0 -Force } "Enable" { - New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -Name EnableFirstLogonAnimation -PropertyType DWord -Value 1 -Force + New-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon" -Name EnableFirstLogonAnimation -PropertyType DWord -Value 1 -Force } } } @@ -3509,6 +3515,7 @@ function OneDrive [string]$UninstallString = Get-Package -Name "Microsoft OneDrive" -ProviderName Programs -ErrorAction Ignore | ForEach-Object -Process {$_.Meta.Attributes["UninstallString"]} if ($UninstallString) { + Write-Information -MessageData "" -InformationAction Continue Write-Verbose -Message $Localization.OneDriveUninstalling -Verbose Stop-Process -Name OneDrive -Force -ErrorAction Ignore @@ -3537,9 +3544,9 @@ function OneDrive # The system does not move the file until the operating system is restarted # The system moves the file immediately after AUTOCHK is executed, but before creating any paging files $Signature = @{ - Namespace = "WinAPI" - Name = "DeleteFiles" - Language = "CSharp" + Namespace = "WinAPI" + Name = "DeleteFiles" + Language = "CSharp" MemberDefinition = @" public enum MoveFileFlags { @@ -3648,25 +3655,40 @@ public static bool MarkFileDelete (string sourcefile) { if (Test-Path -Path $env:SystemRoot\SysWOW64\OneDriveSetup.exe) { + Write-Information -MessageData "" -InformationAction Continue Write-Verbose -Message $Localization.OneDriveInstalling -Verbose Start-Process -FilePath $env:SystemRoot\SysWOW64\OneDriveSetup.exe } else { - # Downloading the latest OneDrive try { + # Downloading the latest OneDrive installer x64 if ((Invoke-WebRequest -Uri https://www.google.com -UseBasicParsing -DisableKeepAlive -Method Head).StatusDescription) { + Write-Information -MessageData "" -InformationAction Continue Write-Verbose -Message $Localization.OneDriveDownloading -Verbose [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 + # Parse XML to get the URL + # https://go.microsoft.com/fwlink/p/?LinkID=844652 + $Parameters = @{ + Uri = "https://g.live.com/1rewlive5skydrive/OneDriveProduction" + UseBasicParsing = $true + Verbose = $true + } + $Content = Invoke-RestMethod @Parameters + + # Remove invalid chars + [xml]$OneDriveXML = $Content -replace "", "" + + $OneDriveURL = ($OneDriveXML).root.update.amd64binary.url[-1] $DownloadsFolder = Get-ItemPropertyValue -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "{374DE290-123F-4565-9164-39C4925E467B}" $Parameters = @{ - Uri = "https://go.microsoft.com/fwlink/p/?LinkID=2121808" + Uri = $OneDriveURL OutFile = "$DownloadsFolder\OneDriveSetup.exe" - Verbose = [switch]::Present + Verbose = $true } Invoke-WebRequest @Parameters @@ -3685,6 +3707,7 @@ public static bool MarkFileDelete (string sourcefile) } Get-ScheduledTask -TaskName "Onedrive* Update*" | Enable-ScheduledTask + Get-ScheduledTask -TaskName "Onedrive* Update*" | Start-ScheduledTask } } } @@ -3926,10 +3949,10 @@ function Hibernation The %TEMP% environment variable path .PARAMETER SystemDrive - Change the %TEMP% environment variable path to "%SystemDrive%\Temp" + Change the %TEMP% environment variable path to %SystemDrive%\Temp .PARAMETER Default - Change the %TEMP% environment variable path to "%LOCALAPPDATA%\Temp" + Change the %TEMP% environment variable path to %LOCALAPPDATA%\Temp .EXAMPLE TempFolder -SystemDrive @@ -3993,9 +4016,9 @@ function TempFolder # The system does not move the file until the operating system is restarted # The system moves the file immediately after AUTOCHK is executed, but before creating any paging files $Signature = @{ - Namespace = "WinAPI" - Name = "DeleteFiles" - Language = "CSharp" + Namespace = "WinAPI" + Name = "DeleteFiles" + Language = "CSharp" MemberDefinition = @" public enum MoveFileFlags { @@ -4037,10 +4060,10 @@ Unregister-ScheduledTask -TaskName SymbolicLink -Confirm:`$false "@ # Create a temporary scheduled task to create a symbolic link to the %SystemDrive%\Temp folder - $Action = New-ScheduledTaskAction -Execute powershell.exe -Argument "-WindowStyle Hidden -Command $SymbolicLinkTask" - $Trigger = New-ScheduledTaskTrigger -AtLogon -User $env:USERNAME - $Settings = New-ScheduledTaskSettingsSet -Compatibility Win8 - $Principal = New-ScheduledTaskPrincipal -UserId $env:USERNAME -RunLevel Highest + $Action = New-ScheduledTaskAction -Execute powershell.exe -Argument "-WindowStyle Hidden -Command $SymbolicLinkTask" + $Trigger = New-ScheduledTaskTrigger -AtLogon -User $env:USERNAME + $Settings = New-ScheduledTaskSettingsSet -Compatibility Win8 + $Principal = New-ScheduledTaskPrincipal -UserId $env:USERNAME -RunLevel Highest $Parameters = @{ TaskName = "SymbolicLink" Principal = $Principal @@ -4057,7 +4080,7 @@ Unregister-ScheduledTask -TaskName SymbolicLink -Confirm:`$false } #region main - # Change the %TEMP% environment variable path to "%LOCALAPPDATA%\Temp" + # Change the %TEMP% environment variable path to %LOCALAPPDATA%\Temp [Environment]::SetEnvironmentVariable("TMP", "$env:SystemDrive\Temp", "User") [Environment]::SetEnvironmentVariable("TMP", "$env:SystemDrive\Temp", "Machine") [Environment]::SetEnvironmentVariable("TMP", "$env:SystemDrive\Temp", "Process") @@ -4108,9 +4131,9 @@ Unregister-ScheduledTask -TaskName SymbolicLink -Confirm:`$false # The system does not move the file until the operating system is restarted # The system moves the file immediately after AUTOCHK is executed, but before creating any paging files $Signature = @{ - Namespace = "WinAPI" - Name = "DeleteFiles" - Language = "CSharp" + Namespace = "WinAPI" + Name = "DeleteFiles" + Language = "CSharp" MemberDefinition = @" public enum MoveFileFlags { @@ -4150,10 +4173,10 @@ Unregister-ScheduledTask -TaskName TemporaryTask -Confirm:`$false "@ # Create a temporary scheduled task to clean up the temporary folder - $Action = New-ScheduledTaskAction -Execute powershell.exe -Argument "-WindowStyle Hidden -Command $TempFolderCleanupTask" - $Trigger = New-ScheduledTaskTrigger -AtLogon -User $env:USERNAME - $Settings = New-ScheduledTaskSettingsSet -Compatibility Win8 - $Principal = New-ScheduledTaskPrincipal -UserId $env:USERNAME -RunLevel Highest + $Action = New-ScheduledTaskAction -Execute powershell.exe -Argument "-WindowStyle Hidden -Command $TempFolderCleanupTask" + $Trigger = New-ScheduledTaskTrigger -AtLogon -User $env:USERNAME + $Settings = New-ScheduledTaskSettingsSet -Compatibility Win8 + $Principal = New-ScheduledTaskPrincipal -UserId $env:USERNAME -RunLevel Highest $Parameters = @{ TaskName = "TemporaryTask" Principal = $Principal @@ -4165,7 +4188,7 @@ Unregister-ScheduledTask -TaskName TemporaryTask -Confirm:`$false } #region main - # Change the %TEMP% environment variable path to "%LOCALAPPDATA%\Temp" + # Change the %TEMP% environment variable path to %LOCALAPPDATA%\Temp [Environment]::SetEnvironmentVariable("TMP", "$env:LOCALAPPDATA\Temp", "User") [Environment]::SetEnvironmentVariable("TMP", "$env:SystemRoot\TEMP", "Machine") [Environment]::SetEnvironmentVariable("TMP", "$env:LOCALAPPDATA\Temp", "Process") @@ -4383,7 +4406,7 @@ function MappedDrivesAppElevatedAccess } "Disable" { - New-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -Name EnableLinkedConnections -PropertyType DWord -Value 0 -Force + Remove-ItemProperty -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System -Name EnableLinkedConnections -Force -ErrorAction Ignore } } } @@ -4806,6 +4829,7 @@ function WindowsFeatures } } + Write-Information -MessageData "" -InformationAction Continue Write-Verbose -Message $Localization.Patient -Verbose # Getting list of all optional features according to the conditions @@ -4817,10 +4841,13 @@ function WindowsFeatures if (-not ($Features)) { + Write-Information -MessageData "" -InformationAction Continue Write-Verbose -Message $Localization.NoData -Verbose + return } + Write-Information -MessageData "" -InformationAction Continue Write-Verbose -Message $Localization.DialogBoxOpening -Verbose #region Sendkey function @@ -4830,9 +4857,9 @@ function WindowsFeatures Add-Type -AssemblyName System.Windows.Forms $SetForegroundWindow = @{ - Namespace = "WinAPI" - Name = "ForegroundWindow" - Language = "CSharp" + Namespace = "WinAPI" + Name = "ForegroundWindow" + Language = "CSharp" MemberDefinition = @" [DllImport("user32.dll")] public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow); @@ -5089,6 +5116,7 @@ function WindowsCapabilities function UninstallButton { + Write-Information -MessageData "" -InformationAction Continue Write-Verbose -Message $Localization.Patient -Verbose [void]$Window.Close() @@ -5098,12 +5126,14 @@ function WindowsCapabilities if ([string]$SelectedCapabilities.Name -match "Browser.InternetExplorer") { + Write-Information -MessageData "" -InformationAction Continue Write-Warning -Message $Localization.RestartWarning } } function InstallButton { + Write-Information -MessageData "" -InformationAction Continue Write-Verbose -Message $Localization.Patient -Verbose [void]$Window.Close() @@ -5113,6 +5143,7 @@ function WindowsCapabilities if ([string]$SelectedCapabilities.Name -match "Browser.InternetExplorer") { + Write-Information -MessageData "" -InformationAction Continue Write-Warning -Message $Localization.RestartWarning } } @@ -5190,6 +5221,7 @@ function WindowsCapabilities } } + Write-Information -MessageData "" -InformationAction Continue Write-Verbose -Message $Localization.Patient -Verbose # Getting list of all capabilities according to the conditions @@ -5201,10 +5233,13 @@ function WindowsCapabilities if (-not ($Capabilities)) { + Write-Information -MessageData "" -InformationAction Continue Write-Verbose -Message $Localization.NoData -Verbose + return } + Write-Information -MessageData "" -InformationAction Continue Write-Verbose -Message $Localization.DialogBoxOpening -Verbose #region Sendkey function @@ -5214,9 +5249,9 @@ function WindowsCapabilities Add-Type -AssemblyName System.Windows.Forms $SetForegroundWindow = @{ - Namespace = "WinAPI" - Name = "ForegroundWindow" - Language = "CSharp" + Namespace = "WinAPI" + Name = "ForegroundWindow" + Language = "CSharp" MemberDefinition = @" [DllImport("user32.dll")] public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow); @@ -5727,18 +5762,18 @@ function SetUserShellFolderLocation ) $KnownFolders = @{ - "Desktop" = @("B4BFCC3A-DB2C-424C-B029-7FE99A87C641"); - "Documents" = @("FDD39AD0-238F-46AF-ADB4-6C85480369C7", "f42ee2d3-909f-4907-8871-4c22fc0bf756"); - "Downloads" = @("374DE290-123F-4565-9164-39C4925E467B", "7d83ee9b-2244-4e70-b1f5-5393042af1e4"); - "Music" = @("4BD8D571-6D19-48D3-BE97-422220080E43", "a0c69a99-21c8-4671-8703-7934162fcf1d"); - "Pictures" = @("33E28130-4E1E-4676-835A-98395C3BC3BB", "0ddd015d-b06c-45d5-8c4c-f59713854639"); - "Videos" = @("18989B1D-99B5-455B-841C-AB7C74E4DDFC", "35286a68-3c57-41a1-bbb1-0eae73d76c95"); + "Desktop" = @("B4BFCC3A-DB2C-424C-B029-7FE99A87C641"); + "Documents" = @("FDD39AD0-238F-46AF-ADB4-6C85480369C7", "f42ee2d3-909f-4907-8871-4c22fc0bf756"); + "Downloads" = @("374DE290-123F-4565-9164-39C4925E467B", "7d83ee9b-2244-4e70-b1f5-5393042af1e4"); + "Music" = @("4BD8D571-6D19-48D3-BE97-422220080E43", "a0c69a99-21c8-4671-8703-7934162fcf1d"); + "Pictures" = @("33E28130-4E1E-4676-835A-98395C3BC3BB", "0ddd015d-b06c-45d5-8c4c-f59713854639"); + "Videos" = @("18989B1D-99B5-455B-841C-AB7C74E4DDFC", "35286a68-3c57-41a1-bbb1-0eae73d76c95"); } $Signature = @{ - Namespace = "WinAPI" - Name = "KnownFolders" - Language = "CSharp" + Namespace = "WinAPI" + Name = "KnownFolders" + Language = "CSharp" MemberDefinition = @" [DllImport("shell32.dll")] public extern static int SHSetKnownFolderPath(ref Guid folderId, uint flags, IntPtr token, [MarshalAs(UnmanagedType.LPWStr)] string path); @@ -5918,9 +5953,9 @@ public extern static int SHSetKnownFolderPath(ref Guid folderId, uint flags, Int # Get the localized user folders names $Signature = @{ - Namespace = "WinAPI" - Name = "GetStr" - Language = "CSharp" + Namespace = "WinAPI" + Name = "GetStr" + Language = "CSharp" MemberDefinition = @" [DllImport("kernel32.dll", CharSet = CharSet.Auto)] public static extern IntPtr GetModuleHandle(string lpModuleName); @@ -5954,6 +5989,7 @@ public static string GetString(uint strId) { "Root" { + Write-Information -MessageData "" -InformationAction Continue Write-Verbose -Message $Localization.RetrievingDrivesList -Verbose Write-Information -MessageData "" -InformationAction Continue @@ -5977,7 +6013,6 @@ public static string GetString(uint strId) Write-Verbose -Message ($Localization.CurrentUserFolderLocation -f $DesktopLocalizedString, $CurrentUserFolderLocation) -Verbose Write-Information -MessageData "" -InformationAction Continue - Write-Warning -Message $Localization.FilesWontBeMoved Write-Information -MessageData "" -InformationAction Continue @@ -6011,7 +6046,6 @@ public static string GetString(uint strId) Write-Verbose -Message ($Localization.CurrentUserFolderLocation -f $DocumentsLocalizedString, $CurrentUserFolderLocation) -Verbose Write-Information -MessageData "" -InformationAction Continue - Write-Warning -Message $Localization.FilesWontBeMoved Write-Information -MessageData "" -InformationAction Continue @@ -6045,7 +6079,6 @@ public static string GetString(uint strId) Write-Verbose -Message ($Localization.CurrentUserFolderLocation -f $DownloadsLocalizedString, $CurrentUserFolderLocation) -Verbose Write-Information -MessageData "" -InformationAction Continue - Write-Warning -Message $Localization.FilesWontBeMoved Write-Information -MessageData "" -InformationAction Continue @@ -6079,7 +6112,6 @@ public static string GetString(uint strId) Write-Verbose -Message ($Localization.CurrentUserFolderLocation -f $MusicLocalizedString, $CurrentUserFolderLocation) -Verbose Write-Information -MessageData "" -InformationAction Continue - Write-Warning -Message $Localization.FilesWontBeMoved Write-Information -MessageData "" -InformationAction Continue @@ -6111,8 +6143,8 @@ public static string GetString(uint strId) $CurrentUserFolderLocation = Get-ItemPropertyValue -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "My Pictures" Write-Verbose -Message ($Localization.CurrentUserFolderLocation -f $PicturesLocalizedString, $CurrentUserFolderLocation) -Verbose - Write-Information -MessageData "" -InformationAction Continue + Write-Information -MessageData "" -InformationAction Continue Write-Warning -Message $Localization.FilesWontBeMoved Write-Information -MessageData "" -InformationAction Continue @@ -6146,7 +6178,6 @@ public static string GetString(uint strId) Write-Verbose -Message ($Localization.CurrentUserFolderLocation -f $VideosLocalizedString, $CurrentUserFolderLocation) -Verbose Write-Information -MessageData "" -InformationAction Continue - Write-Warning -Message $Localization.FilesWontBeMoved Write-Information -MessageData "" -InformationAction Continue @@ -6180,7 +6211,6 @@ public static string GetString(uint strId) Write-Verbose -Message ($Localization.CurrentUserFolderLocation -f $DesktopLocalizedString, $CurrentUserFolderLocation) -Verbose Write-Information -MessageData "" -InformationAction Continue - Write-Warning -Message $Localization.FilesWontBeMoved Write-Information -MessageData "" -InformationAction Continue @@ -6224,7 +6254,6 @@ public static string GetString(uint strId) Write-Verbose -Message ($Localization.CurrentUserFolderLocation -f $DocumentsLocalizedString, $CurrentUserFolderLocation) -Verbose Write-Information -MessageData "" -InformationAction Continue - Write-Warning -Message $Localization.FilesWontBeMoved Write-Information -MessageData "" -InformationAction Continue @@ -6268,7 +6297,6 @@ public static string GetString(uint strId) Write-Verbose -Message ($Localization.CurrentUserFolderLocation -f $DownloadsLocalizedString, $CurrentUserFolderLocation) -Verbose Write-Information -MessageData "" -InformationAction Continue - Write-Warning -Message $Localization.FilesWontBeMoved Write-Information -MessageData "" -InformationAction Continue @@ -6312,7 +6340,6 @@ public static string GetString(uint strId) Write-Verbose -Message ($Localization.CurrentUserFolderLocation -f $MusicLocalizedString, $CurrentUserFolderLocation) -Verbose Write-Information -MessageData "" -InformationAction Continue - Write-Warning -Message $Localization.FilesWontBeMoved Write-Information -MessageData "" -InformationAction Continue @@ -6356,7 +6383,6 @@ public static string GetString(uint strId) Write-Verbose -Message ($Localization.CurrentUserFolderLocation -f $PicturesLocalizedString, $CurrentUserFolderLocation) -Verbose Write-Information -MessageData "" -InformationAction Continue - Write-Warning -Message $Localization.FilesWontBeMoved Write-Information -MessageData "" -InformationAction Continue @@ -6400,7 +6426,6 @@ public static string GetString(uint strId) Write-Verbose -Message ($Localization.CurrentUserFolderLocation -f $VideosLocalizedString, $CurrentUserFolderLocation) -Verbose Write-Information -MessageData "" -InformationAction Continue - Write-Warning -Message $Localization.FilesWontBeMoved Write-Information -MessageData "" -InformationAction Continue @@ -6446,7 +6471,6 @@ public static string GetString(uint strId) Write-Verbose -Message ($Localization.CurrentUserFolderLocation -f $DesktopLocalizedString, $CurrentUserFolderLocation) -Verbose Write-Information -MessageData "" -InformationAction Continue - Write-Warning -Message $Localization.FilesWontBeMoved Write-Information -MessageData "" -InformationAction Continue @@ -6477,7 +6501,6 @@ public static string GetString(uint strId) Write-Verbose -Message ($Localization.CurrentUserFolderLocation -f $DocumentsLocalizedString, $CurrentUserFolderLocation) -Verbose Write-Information -MessageData "" -InformationAction Continue - Write-Warning -Message $Localization.FilesWontBeMoved Write-Information -MessageData "" -InformationAction Continue @@ -6508,7 +6531,6 @@ public static string GetString(uint strId) Write-Verbose -Message ($Localization.CurrentUserFolderLocation -f $DownloadsLocalizedString, $CurrentUserFolderLocation) -Verbose Write-Information -MessageData "" -InformationAction Continue - Write-Warning -Message $Localization.FilesWontBeMoved Write-Information -MessageData "" -InformationAction Continue @@ -6539,7 +6561,6 @@ public static string GetString(uint strId) Write-Verbose -Message ($Localization.CurrentUserFolderLocation -f $MusicLocalizedString, $CurrentUserFolderLocation) -Verbose Write-Information -MessageData "" -InformationAction Continue - Write-Warning -Message $Localization.FilesWontBeMoved Write-Information -MessageData "" -InformationAction Continue @@ -6570,7 +6591,6 @@ public static string GetString(uint strId) Write-Verbose -Message ($Localization.CurrentUserFolderLocation -f $PicturesLocalizedString, $CurrentUserFolderLocation) -Verbose Write-Information -MessageData "" -InformationAction Continue - Write-Warning -Message $Localization.FilesWontBeMoved Write-Information -MessageData "" -InformationAction Continue @@ -6601,7 +6621,6 @@ public static string GetString(uint strId) Write-Verbose -Message ($Localization.CurrentUserFolderLocation -f $VideosLocalizedString, $CurrentUserFolderLocation) -Verbose Write-Information -MessageData "" -InformationAction Continue - Write-Warning -Message $Localization.FilesWontBeMoved Write-Information -MessageData "" -InformationAction Continue @@ -6704,14 +6723,14 @@ function WinPrtScrFolder .SYNOPSIS Recommended troubleshooter preferences - .PARAMETER Automatic + .PARAMETER Automatically Run troubleshooter automatically, then notify me .PARAMETER Default Ask me before running troubleshooter .EXAMPLE - RecommendedTroubleshooting -Automatic + RecommendedTroubleshooting -Automatically .EXAMPLE RecommendedTroubleshooting -Default @@ -6728,10 +6747,10 @@ function RecommendedTroubleshooting ( [Parameter( Mandatory = $true, - ParameterSetName = "Automatic" + ParameterSetName = "Automatically" )] [switch] - $Automatic, + $Automatically, [Parameter( Mandatory = $true, @@ -6743,7 +6762,7 @@ function RecommendedTroubleshooting switch ($PSCmdlet.ParameterSetName) { - "Automatic" + "Automatically" { if (-not (Test-Path -Path HKLM:\SOFTWARE\Microsoft\WindowsMitigation)) { @@ -6934,7 +6953,7 @@ function F1HelpPage } "Enable" { - Remove-Item -Path "HKCU:\SOFTWARE\Classes\Typelib\{8cec5860-07a1-11d9-b15e-000d56bfe6ee}" -Recurse -Force -ErrorAction SilentlyContinue + Remove-Item -Path "HKCU:\SOFTWARE\Classes\Typelib\{8cec5860-07a1-11d9-b15e-000d56bfe6ee}" -Recurse -Force -ErrorAction Ignore } } } @@ -7036,7 +7055,7 @@ function CapsLock } "Enable" { - Remove-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Keyboard Layout" -Name "Scancode Map" -Force + Remove-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\Keyboard Layout" -Name "Scancode Map" -Force -ErrorAction Ignore } } } @@ -8034,6 +8053,7 @@ namespace FileAssoc Set-Icon -ProgId $ProgId -Icon $Icon } + Write-Information -MessageData "" -InformationAction Continue Write-Verbose -Message $Localization.Patient -Verbose # Setting additional parameters to comply with the requirements before configuring the extension @@ -8044,9 +8064,9 @@ namespace FileAssoc # Refresh the desktop icons $UpdateExplorer = @{ - Namespace = "WinAPI" - Name = "UpdateExplorer" - Language = "CSharp" + Namespace = "WinAPI" + Name = "UpdateExplorer" + Language = "CSharp" MemberDefinition = @" [DllImport("shell32.dll", CharSet = CharSet.Auto, SetLastError = false)] private static extern int SHChangeNotify(int eventId, int flags, IntPtr item1, IntPtr item2); @@ -8212,9 +8232,9 @@ function WSL Add-Type -AssemblyName System.Windows.Forms $SetForegroundWindow = @{ - Namespace = "WinAPI" - Name = "ForegroundWindow" - Language = "CSharp" + Namespace = "WinAPI" + Name = "ForegroundWindow" + Language = "CSharp" MemberDefinition = @" [DllImport("user32.dll")] public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow); @@ -8498,9 +8518,9 @@ function PinToStart # Extract strings from shell32.dll using its' number # https://github.com/Disassembler0/Win10-Initial-Setup-Script/issues/8#issue-227159084 $Signature = @{ - Namespace = "WinAPI" - Name = "GetStr" - Language = "CSharp" + Namespace = "WinAPI" + Name = "GetStr" + Language = "CSharp" MemberDefinition = @" [DllImport("kernel32.dll", CharSet = CharSet.Auto)] public static extern IntPtr GetModuleHandle(string lpModuleName); @@ -8919,6 +8939,7 @@ function UninstallUWPApps $AllUsers ) + Write-Information -MessageData "" -InformationAction Continue Write-Verbose -Message $Localization.Patient -Verbose $AppxPackages = Get-AppxPackage -PackageTypeFilter Bundle -AllUsers:$AllUsers | Where-Object -FilterScript {$_.Name -notin $ExcludedAppxPackages} @@ -9006,6 +9027,7 @@ function UninstallUWPApps function ButtonUninstallClick { + Write-Information -MessageData "" -InformationAction Continue Write-Verbose -Message $Localization.Patient -Verbose $Window.Close() | Out-Null @@ -9093,10 +9115,12 @@ function UninstallUWPApps if ($AppxPackages.Count -eq 0) { + Write-Information -MessageData "" -InformationAction Continue Write-Verbose -Message $Localization.NoData -Verbose } else { + Write-Information -MessageData "" -InformationAction Continue Write-Verbose -Message $Localization.DialogBoxOpening -Verbose #region Sendkey function @@ -9106,9 +9130,9 @@ function UninstallUWPApps Add-Type -AssemblyName System.Windows.Forms $SetForegroundWindow = @{ - Namespace = "WinAPI" - Name = "ForegroundWindow" - Language = "CSharp" + Namespace = "WinAPI" + Name = "ForegroundWindow" + Language = "CSharp" MemberDefinition = @" [DllImport("user32.dll")] public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow); @@ -9177,7 +9201,7 @@ function RestoreUWPApps xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Name="Window" MinHeight="400" MinWidth="410" - SizeToContent="WidthAndHeight" WindowStartupLocation="CenterScreen" + SizeToContent="Width" WindowStartupLocation="CenterScreen" TextOptions.TextFormattingMode="Display" SnapsToDevicePixels="True" FontFamily="Candara" FontSize="16" ShowInTaskbar="True" Background="#F1F1F1" Foreground="#262626"> @@ -9254,6 +9278,7 @@ function RestoreUWPApps #region Functions function Get-AppxManifest { + Write-Information -MessageData "" -InformationAction Continue Write-Verbose -Message $Localization.Patient -Verbose # You cannot retrieve packages using -PackageTypeFilter Bundle, otherwise you won't get the InstallLocation attribute. It can be retrieved only by comparing with $Bundles @@ -9327,6 +9352,7 @@ function RestoreUWPApps function ButtonRestoreClick { + Write-Information -MessageData "" -InformationAction Continue Write-Verbose -Message $Localization.Patient -Verbose $Window.Close() | Out-Null @@ -9335,8 +9361,8 @@ function RestoreUWPApps Register = $true ForceApplicationShutdown = $true ForceUpdateFromAnyVersion = $true - DisableDevelopmentMod = $true - Verbose = [switch]::Present + DisableDevelopmentMode = $true + Verbose = $true } $PackagesToRestore | Add-AppxPackage @Parameters } @@ -9409,10 +9435,12 @@ function RestoreUWPApps if ($AppxPackages.Count -eq 0) { + Write-Information -MessageData "" -InformationAction Continue Write-Verbose -Message $Localization.NoData -Verbose } else { + Write-Information -MessageData "" -InformationAction Continue Write-Verbose -Message $Localization.DialogBoxOpening -Verbose #region Sendkey function @@ -9422,9 +9450,9 @@ function RestoreUWPApps Add-Type -AssemblyName System.Windows.Forms $SetForegroundWindow = @{ - Namespace = "WinAPI" - Name = "ForegroundWindow" - Language = "CSharp" + Namespace = "WinAPI" + Name = "ForegroundWindow" + Language = "CSharp" MemberDefinition = @" [DllImport("user32.dll")] public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow); @@ -9519,7 +9547,7 @@ function HEIF "Install" { # Check whether the extension is already installed - if (-not (Get-AppxPackage -Name Microsoft.HEVCVideoExtension) -and (Get-AppxPackage -Name Microsoft.Windows.Photos)) + if ((-not (Get-AppxPackage -Name Microsoft.HEVCVideoExtension)) -and (Get-AppxPackage -Name Microsoft.Windows.Photos)) { try { @@ -9557,9 +9585,9 @@ function HEIF $DownloadsFolder = Get-ItemPropertyValue -Path "HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "{374DE290-123F-4565-9164-39C4925E467B}" $Parameters = @{ - Uri = $TempURL + Uri = $TempURL OutFile = "$DownloadsFolder\$Package" - Verbose = [switch]::Present + Verbose = $true } Invoke-WebRequest @Parameters @@ -9722,43 +9750,28 @@ function BackgroundUWPApps { "Disable" { + # Remove all excluded apps running in the background Get-ChildItem -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\BackgroundAccessApplications | ForEach-Object -Process { Remove-ItemProperty -Path $_.PsPath -Name * -Force } - $ExcludedBackgroundApps = @( - # Lock screen app - "Microsoft.LockApp", - - # Content Delivery Manager (delivers Windows Spotlight wallpapers to the lock screen) - "Microsoft.Windows.ContentDeliveryManager", - - # Cortana - "Microsoft.Windows.Cortana", - - # Windows Search - "Microsoft.Windows.Search", - - # Windows Security - "Microsoft.Windows.SecHealthUI", - - # Windows Shell Experience (Action center, snipping support, toast notification, touch screen keyboard) - "Microsoft.Windows.ShellExperienceHost", - - # The Start menu - "Microsoft.Windows.StartMenuExperienceHost", + # Exclude apps from the Bundle only + $BackgroundAccessApplications = @((Get-ChildItem -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\BackgroundAccessApplications).PSChildName) + $ExcludedBackgroundAccessApplications = @() + foreach ($BackgroundAccessApplication in $BackgroundAccessApplications) + { + if (Get-AppxPackage -PackageTypeFilter Bundle -AllUsers | Where-Object -FilterScript {$_.PackageFamilyName -eq $BackgroundAccessApplication}) + { + $ExcludedBackgroundAccessApplications += $BackgroundAccessApplication + } + } - # Microsoft Store - "Microsoft.WindowsStore" - ) - $OFS = "|" - Get-ChildItem -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\BackgroundAccessApplications | Where-Object -FilterScript {$_.PSChildName -notmatch "^$($ExcludedBackgroundApps.ForEach({[regex]::Escape($_)}))"} | ForEach-Object -Process { + Get-ChildItem -Path HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\BackgroundAccessApplications | Where-Object -FilterScript {$_.PSChildName -in $ExcludedBackgroundAccessApplications} | ForEach-Object -Process { New-ItemProperty -Path $_.PsPath -Name Disabled -PropertyType DWord -Value 1 -Force New-ItemProperty -Path $_.PsPath -Name DisabledByUser -PropertyType DWord -Value 1 -Force } - $OFS = " " - # Open "Background apps" page + # Open the "Background apps" page Start-Process -FilePath ms-settings:privacy-backgroundapps } "Enable" @@ -9949,6 +9962,7 @@ function SetAppGraphicsPerformance } "1" { + Write-Information -MessageData "" -InformationAction Continue Write-Verbose -Message $Localization.Skipped -Verbose } } @@ -10180,9 +10194,9 @@ while (`$true) "@ # Create the "Windows Cleanup" task - $Action = New-ScheduledTaskAction -Execute powershell.exe -Argument "-WindowStyle Hidden -Command $CleanupTask" - $Settings = New-ScheduledTaskSettingsSet -Compatibility Win8 -StartWhenAvailable - $Principal = New-ScheduledTaskPrincipal -UserId $env:USERNAME -RunLevel Highest + $Action = New-ScheduledTaskAction -Execute powershell.exe -Argument "-WindowStyle Hidden -Command $CleanupTask" + $Settings = New-ScheduledTaskSettingsSet -Compatibility Win8 -StartWhenAvailable + $Principal = New-ScheduledTaskPrincipal -UserId $env:USERNAME -RunLevel Highest $Parameters = @{ TaskName = "Windows Cleanup" TaskPath = "Sophia Script" @@ -10864,7 +10878,7 @@ function EventViewerCustomView } "Disable" { - Remove-Item -Path "$env:ProgramData\Microsoft\Event Viewer\Views\ProcessCreation.xml" -Force -ErrorAction SilentlyContinue + Remove-Item -Path "$env:ProgramData\Microsoft\Event Viewer\Views\ProcessCreation.xml" -Force -ErrorAction Ignore } } } @@ -11288,16 +11302,15 @@ function MSIExtractContext { New-Item -Path Registry::HKEY_CLASSES_ROOT\Msi.Package\shell\Extract\Command -Force } - $Value = "{0}" -f 'msiexec.exe /a "%1" /qb TARGETDIR="%1 extracted"' + $Value = "{0}" -f "msiexec.exe /a `"%1`" /qb TARGETDIR=`"%1 extracted`"" New-ItemProperty -Path Registry::HKEY_CLASSES_ROOT\Msi.Package\shell\Extract\Command -Name "(default)" -PropertyType String -Value $Value -Force New-ItemProperty -Path Registry::HKEY_CLASSES_ROOT\Msi.Package\shell\Extract -Name MUIVerb -PropertyType String -Value "@shell32.dll,-37514" -Force New-ItemProperty -Path Registry::HKEY_CLASSES_ROOT\Msi.Package\shell\Extract -Name Icon -PropertyType String -Value "shell32.dll,-16817" -Force } "Hide" { - Remove-Item -Path Registry::HKEY_CLASSES_ROOT\Msi.Package\shell\Extract -Recurse -Force -ErrorAction SilentlyContinue + Remove-Item -Path Registry::HKEY_CLASSES_ROOT\Msi.Package\shell\Extract -Recurse -Force -ErrorAction Ignore } - } } @@ -11354,9 +11367,8 @@ function CABInstallContext } "Hide" { - Remove-Item -Path Registry::HKEY_CLASSES_ROOT\CABFolder\Shell\RunAs -Recurse -Force -ErrorAction SilentlyContinue + Remove-Item -Path Registry::HKEY_CLASSES_ROOT\CABFolder\Shell\RunAs -Recurse -Force -ErrorAction Ignore } - } } @@ -11579,7 +11591,7 @@ function EditWithPaint3DContext $Extensions = @(".bmp", ".gif", ".jpe", ".jpeg", ".jpg", ".png", ".tif", ".tiff") foreach ($Extension in $Extensions) { - Remove-ItemProperty -Path "Registry::HKEY_CLASSES_ROOT\SystemFileAssociations\$Extension\Shell\3D Edit" -Name ProgrammaticAccessOnly -Force -ErrorAction SilentlyContinue + Remove-ItemProperty -Path "Registry::HKEY_CLASSES_ROOT\SystemFileAssociations\$Extension\Shell\3D Edit" -Name ProgrammaticAccessOnly -Force -ErrorAction Ignore } } } @@ -12016,7 +12028,7 @@ function BitmapImageNewContext { if ((Get-WindowsCapability -Online -Name "Microsoft.Windows.MSPaint*").State -eq "Installed") { - Remove-Item -Path Registry::HKEY_CLASSES_ROOT\.bmp\ShellNew -Force -ErrorAction SilentlyContinue + Remove-Item -Path Registry::HKEY_CLASSES_ROOT\.bmp\ShellNew -Force -ErrorAction Ignore } } "Show" @@ -12301,9 +12313,9 @@ function UseStoreOpenWith function RefreshEnvironment { $UpdateEnvironment = @{ - Namespace = "WinAPI" - Name = "UpdateEnvironment" - Language = "CSharp" + Namespace = "WinAPI" + Name = "UpdateEnvironment" + Language = "CSharp" MemberDefinition = @" private static readonly IntPtr HWND_BROADCAST = new IntPtr(0xffff); private const int WM_SETTINGCHANGE = 0x1a; diff --git a/Sophia/PowerShell 5.1/Sophia.ps1 b/Sophia/PowerShell 5.1/Sophia.ps1 index 9a523279..d119fbff 100644 --- a/Sophia/PowerShell 5.1/Sophia.ps1 +++ b/Sophia/PowerShell 5.1/Sophia.ps1 @@ -2,8 +2,8 @@ .SYNOPSIS Default preset file for "Sophia Script for Windows 10" - Version: v5.12.2 - Date: 25.08.2021 + Version: v5.12.3 + Date: 19.09.2021 Copyright (c) 2014–2021 farag Copyright (c) 2019–2021 farag & Inestic @@ -21,6 +21,10 @@ .EXAMPLE Run the script by specifying the module functions as an argument .\Sophia.ps1 -Functions "DiagTrackService -Disable", "DiagnosticDataLevel -Minimal", UninstallUWPApps + .EXAMPLE Download and expand the archive (without running) the latest Sophia Script according which Windows and PowerShell versions it is run on + irm script.sophi.app | iex + Invoke-RestMethod -Uri script.sophi.app | Invoke-Expression + .NOTES Supported Windows 10 versions Versions: 2004/20H2/21H1/21H2 @@ -32,9 +36,6 @@ Set execution policy to be able to run scripts only in the current PowerShell session: Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force - .NOTES - Running the script is best done on a fresh install because running it on wrong tweaked system may result in errors occurring - .NOTES To use the TAB completion for functions and their arguments dot source the Function.ps1 script first: . .\Function.ps1 (with a dot at the beginning) @@ -71,7 +72,7 @@ param Clear-Host -$Host.UI.RawUI.WindowTitle = "Sophia Script for Windows 10 v5.12.2 | Made with $([char]::ConvertFromUtf32(0x1F497)) of Windows | $([char]0x00A9) farag & Inestic, 2014–2021" +$Host.UI.RawUI.WindowTitle = "Sophia Script for Windows 10 v5.12.3 | Made with $([char]::ConvertFromUtf32(0x1F497)) of Windows | $([char]0x00A9) farag & Inestic, 2014–2021" Remove-Module -Name Sophia -Force -ErrorAction Ignore Import-Module -Name $PSScriptRoot\Manifest\Sophia.psd1 -PassThru -Force @@ -113,7 +114,7 @@ if ($Functions) Обязательные проверки. Чтобы выключить предупреждение о необходимости настройки пресет-файла, удалите аргумент "-Warning" Пожалуйста, не комментируйте данную функцию #> -Checkings -Warning +Checkings <# Enable script logging. Log will be recorded into the script folder @@ -126,7 +127,7 @@ Checkings -Warning # Create a restore point # Создать точку восстановления -CreateRestorePoint +#CreateRestorePoint #endregion Protection #region Privacy & Telemetry @@ -207,7 +208,7 @@ WindowsWelcomeExperience -Hide WindowsTips -Enable # Do not get tip, trick, and suggestions as you use Windows -# Не получать советы, подсказки и рекомендации при использованию Windows +# Не получать советы, подсказки и рекомендации при использовании Windows # WindowsTips -Disable # Hide from me suggested content in the Settings app @@ -537,11 +538,11 @@ AppsLanguageSwitch -Enable # AppsLanguageSwitch -Disable # When I grab a windows's title bar and shake it, minimize all other windows -# При захвате заголовка окна и встряхивании сворачивать все остальные окна +# При захвате заголовка окна и встряхивании сворачиваются все остальные окна AeroShaking -Enable # When I grab a windows's title bar and shake it, don't minimize all other windows (default value) -# При захвате заголовка окна и встряхивании не сворачивать все остальные окна (значение по умолчанию) +# При захвате заголовка окна и встряхивании не сворачиваются все остальные окна (значение по умолчанию) # AeroShaking -Disable #endregion UI & Personalization @@ -791,7 +792,7 @@ WinPrtScrFolder -Desktop Автоматически запускать средства устранения неполадок, а затем уведомлять Чтобы заработала данная функция, уровень сбора диагностических данных ОС будет установлен на "Необязательные диагностические данные" и включится создание отчетов об ошибках Windows #> -RecommendedTroubleshooting -Automatic +RecommendedTroubleshooting -Automatically <# Ask me before running troubleshooter (default value) @@ -989,7 +990,7 @@ HEIF -Install Открыть страницу "Расширения для видео HEVC от производителя устройства" в Microsoft Store, чтобы вручную установить расширение для открытия форматов .heic и .heif Расширение может быть установлено бесплатно без учетной записи Microsoft #> -# HEIF -Manual +# HEIF -Manually # Disable Cortana autostarting # Выключить автозагрузку Кортана