顯示具有 eset protect 標籤的文章。 顯示所有文章
顯示具有 eset protect 標籤的文章。 顯示所有文章

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重新派送即可


20250329 補充

在某些狀況下 還是需要切換到系統管理員身分才有作用
必須再安裝 gsudo 
安裝後使用 gsudo 執行指令 才行

2024/05/06

發生好几次電腦大量封包的傳輸
netflow的值都在几萬甚至几十萬
以往的做法都是先把ip block掉
等user自己來反應
但醬沒辦法在事發的當時撈到相關資料
到底是那個程式造成的
最近找到
LiveTcpUdpWatch
這個工具
就可以在 eset protect 上直接派送到電腦上執行並傳回資料
馬上就可以知道是那支程式造成的 資料撈回來後再把ip block掉
相當方便

程式如下


curl -o %temp%\LiveTcpUdpWatch.exe http://10.0.0.1/LiveTcpUdpWatch.exe

%temp%\LiveTcpUdpWatch.exe /CaptureTime 300000 /scomma "%temp%\tcpudp.csv"

ping -n 310 localhost > NUL

curl -u id:passwd -T "%TEMP%\tcpudp.csv" ftp://10.0.0.2/




https://www.nirsoft.net 這個站裡的工具都很好用

2024/02/26

總結一下目前如何在client 使用winget 定期更新
在目前原有的使用者上建立排程
單位內的使用者95%以上都使用 abc 這個帳號 
所以把排程建在 abc 這個user上

加入以下的 reg 以達成以下二個作用

bypass MicrosoftStore Certificate 
關閉安裝軟体時的UAC 以避免一直跳出視窗要user按確定

Windows Registry Editor Version 5.00



[HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows\AppInstaller]
"EnableBypassCertificatePinningForMicrosoftStore"=dword:00000001


[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"ConsentPromptBehaviorAdmin"=dword:00000000



為了不要讓user看到排程執行時的DOS視窗 因此批次檔要以 vbs 進行呼叫

Set ws = CreateObject("Wscript.Shell")
ws.run "cmd /c C:\ProgramData\wingetgo.vbs",vbhide


接下來建立排程

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

因為每個user都會改密碼 所以沒辦法建立不登入時也能執行的排程
還有一個問題就是如果user沒有登入網路 執行也不會成功


整個由eset主按台派送的工作如下

curl -o %temp%\winget.reg http://10.0.0.1:3128/i/o/winget.reg
regedit /s %temp%\winget.reg
curl -o C:\ProgramData\wingetgo.bat http://10.0.0.1:3128/i/o/wingetgo.bat
curl -o C:\ProgramData\wingetgo.vbs http://10.0.0.1:3128/i/o/wingetgo.vbs
schtasks /create /tn "winget4update task" /tr "C:\ProgramData\wingetgo.vbs" /sc weekly /d MON /st 09:00 /ru abc /f

2024/02/21

之前本來想從eset的管理介面下指令在每台電腦上跑winget
但這段時間看好像都沒效果
但從管理介面看是執行成功的
請席克幫忙查一下
結果是因為主控台派下去的指令的執行身分是 system
但是用system這個身分去執行 winget 無法成功
昨天討論後
最後決定直接在每台client執行排程
試過一台沒問題
今天把辦公室的几器全部加入排程
明天中午再來看看結果