プログラムインストーラーの配信を設定する必要があります。
このプログラムには、program_installer.exeと、インストーラーの作成時にインストーラーに含めることができないフォルダーがあります。
したがって、ユーザーがプログラムをインストールする必要がある場合、私は彼にメール経由でバッチファイルを送信します
@echo off
if DEFINED PROGRAMFILES(X86) (
SET TOOL_INSTALL_DIR="%PROGRAMFILES(X86)%\myfolder"
) else (
SET TOOL_INSTALL_DIR="%PROGRAMFILES%\myfolder"
)
MKDIR %TOOL_INSTALL_DIR%
copy /y \\rk0012352\Public\lkh5iwwh.m4s %TOOL_INSTALL_DIR%
START %PROGRAMFILES%\program_installer.exe
問題は、ユーザーがBATCHを実行してCOPYコマンドを実行すると、Windows 7では、管理者権限がないためにコマンドが失敗することです。
XPと7の両方で管理者としてそのコピーコマンドを実行するにはどうすればよいですか?
ユーザーがINSTALL.BATで電子メールを取得したときに、[管理者として実行]をクリックすることはできませんか?
残念ながら、その答えは、ほとんどの人がそれを行わず、機能しないと不平を言うだけです。さらに、Outlookなどの多くの電子メールクライアントは「開く」「保存」選択パネルを要求し、ほとんどのユーザーは直接開くをクリックします(権利なしのエラーが発生します)
「runas」コマンドでは、マシンの管理者名を指定する必要があり、すべてのコンピューターでadminユーザーがどのように呼び出されるかを知ることができません。
なにか提案を?
少し注意が必要ですが、実行できます。
まず、ユーザーが管理者であるかどうかを(バッチファイルから)知る必要があります。もしそうなら、あなたは単にインストールを続けることができます。そうでない場合は、別のcmd.exeインスタンスを実行して、管理者としてバッチファイルを実行できます(runas
コマンドを使用)。
ユーザーが管理者であるかどうかを検出するには、次の投稿を参照してください: http://www.tomshardware.co.uk/forum/169421-36-determine-batch-file-user-administrator (バッチ自体を昇格させるための完全なコードもあります)。
同じことではありません。
管理者グループに所属している場合は、独自のアクセス許可のスコープを上げることと、スコープ内で実行することには違いがあります。
runas /user:[email protected] program.exe
を使用するだけでは、右クリックして[管理者として実行]を選択するのと同じではないようです。
PowerShellには これを行う方法 があります:
PS> Start-Process powershell -Verb runAs