Czy istnieje sposób, w jaki mogę odinstalować programy bez interfejsu graficznego i robienia tego przez CMD?
Czy istnieje sposób, w jaki mogę odinstalować programy bez interfejsu graficznego i robienia tego przez CMD?
Każdy program, który poprawnie instaluje się zgodnie z wytycznymi Microsoft, wprowadza do rejestru wpis HKLM\Software\Microsoft\Windows\CurrentVersion\Uninstall
. Zazwyczaj kluczem do programu będzie jego identyfikator GUID lub nazwa programu. Wewnątrz tego klucza będzie znajdować się wpis o nazwie UninstallString
. Zawiera polecenie do wykonania w celu odinstalowania programu.
Jeśli wiesz wcześniej, co chcesz odinstalować, wystarczy, że umieścisz to w pliku wsadowym. Jednak staje się to trudne, gdy próbujesz zautomatyzować ten proces. Możesz użyć reg
polecenia, aby uzyskać dane z rejestru, ale zwraca on dużo tekstu wokół rzeczywistej wartości danego klucza, co utrudnia jego użycie. Możesz poeksperymentować z użyciem VBscript lub PowerShell, ponieważ mają lepsze opcje przenoszenia danych z rejestru do zmiennej.
Możesz wywołać prawidłowy deinstalator bez znajomości GUID itp. Za pomocą WMIC.
Aby zobaczyć listę nazw programów znanych wewnętrznie przez Windows:
wmic product get name
Poszukaj nazwy swojego produktu. Prawdopodobnie pasuje do tego z panelu sterowania „Programy i funkcje” , ale nie zawsze.
Następnie możesz użyć
wmic product where name="_my_product_name" call uninstall
aby wykonać deinstalację, o której AFAIK powinien milczeć (było to z mojego doświadczenia, ale wypróbuj ją, zanim postawisz na farmę. Cisza może zależeć od tego, w jaki sposób został zbudowany instalator / deinstalator).
Zobacz tutaj po więcej:
Istnieje również dokumentacja referencyjna dla WMIC na microsoft.com.
/node:"<ComputerName>"
npwmic /node:"someuser-pc" product get name
. : Upewnij się, że używasz „” wokół nazwy, w przeciwnym razie wystąpi błąd „Nieprawidłowa zmiana globalna”. Upewnij się również, że uruchamiasz to z wiersza polecenia CMD, a nie z wiersza polecenia programu PowerShell, ponieważ obejście błędu „Nieprawidłowy przełącznik globalny” nie działa w wierszu polecenia programu PowerShell.Jeśli masz zainstalowany program PowerShell 3 (lub nowszy), możesz wywołać wywołanie WMI, aby nadać nazwom wszystkie programy określoną nazwę (lub „polubić” określoną rzecz, aby wyszukiwać z użyciem symboli wieloznacznych), a następnie wywołać
Uninstall
metodę dla każdego z nich:(Get-WmiObject -Query "SELECT * FROM Win32_Product WHERE Name like '%Partial Name%'").uninstall()
źródło
Jeśli wiesz, gdzie jest plik instalatora MSI, możesz użyć:
źródło
Jeśli program korzysta z Instalatora Windows, możesz użyć jednego z następujących poleceń:
Jednak prawdopodobnie nie masz ani kodu produktu, ani oryginalnego pliku MSI użytego do instalacji.
Poza tym nie ma ogólnego polecenia odinstalowania, ponieważ instalatory, które nie korzystają z Instalatora Windows, są „nieznane” przez system operacyjny. Mogą dostarczyć własny plik wykonywalny deinstalacji, ale to, czy plik wykonywalny zawiera sposób na uruchomienie go bez GUI, zależy od indywidualnego pakietu oprogramowania.
źródło
Skrypt VBScript pomoże Ci odinstalować wymagany program.
Aby użyć tego skryptu, potrzebujesz nazwy oprogramowania, która znajduje się w rejestrze.
Wystarczy wpisać nazwę aplikacji w skrypcie i uruchomić ją z uprawnieniami administratora; odinstaluje aplikację. Ale będzie to działać tylko w przypadku aplikacji opartej na oknie; w przypadku samodzielnej konfiguracji lub aplikacji, które nie zawierają wpisu w ciągu rejestru odinstalowującego, skrypt nie będzie działał.
W takim przypadku będziesz musiał znaleźć inny sposób na odinstalowanie aplikacji.
Kod:
źródło
Sprawdź to, to jest za pomocą partii znaleźć klucz rejestru UninstallString oprogramowania, a następnie odinstalować oprogramowanie po cichu, co jest znacznie bardziej niezawodne w porównaniu do wmic znalazłem. https://community.spiceworks.com/topic/2143980-deploy-or-upgrade-java-8-via-shutdown-script-remove-old-javas
źródło
Prawidłowa odpowiedź znajduje się powyżej, ale w przypadku instalacji systemu Windows X64 należy również sprawdzić:
źródło