「C:\ ProgramFiles」ディレクトリにフォルダを作成する別のバッチファイル(make_dir.bat)を呼び出すバッチファイル(setup.bat)を実行する必要があります。これは内部インストーラー用です。すべてのユーザーは自分のユーザー名でログインしますが、ローカル管理者権限があります。私は2つのアプローチを試しましたが、どちらも機能しません。
アプローチ1:
SET PRGFILES=%programfiles%\mySoftware
SET admin=N
SET domain=%USERDOMAIN%\
IF /i "%domain%" EQU "%computername%\" set domain=
SET user=%domain%%username%
FOR /f "Tokens=*" %%a IN ('net localgroup administrators^|find /i "%user%"') DO SET admin=Y
IF "%admin%"=="Y" (
MD "%PRGFILES%"
)
これは言うAccess is denied
アプローチ2:
runas /user:%Username% shell\make_dir.bat
ここで、make_dir.batは
md "%programfiles%\mySoftware"
これは現在のユーザー名とパスワードを要求しますが、その後どういうわけか失敗します。すべてのユーザーがローカル管理者権限を持っており、自分のprogramfiles
フォルダーに手動でフォルダーを作成できることを確認しました。
助けてくれてありがとう。