2025/03/12

最近要移除client端的軟体
包括 anydesk teamviewer winrar java 等等
一開始的想法是從eset protect定期下指令
於是設定了以下指令排程

"%ProgramFiles(x86)%\anydesk\anydesk.exe" --silent --remove
"%ProgramFiles%\TeamViewer\uninstall.exe" /S
"%ProgramFiles(x86)%\TeamViewer\uninstall.exe" /S
"%programfiles%\WinRAR\uninstall.exe" /s
"%programfiles(x86)%\WinRAR\uninstall.exe" /s

但發現不一定會有 uninstall.exe 這個檔案 所以不一定會成功
接著查到可以使用 powershell來處理 指令如下

powershell -Command "Get-WmiObject -Query 'SELECT * FROM Win32_Product WHERE Name LIKE ''Java%'' AND vendor LIKE ''oracle%''' | ForEach-Object { $_.Uninstall() }"

試了一下 powershell指令無法直接從eset protect直接下

為了執行時不跳出訊息
只能依照之前的做法 寫成uninstall.vbs   再加入client排程

Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "powershell -Command ""Get-WmiObject -Query 'SELECT * FROM Win32_Product WHERE Name LIKE ''Java%'' AND vendor LIKE ''oracle%''' | ForEach-Object { $_.Uninstall() }""", 0, False


schtasks /create /tn "uninstall task" /tr "C:\ProgramData\uninstall.vbs" /sc weekly /d MON /st 09:00 /ru abc /f

之後如果需要再移除其他軟体 再更改 uninstall.vbs重新派送即可

沒有留言: