diff --git a/Win 10 1903-1909.ps1 b/Win 10 1903-1909.ps1
index 7a59b83e..3155f4d2 100644
--- a/Win 10 1903-1909.ps1
+++ b/Win 10 1903-1909.ps1
@@ -18,8 +18,8 @@
.EXAMPLE
PS C:\> & '.\Win 10.ps1'
.NOTES
- Version: v4.4.1
- Date: 10.06.2020
+ Version: v4.4.2
+ Date: 17.06.2020
Written by: farag & oZ-Zo
Thanks to all http://forum.ru-board.com members involved
@@ -113,14 +113,6 @@ Set-StrictMode -Version Latest
# Очистка переменной $Error
$Error.Clear()
-# Set the encoding to UTF-8 without BOM for the PowerShell session
-# Установить кодировку UTF-8 без BOM для текущей сессии PowerShell
-if ($RU)
-{
- ping.exe | Out-Null
- $OutputEncoding = [System.Console]::OutputEncoding = [System.Console]::InputEncoding = [System.Text.Encoding]::UTF8
-}
-
# Create a restore point
# Создать точку восстановления
if ($RU)
@@ -520,6 +512,7 @@ if (-not ("WinAPI.GetStr" -as [type]))
{
Add-Type @Signature -Using System.Text
}
+
# Extract the "Unpin from taskbar" string from shell32.dll
# Извлечь строку "Открепить от панели задач" из shell32.dll
$unpin = [WinAPI.GetStr]::GetString(5387)
@@ -874,7 +867,7 @@ New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem -Name L
# Group svchost.exe processes
# Группировать процессы svchost.exe
-$RAMCapacity = (Get-CimInstance -ClassName Win32_PhysicalMemory | Measure-Object -Property Capacity -Sum).Sum/1kb
+$RAMCapacity = (Get-CimInstance -ClassName Win32_PhysicalMemory | Measure-Object -Property Capacity -Sum).Sum / 1KB
New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control -Name SvcHostSplitThresholdInKB -PropertyType DWord -Value $RAMCapacity -Force
# Display the Stop error information on the BSoD
@@ -971,7 +964,7 @@ if ((Get-CimInstance -ClassName Win32_ComputerSystem).PCSystemType -ne 2)
$CheckedCapabilities += "Hello.Face*"
}
# Windows capabilities that will be shown in the form
-# Дополнительные компоненты Windows, которые будут выводиться в form
+# Дополнительные компоненты Windows, которые будут выводиться в форме
$ExcludedCapabilities = @(
# The DirectX Database to configure and optimize apps when multiple Graphics Adapters are present
# База данных DirectX для настройки и оптимизации приложений при наличии нескольких графических адаптеров
@@ -980,7 +973,7 @@ $ExcludedCapabilities = @(
# Языковые компоненты
"Language\."
# Mail, contacts, and calendar sync component
- # Компонент синхронизации почты, контактов и календаря.
+ # Компонент синхронизации почты, контактов и календаря
"OneCoreUAP\.OneSync"
# Management of printers, printer drivers, and printer servers
# Управление принтерами, драйверами принтеров и принт-серверами
@@ -1255,7 +1248,7 @@ if (Get-WindowsEdition -Online | Where-Object -FilterScript {$_.Edition -eq "Pro
{
try
{
- # Checking whether a Hyper-V is enabled
+ # Determining whether a Hyper-V is enabled
# Проверка: включен ли Hyper-V
if ((Get-CimInstance -ClassName CIM_ComputerSystem).HypervisorPresent -eq $true)
{
@@ -1408,8 +1401,8 @@ function UserShellFolder
"IconFile=%SystemRoot%\system32\shell32.dll","IconIndex=-238"
}
- # Checking the current user folder path
- # Проверяем текущее значение пути пользовательской папки
+ # Determining the current user folder path
+ # Определяем текущее значение пути пользовательской папки
$UserShellFolderRegValue = Get-ItemPropertyValue -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name $UserShellFoldersRegName[$UserFolder]
if ($UserShellFolderRegValue -ne $FolderPath)
{
@@ -1954,12 +1947,43 @@ switch ($Result)
{
"0"
{
- $TileCollection = Get-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccount\*start.tilegrid`$windows.data.curatedtilecollection.tilecollection\Current
- $Value = $TileCollection.Data[0..25] + ([byte[]](202,50,0,226,44,1,1,0,0))
- New-ItemProperty -Path $TileCollection.PSPath -Name Data -PropertyType Binary -Value $Value -Force
- # Restart Start menu
+ $StartMenuLayout = @"
+
+
+
+
+
+
+
+
+"@
+ $StartMenuLayoutPath = "$env:TEMP\StartMenuLayout.xml"
+ # Saving StartMenuLayout.xml in UTF-8 encoding
+ # Сохраняем StartMenuLayout.xml в кодирвоке UTF-8
+ Set-Content -Value (New-Object System.Text.UTF8Encoding).GetBytes($StartMenuLayout) -Encoding Byte -Path $StartMenuLayoutPath -Force
+
+ # Temporarily disable changing Start layout
+ # Временно выключаем возможность редактировать начальный экран
+ if (-not (Test-Path -Path HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer))
+ {
+ New-Item -Path HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer -Force
+ }
+ New-ItemProperty -Path HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer -Name LockedStartLayout -Value 1 -Force
+ New-ItemProperty -Path HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer -Name StartLayoutFile -Value $StartMenuLayoutPath -Force
+
+ # Restart the Start menu
# Перезапустить меню "Пуск"
Stop-Process -Name StartMenuExperienceHost -Force
+ Start-Sleep -Seconds 3
+
+ Remove-ItemProperty -Path HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer -Name LockedStartLayout -Force
+ Remove-ItemProperty -Path HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer -Name StartLayoutFile -Force
+
+ # Restart the Start menu
+ # Перезапустить меню "Пуск"
+ Stop-Process -Name StartMenuExperienceHost -Force
+ # https://en.wikipedia.org/wiki/8.3_filename
+ Get-Item -Path $StartMenuLayoutPath -Force | Remove-Item -Force
}
"1"
{
@@ -1976,51 +2000,47 @@ switch ($Result)
# Pin the shortcuts to Start
# Закрепить ярлыки на начальном экране
-# http://www.technosys.net/products/utils/pintotaskbar
-# SHA256: 6967E7A3C2251812DD6B3FA0265FB7B61AADC568F562A98C50C345908C6E827
-if (Test-Connection -ComputerName google.com -Quiet)
+if (Test-Path -Path $PSScriptRoot\syspin.exe)
{
- # Download syspin.exe to the "Downloads" folder
- # Скачать syspin.exe в папку "Загрузки"
- $DownloadsFolder = Get-ItemPropertyValue -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "{374DE290-123F-4565-9164-39C4925E467B}"
- [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
- $Parameters = @{
- Uri = "https://github.com/farag2/Windows-10-Setup-Script/raw/master/Start%20menu%20pinning/syspin.exe"
- OutFile = "$DownloadsFolder\syspin.exe"
- Verbose = [switch]::Present
- }
- Invoke-WebRequest @Parameters
+ $syspin = $true
}
else
{
- if ($RU)
+ try
{
- Write-Warning -Message "Отсутствует интернет-соединение" -ErrorAction SilentlyContinue
+ # Downloading syspin.exe
+ # Скачиваем syspin.exe
+ # http://www.technosys.net/products/utils/pintotaskbar
+ # SHA256: 6967E7A3C2251812DD6B3FA0265FB7B61AADC568F562A98C50C345908C6E827
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
+ if ((Invoke-WebRequest -Uri https://www.google.com -UseBasicParsing -DisableKeepAlive -Method Head).StatusDescription)
+ {
+ $Parameters = @{
+ Uri = "https://github.com/farag2/Windows-10-Setup-Script/raw/master/Start%20menu%20pinning/syspin.exe"
+ OutFile = "$PSScriptRoot\syspin.exe"
+ Verbose = [switch]::Present
+ }
+ Invoke-WebRequest @Parameters
+ $syspin = $true
+ }
}
- else
+ catch
{
- Write-Warning -Message "No Internet connection" -ErrorAction SilentlyContinue
+ if ($Error.Exception.Status -eq "NameResolutionFailure")
+ {
+ if ($RU)
+ {
+ Write-Warning -Message "Отсутствует интернет-соединение" -ErrorAction SilentlyContinue
+ }
+ else
+ {
+ Write-Warning -Message "No Internet connection" -ErrorAction SilentlyContinue
+ }
+ }
}
}
-Add-Type -AssemblyName System.Windows.Forms
-$OpenFileDialog = New-Object -TypeName System.Windows.Forms.OpenFileDialog
-$OpenFileDialog.InitialDirectory = $DownloadsFolder
-$OpenFileDialog.Multiselect = $false
-if ($RU)
-{
- $OpenFileDialog.Filter = "*.exe|*.exe|Все файлы (*.*)|*.*"
-}
-else
-{
- $OpenFileDialog.Filter = "*.exe|*.exe|All Files (*.*)|*.*"
-}
-# Focus on open file dialog
-# Перевести фокус на диалог открытия файла
-$tmp = New-Object -TypeName System.Windows.Forms.Form -Property @{TopMost = $true}
-$OpenFileDialog.ShowDialog($tmp)
-
-if ($OpenFileDialog.FileName)
+if ($syspin -eq $true)
{
# Pin "Control Panel" to Start
# Закрепить "Панель управления" на начальном экране
@@ -2041,7 +2061,7 @@ if ($OpenFileDialog.FileName)
$Arguments = @"
"$env:APPDATA\Microsoft\Windows\Start menu\Programs\$ControlPanelLocalizedName.lnk" "51201"
"@
- Start-Process -FilePath $OpenFileDialog.FileName -WindowStyle Hidden -ArgumentList $Arguments -Wait
+ Start-Process -FilePath $PSScriptRoot\syspin.exe -WindowStyle Hidden -ArgumentList $Arguments -Wait
}
else
{
@@ -2055,8 +2075,7 @@ if ($OpenFileDialog.FileName)
$Arguments = @"
"$env:SystemRoot\System32\$ControlPanelLocalizedName.lnk" "51201"
"@
- Start-Process -FilePath $OpenFileDialog.FileName -WindowStyle Hidden -ArgumentList $Arguments -Wait
-
+ Start-Process -FilePath $PSScriptRoot\syspin.exe -WindowStyle Hidden -ArgumentList $Arguments -Wait
Remove-Item -Path "$env:SystemRoot\System32\$ControlPanelLocalizedName.lnk" -Force
}
@@ -2086,7 +2105,7 @@ if ($OpenFileDialog.FileName)
$Arguments = @"
"$env:APPDATA\Microsoft\Windows\Start menu\Programs\System Tools\$DevicesAndPrintersLocalizedName.lnk" "51201"
"@
- Start-Process -FilePath $OpenFileDialog.FileName -WindowStyle Hidden -ArgumentList $Arguments -Wait
+ Start-Process -FilePath $PSScriptRoot\syspin.exe -WindowStyle Hidden -ArgumentList $Arguments -Wait
# Pin "Command Prompt" to Start
# Закрепить "Командную строку" на начальном экране
@@ -2101,16 +2120,12 @@ if ($OpenFileDialog.FileName)
$Arguments = @"
"$env:APPDATA\Microsoft\Windows\Start menu\Programs\System Tools\Command Prompt.lnk" "51201"
"@
- Start-Process -FilePath $OpenFileDialog.FileName -WindowStyle Hidden -ArgumentList $Arguments -Wait
-}
-
-# Delete downloaded syspin.exe
-# Удалить скачанный syspin.exe
-Remove-Item -Path "$DownloadsFolder\syspin.exe" -Force
+ Start-Process -FilePath $PSScriptRoot\syspin.exe -WindowStyle Hidden -ArgumentList $Arguments -Wait
-# Restart the Start menu
-# Перезапустить меню "Пуск"
-Stop-Process -Name StartMenuExperienceHost -Force
+ # Restart the Start menu
+ # Перезапустить меню "Пуск"
+ Stop-Process -Name StartMenuExperienceHost -Force
+}
#endregion Start menu
#region Edge
@@ -2538,6 +2553,7 @@ if (Get-CimInstance -ClassName Win32_VideoController | Where-Object -FilterScrip
<#
Create a Windows cleaning up task in the Task Scheduler
The task runs every 90 days
+
Создать задачу в Планировщике задач по очистке Windows
Задача выполняется каждые 90 дней
#>
@@ -2638,18 +2654,19 @@ $SourceMainWindowHandle = (Get-Process -Name cleanmgr).MainWindowHandle
function MinimizeWindow
{
[CmdletBinding()]
- Param
+ param
(
[Parameter(Mandatory = $true)]
- $Process
+ $Process
)
- $ShowWindowAsync = @{
- Namespace = "WinAPI"
- Name = "Win32ShowWindowAsync"
- Language = "CSharp"
- MemberDefinition = @"
- [DllImport("user32.dll")]
- public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
+
+ $ShowWindowAsync = @{
+ Namespace = "WinAPI"
+ Name = "Win32ShowWindowAsync"
+ Language = "CSharp"
+ MemberDefinition = @"
+ [DllImport("user32.dll")]
+ public static extern bool ShowWindowAsync(IntPtr hWnd, int nCmdShow);
"@
}
if (-not ("WinAPI.Win32ShowWindowAsync" -as [type]))
@@ -2719,6 +2736,7 @@ Register-ScheduledTask @Parameters -Force
<#
Create a task in the Task Scheduler to clear the %SystemRoot%\SoftwareDistribution\Download folder
The task runs on Thursdays every 4 weeks
+
Создать задачу в Планировщике задач по очистке папки %SystemRoot%\SoftwareDistribution\Download
Задача выполняется по четвергам каждую 4 неделю
#>
@@ -2752,6 +2770,7 @@ Register-ScheduledTask @Parameters -Force
<#
Create a task in the Task Scheduler to clear the %TEMP% folder
The task runs every 62 days
+
Создать задачу в Планировщике задач по очистке папки %TEMP%
Задача выполняется каждые 62 дня
#>
diff --git a/Win 10 2004.ps1 b/Win 10 2004.ps1
index 6723a435..befac45e 100644
--- a/Win 10 2004.ps1
+++ b/Win 10 2004.ps1
@@ -18,8 +18,8 @@
.EXAMPLE
PS C:\> & '.\Win 10.ps1'
.NOTES
- Version: v4.5
- Date: 10.06.2020
+ Version: v4.6
+ Date: 17.06.2020
Written by: farag & oZ-Zo
Thanks to all http://forum.ru-board.com members involved
@@ -113,14 +113,6 @@ Set-StrictMode -Version Latest
# Очистка переменной $Error
$Error.Clear()
-# Set the encoding to UTF-8 without BOM for the PowerShell session
-# Установить кодировку UTF-8 без BOM для текущей сессии PowerShell
-if ($RU)
-{
- ping.exe | Out-Null
- $OutputEncoding = [System.Console]::OutputEncoding = [System.Console]::InputEncoding = [System.Text.Encoding]::UTF8
-}
-
# Create a restore point
# Создать точку восстановления
if ($RU)
@@ -520,6 +512,7 @@ if (-not ("WinAPI.GetStr" -as [type]))
{
Add-Type @Signature -Using System.Text
}
+
# Extract the "Unpin from taskbar" string from shell32.dll
# Извлечь строку "Открепить от панели задач" из shell32.dll
$unpin = [WinAPI.GetStr]::GetString(5387)
@@ -869,7 +862,7 @@ New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem -Name L
# Group svchost.exe processes
# Группировать процессы svchost.exe
-$RAMCapacity = (Get-CimInstance -ClassName Win32_PhysicalMemory | Measure-Object -Property Capacity -Sum).Sum/1kb
+$RAMCapacity = (Get-CimInstance -ClassName Win32_PhysicalMemory | Measure-Object -Property Capacity -Sum).Sum / 1KB
New-ItemProperty -Path HKLM:\SYSTEM\CurrentControlSet\Control -Name SvcHostSplitThresholdInKB -PropertyType DWord -Value $RAMCapacity -Force
# Display the Stop error information on the BSoD
@@ -1962,12 +1955,43 @@ switch ($Result)
{
"0"
{
- $TileCollection = Get-ItemProperty -Path HKCU:\Software\Microsoft\Windows\CurrentVersion\CloudStore\Store\Cache\DefaultAccount\*start.tilegrid`$windows.data.curatedtilecollection.tilecollection\Current
- $Value = $TileCollection.Data[0..25] + ([byte[]](202,50,0,226,44,1,1,0,0))
- New-ItemProperty -Path $TileCollection.PSPath -Name Data -PropertyType Binary -Value $Value -Force
- # Restart Start menu
+ $StartMenuLayout = @"
+
+
+
+
+
+
+
+
+"@
+ $StartMenuLayoutPath = "$env:TEMP\StartMenuLayout.xml"
+ # Saving StartMenuLayout.xml in UTF-8 encoding
+ # Сохраняем StartMenuLayout.xml в кодирвоке UTF-8
+ Set-Content -Value (New-Object System.Text.UTF8Encoding).GetBytes($StartMenuLayout) -Encoding Byte -Path $StartMenuLayoutPath -Force
+
+ # Temporarily disable changing Start layout
+ # Временно выключаем возможность редактировать начальный экран
+ if (-not (Test-Path -Path HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer))
+ {
+ New-Item -Path HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer -Force
+ }
+ New-ItemProperty -Path HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer -Name LockedStartLayout -Value 1 -Force
+ New-ItemProperty -Path HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer -Name StartLayoutFile -Value $StartMenuLayoutPath -Force
+
+ # Restart the Start menu
# Перезапустить меню "Пуск"
Stop-Process -Name StartMenuExperienceHost -Force
+ Start-Sleep -Seconds 3
+
+ Remove-ItemProperty -Path HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer -Name LockedStartLayout -Force
+ Remove-ItemProperty -Path HKCU:\SOFTWARE\Policies\Microsoft\Windows\Explorer -Name StartLayoutFile -Force
+
+ # Restart the Start menu
+ # Перезапустить меню "Пуск"
+ Stop-Process -Name StartMenuExperienceHost -Force
+ # https://en.wikipedia.org/wiki/8.3_filename
+ Get-Item -Path $StartMenuLayoutPath -Force | Remove-Item -Force
}
"1"
{
@@ -1984,51 +2008,47 @@ switch ($Result)
# Pin the shortcuts to Start
# Закрепить ярлыки на начальном экране
-# http://www.technosys.net/products/utils/pintotaskbar
-# SHA256: 6967E7A3C2251812DD6B3FA0265FB7B61AADC568F562A98C50C345908C6E827
-if (Test-Connection -ComputerName google.com -Quiet)
+if (Test-Path -Path $PSScriptRoot\syspin.exe)
{
- # Download syspin.exe to the "Downloads" folder
- # Скачать syspin.exe в папку "Загрузки"
- $DownloadsFolder = Get-ItemPropertyValue -Path "HKCU:\Software\Microsoft\Windows\CurrentVersion\Explorer\User Shell Folders" -Name "{374DE290-123F-4565-9164-39C4925E467B}"
- [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
- $Parameters = @{
- Uri = "https://github.com/farag2/Windows-10-Setup-Script/raw/master/Start%20menu%20pinning/syspin.exe"
- OutFile = "$DownloadsFolder\syspin.exe"
- Verbose = [switch]::Present
- }
- Invoke-WebRequest @Parameters
+ $syspin = $true
}
else
{
- if ($RU)
+ try
{
- Write-Warning -Message "Отсутствует интернет-соединение" -ErrorAction SilentlyContinue
+ # Downloading syspin.exe
+ # Скачиваем syspin.exe
+ # http://www.technosys.net/products/utils/pintotaskbar
+ # SHA256: 6967E7A3C2251812DD6B3FA0265FB7B61AADC568F562A98C50C345908C6E827
+ [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
+ if ((Invoke-WebRequest -Uri https://www.google.com -UseBasicParsing -DisableKeepAlive -Method Head).StatusDescription)
+ {
+ $Parameters = @{
+ Uri = "https://github.com/farag2/Windows-10-Setup-Script/raw/master/Start%20menu%20pinning/syspin.exe"
+ OutFile = "$PSScriptRoot\syspin.exe"
+ Verbose = [switch]::Present
+ }
+ Invoke-WebRequest @Parameters
+ $syspin = $true
+ }
}
- else
+ catch
{
- Write-Warning -Message "No Internet connection" -ErrorAction SilentlyContinue
+ if ($Error.Exception.Status -eq "NameResolutionFailure")
+ {
+ if ($RU)
+ {
+ Write-Warning -Message "Отсутствует интернет-соединение" -ErrorAction SilentlyContinue
+ }
+ else
+ {
+ Write-Warning -Message "No Internet connection" -ErrorAction SilentlyContinue
+ }
+ }
}
}
-Add-Type -AssemblyName System.Windows.Forms
-$OpenFileDialog = New-Object -TypeName System.Windows.Forms.OpenFileDialog
-$OpenFileDialog.InitialDirectory = $DownloadsFolder
-$OpenFileDialog.Multiselect = $false
-if ($RU)
-{
- $OpenFileDialog.Filter = "*.exe|*.exe|Все файлы (*.*)|*.*"
-}
-else
-{
- $OpenFileDialog.Filter = "*.exe|*.exe|All Files (*.*)|*.*"
-}
-# Focus on open file dialog
-# Перевести фокус на диалог открытия файла
-$tmp = New-Object -TypeName System.Windows.Forms.Form -Property @{TopMost = $true}
-$OpenFileDialog.ShowDialog($tmp)
-
-if ($OpenFileDialog.FileName)
+if ($syspin -eq $true)
{
# Pin "Control Panel" to Start
# Закрепить "Панель управления" на начальном экране
@@ -2049,7 +2069,7 @@ if ($OpenFileDialog.FileName)
$Arguments = @"
"$env:APPDATA\Microsoft\Windows\Start menu\Programs\$ControlPanelLocalizedName.lnk" "51201"
"@
- Start-Process -FilePath $OpenFileDialog.FileName -WindowStyle Hidden -ArgumentList $Arguments -Wait
+ Start-Process -FilePath $PSScriptRoot\syspin.exe -WindowStyle Hidden -ArgumentList $Arguments -Wait
}
else
{
@@ -2063,8 +2083,7 @@ if ($OpenFileDialog.FileName)
$Arguments = @"
"$env:SystemRoot\System32\$ControlPanelLocalizedName.lnk" "51201"
"@
- Start-Process -FilePath $OpenFileDialog.FileName -WindowStyle Hidden -ArgumentList $Arguments -Wait
-
+ Start-Process -FilePath $PSScriptRoot\syspin.exe -WindowStyle Hidden -ArgumentList $Arguments -Wait
Remove-Item -Path "$env:SystemRoot\System32\$ControlPanelLocalizedName.lnk" -Force
}
@@ -2094,7 +2113,7 @@ if ($OpenFileDialog.FileName)
$Arguments = @"
"$env:APPDATA\Microsoft\Windows\Start menu\Programs\System Tools\$DevicesAndPrintersLocalizedName.lnk" "51201"
"@
- Start-Process -FilePath $OpenFileDialog.FileName -WindowStyle Hidden -ArgumentList $Arguments -Wait
+ Start-Process -FilePath $PSScriptRoot\syspin.exe -WindowStyle Hidden -ArgumentList $Arguments -Wait
# Pin "Command Prompt" to Start
# Закрепить "Командную строку" на начальном экране
@@ -2109,16 +2128,12 @@ if ($OpenFileDialog.FileName)
$Arguments = @"
"$env:APPDATA\Microsoft\Windows\Start menu\Programs\System Tools\Command Prompt.lnk" "51201"
"@
- Start-Process -FilePath $OpenFileDialog.FileName -WindowStyle Hidden -ArgumentList $Arguments -Wait
-}
-
-# Delete downloaded syspin.exe
-# Удалить скачанный syspin.exe
-Remove-Item -Path "$DownloadsFolder\syspin.exe" -Force
+ Start-Process -FilePath $PSScriptRoot\syspin.exe -WindowStyle Hidden -ArgumentList $Arguments -Wait
-# Restart the Start menu
-# Перезапустить меню "Пуск"
-Stop-Process -Name StartMenuExperienceHost -Force
+ # Restart the Start menu
+ # Перезапустить меню "Пуск"
+ Stop-Process -Name StartMenuExperienceHost -Force
+}
#endregion Start menu
#region UWP apps
@@ -2554,6 +2569,7 @@ if ((Get-CimInstance -ClassName CIM_VideoController | Where-Object -FilterScript
<#
Create a Windows cleaning up task in the Task Scheduler
The task runs every 90 days
+
Создать задачу в Планировщике задач по очистке Windows
Задача выполняется каждые 90 дней
#>
@@ -2659,6 +2675,7 @@ function MinimizeWindow
[Parameter(Mandatory = $true)]
$Process
)
+
$ShowWindowAsync = @{
Namespace = "WinAPI"
Name = "Win32ShowWindowAsync"
@@ -2735,6 +2752,7 @@ Register-ScheduledTask @Parameters -Force
<#
Create a task in the Task Scheduler to clear the %SystemRoot%\SoftwareDistribution\Download folder
The task runs on Thursdays every 4 weeks
+
Создать задачу в Планировщике задач по очистке папки %SystemRoot%\SoftwareDistribution\Download
Задача выполняется по четвергам каждую 4 неделю
#>
@@ -2768,6 +2786,7 @@ Register-ScheduledTask @Parameters -Force
<#
Create a task in the Task Scheduler to clear the %TEMP% folder
The task runs every 62 days
+
Создать задачу в Планировщике задач по очистке папки %TEMP%
Задача выполняется каждые 62 дня
#>