81 lines
5.0 KiB
Batchfile
81 lines
5.0 KiB
Batchfile
@echo off
|
||
REM Установить перечисленные приложения через winget и создать ярлыки в Start Menu -> Critical Fixes
|
||
REM Запускать с правами администратора. Проверьте id через `winget search <name>` при ошибках.
|
||
|
||
SET "DEST_DIR=C:\ProgramData\Microsoft\Windows\Start Menu\Programs\Critical Fixes"
|
||
mkdir "%DEST_DIR%" 2>nul
|
||
|
||
REM ---------- Установка приложений (при необходимости замените --name на --id после проверки) ----------
|
||
winget install --name "Advanced IP Scanner" -e --accept-source-agreements --accept-package-agreements
|
||
winget install --name "ATTO Disk Benchmark" -e --accept-source-agreements --accept-package-agreements
|
||
winget install --name "Autoruns" -e --accept-source-agreements --accept-package-agreements
|
||
winget install --name "BlueScreenView" -e --accept-source-agreements --accept-package-agreements
|
||
winget install --name "Bulk Crap Uninstaller" -e --accept-source-agreements --accept-package-agreements
|
||
winget install --name "CPU-Z" -e --accept-source-agreements --accept-package-agreements
|
||
winget install --name "CrystalDiskInfo" -e --accept-source-agreements --accept-package-agreements
|
||
winget install --name "CutLongNames" -e --accept-source-agreements --accept-package-agreements
|
||
winget install --name "Devices clean" -e --accept-source-agreements --accept-package-agreements
|
||
winget install --name "Far Manager" -e --accept-source-agreements --accept-package-agreements
|
||
winget install --name "FlashCard Recovery" -e --accept-source-agreements --accept-package-agreements
|
||
winget install --name "GPU-Z" -e --accept-source-agreements --accept-package-agreements
|
||
winget install --name "HDD-Speed" -e --accept-source-agreements --accept-package-agreements
|
||
winget install --name "HWiNFO" -e --accept-source-agreements --accept-package-agreements
|
||
winget install --name "Process Hacker" -e --accept-source-agreements --accept-package-agreements
|
||
winget install --name "Process Monitor" -e --accept-source-agreements --accept-package-agreements
|
||
winget install --name "Unlocker" -e --accept-source-agreements --accept-package-agreements
|
||
winget install --name "Victoria" -e --accept-source-agreements --accept-package-agreements
|
||
|
||
REM ---------- Создать PowerShell-скрипт для поиска исполняемых файлов и создания ярлыков ----------
|
||
SET "PSFILE=%TEMP%\create_critical_fixes_shortcuts.ps1"
|
||
> "%PSFILE%" (
|
||
echo $dest = "%DEST_DIR%"
|
||
echo if (-not (Test-Path $dest)) { New-Item -Path $dest -ItemType Directory | Out-Null }
|
||
echo $searchPaths = @("C:\Program Files","C:\Program Files (x86)","C:\Users\Public\Desktop","C:\ProgramData")
|
||
echo $apps = @(
|
||
echo @{Name='Advanced IP Scanner'; Pattern='advancedip|advanced ip'},
|
||
echo @{Name='ATTO Disk Benchmark'; Pattern='atto'},
|
||
echo @{Name='Autoruns'; Pattern='autoruns'},
|
||
echo @{Name='BlueScreen Viewer'; Pattern='bluescreen|bluescreenviewer'},
|
||
echo @{Name='Bulk Crap Uninstaller'; Pattern='bulk|bcuninstall|bcuri'},
|
||
echo @{Name='CPU-Z'; Pattern='cpuz'},
|
||
echo @{Name='CrystalDiskInfo'; Pattern='crystaldiskinfo|crystaldisk'},
|
||
echo @{Name='CutLongNames'; Pattern='cutlongnames'},
|
||
echo @{Name='Devices clean'; Pattern='devices.*clean|devicesclean'},
|
||
echo @{Name='Far Manager'; Pattern='far.exe|farmanager|far'},
|
||
echo @{Name='FlashCard Recovery'; Pattern='flashcard|flash card|flashcardrecovery'},
|
||
echo @{Name='GPU-Z'; Pattern='gpu-z|gpu_z|gpuz'},
|
||
echo @{Name='HDD-Speed'; Pattern='hdd-speed|hddspeed'},
|
||
echo @{Name='HWiNFO'; Pattern='hwinfo'},
|
||
echo @{Name='Process Hacker'; Pattern='processhacker|process hacker'},
|
||
echo @{Name='Process Monitor'; Pattern='procmon|processmonitor|process monitor'},
|
||
echo @{Name='Unlocker'; Pattern='unlocker'},
|
||
echo @{Name='Victoria'; Pattern='victoria'}
|
||
echo )
|
||
echo $shell = New-Object -ComObject WScript.Shell
|
||
echo foreach ($app in $apps) {
|
||
echo Write-Host "Searching for" $app.Name
|
||
echo $found = $null
|
||
echo foreach ($p in $searchPaths) {
|
||
echo try {
|
||
echo $found = Get-ChildItem -Path $p -Include *.exe -Recurse -ErrorAction SilentlyContinue | Where-Object { $_.Name -imatch $app.Pattern } | Select-Object -First 1
|
||
echo } catch {}
|
||
echo if ($found) { break }
|
||
echo }
|
||
echo if ($found) {
|
||
echo $lnk = $shell.CreateShortcut((Join-Path $dest ($app.Name + '.lnk')))
|
||
echo $lnk.TargetPath = $found.FullName
|
||
echo $lnk.WorkingDirectory = $found.DirectoryName
|
||
echo $lnk.IconLocation = $found.FullName
|
||
echo $lnk.Save()
|
||
echo Write-Host "Created shortcut for" $app.Name "->" $found.FullName
|
||
echo } else {
|
||
echo Write-Host "Executable not found for" $app.Name " — проверьте имя пакета или путь установки."
|
||
echo }
|
||
echo }
|
||
)
|
||
|
||
powershell -NoProfile -ExecutionPolicy Bypass -File "%PSFILE%"
|
||
del "%PSFILE%" 2>nul
|
||
|
||
echo Готово. Проверьте папку "%DEST_DIR%" для ярлыков.
|
||
pause |