Možná jste se s tím již setkali, možná se s tím setkáváte stále, možná googlíte použitelné skripty a nic vám nefunguje. Tento návod počítá s tím, že máte Windows 10 a verzi powershellu odpovídající windows10 build 21H2.
Tento článek bude o odříkaném chlebu a jeho největším krajíci, protože víte, že Windows pro mě primární není a tak se jen udržuji v kondici.
V mém případě pro zjištění verze stačí napsat v powershellu příkaz:
$PSversionTable A ten vypíše:
Name Value
---- -----
PSVersion 5.1.19041.1682
PSEdition Desktop
PSCompatibleVersions {1.0, 2.0, 3.0, 4.0…}
BuildVersion 10.0.19041.1682
CLRVersion 4.0.30319.42000
WSManStackVersion 3.0
PSRemotingProtocolVersion 2.3
SerializationVersion 1.1.0.1
(zdroj)
Výpis všech nainstalovaných programů Powershellem
Get-WmiObject Win32_product | select name, packagecache (zdroj)
Odinstalace programu Powershell skriptem
Odinstalace nějakého programu celý skript.bat
REM --Toto je ODINSTALACNI SKRIPT --
@echo off
:: BatchGotAdmin
:-------------------------------------
REM --> Check for permissions
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
REM --> If error flag set, we do not have admin.
if '%errorlevel%' NEQ '0' (
echo Requesting administrative privileges...
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
set params = %*:"=""
echo UAC.ShellExecute "cmd.exe", "/c %~s0 %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
del "%temp%\getadmin.vbs"
exit /B
:gotAdmin
pushd "%CD%"
CD /D "%~dp0"
:-----------------------------------
wmic product where name="R for Windows 4.1.1" call uninstall
wmic product where name="RStudio" call uninstall
pause
Případně pokud už máte cmd konzoli s admin právy, tak vám stačí jen řádek:
wmic product where name=“Celý název programu včetně verze, jak to vypsal příkaz nahoře se seznamem všech programů“ call uninstall
A provede to totéž. Zbytek, tedy ta horní část skriptu jen vynutí při spuštění práva administrátora, pokud nejsou.
Automatické stažení a instalace programu Powershellem
Skript na automatické stažení a instalaci nějakého programu, uvedu příklad v podobě open-source programu pro statistické výpočty R:
ECHO OFF bitsadmin.exe /transfer "R 4.2.1-win"/download /priority FOREGROUND https://cran.r-project.org/bin/windows/base/R-4.2.1-win.exe C:\Users\%USERNAME%\Downloads\r-4.2.1-win.exe cd C:\Users\%USERNAME%\Downloads ECHO "Zde můžete uživatele informovat o tom, že se mu zobrazí tabulka, ve které má kliknout na ANO a program se pak potichu nainstaluje. Další řádek je spuštění instalátoru programu s parametry /VERYSILENT, tedy tichou instalací a /NORESTART, tedy že se počítač po dokončení instalace nemá restartovat." R-4.2.1-win.exe /VERYSILENT /LOG=instalacer-4-2-1.log /NORESTART /MERGETASKS=desktopicon ECHO "Zde můžete uživatele informovat o tom, že je program nainstalován a že může stisknout libovolnou klávesu. credits: kvalitninavody.cz" ECHO "Nainstalovaná verze programu: R 4.2.1" PAUSE
Skript na kontrolu a opravu image Windows
Ideální po restartu, či výpadku elektřiny, když si potřebujete ověřit, že jsou Windows na stanici či notebooku v pořádku):
@echo off
if not "%1"=="am_admin" (powershell start -verb runas '%0' am_admin & exit /b)
DISM /Online /Cleanup-Image /CheckHealth
DISM /Online /Cleanup-Image /RestoreHealth
SFC /scannow
PAUSE
V minulosti jsem tento skript uvedl v tomto článku spolu s dalším skriptem na automatické stažení, když si skript vystavíte na webovém serveru. V případě dnešního článku jsem se rozhodl sem vložit skript dodatečně.
Zdroje těchto dalších skriptů patrně nedohledám, věřte však, že nejsou z mé produkce a že jsem je vyhrabal někde na stack overflow, mezi haldou dalších nefunkčních. Primárně se zabývám bashem.