0

バッチ スクリプトを使用して、約 500 台以上の Windows 7 コンピューターから Dropbox を削除しようとしています。Dropbox は"%APPDATA%\Dropbox"の下にユーザーごとにインストールされます。

サイレント アンインストールするには、"%APPDATA%\Dropbox\bin\DropboxUninstaller.exe /S"を実行する必要があります。このコマンドをテストしたところ、正常に動作しましたが、問題は、実行元のユーザー ディレクトリからしかアンインストールされないことです。DropboxUninstaller.exe ファイルを取得して C: のルートから実行しようとしましたが、失敗します。

このスクリプトは SCCM 経由でプッシュするため、SYSTEM アカウントで実行されます。すべてのユーザー ディレクトリ間をループする方法を見つけ、どのプロファイルに Dropbox\bin\DropboxUninstaller.exe パス/ファイルがあるかを見つけて、その場所で実行する必要があります。

別のユーザー (ローカル管理者) としてログインし、別のユーザー ディレクトリから Dropbox アンインストーラーを実行することをテストしました。実行したディレクトリのユーザーに対しては正常にアンインストールされるので、これが機能することはわかっています。

誰かが正しいコマンドで私を助けることができれば、それは素晴らしいことです! 私は答えを求めてグーグルで検索しましたが、そこにはないようです。

前もって感謝します、

4

2 に答える 2

0

ユーザープロファイルを検索し、unistaller が存在する場合はそれぞれに対して実行します (「標準」インストールを想定して、これを調整する必要があるかもしれません)

@echo off
    setlocal enableextensions

    for /F "tokens=2,*" %%a in ('reg query "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProfileList" /v ProfileImagePath /s ^| find "REG_EXPAND_SZ" ^| findstr /v /i "\\windows\\ \\system32\\"') do (
        call :doUninstall "%%b"
    )

    endlocal
    exit /b

:doUninstall
    set "_uninstaller=%~1\AppData\Roaming\Dropbox\bin\DropboxUninstaller.exe"
    if not exist "%_uninstaller%" goto :EOF
    start "" /wait "%_uninstaller%" /S
    goto :EOF
于 2013-11-06T12:49:03.013 に答える