クライアント/サーバーチェックプログラムを作成していますが、管理者として実行する必要があります。 私はこれを私のネットワークとユーザーでサイレントに実行したいと思いますが、 "管理者として実行"プロンプトが表示されないようにしています 管理者として自動実行させるためのバッチファイル/管理者として実行するバッチスクリプト
答えて
NOPE - [ - >互換性 - > "このプログラムを管理者として実行する]"というソリューションは動作しません。
このオプションはさえUAC無効でWindows 7にグレー表示され
-
NOPE - 、 "runasコマンド/ ENV /ユーザー:ドメイン\管理者"
も十分ではありませんこれはユーザーに管理者パスワードを要求するためです。
-
YES - タスクスケジューラ
これは私のために働い使用してジョブを作成します> - UACを無効にします。 タスクスケジューラの下で仕事を作成し、管理者権限を持つユーザーとして実行しますが。 は、明示的にマーク:そう、このタスク
あなたが望む場合は、スクリプトは、レジストリを編集して、その後UACを有効にさせることができますを実行するには、noプロンプトは存在しません 無効にUACを「最高の特権で実行してください」。 私の場合、このスクリプトは、イメージ内でUACが無効になっているWindows仮想マシンの作成によって一度だけ実行されます。
スクリプトのための最良のアプローチを楽しみにしています。 、
ニカを
set ELEVATE_APP=Full command line without parameters for the app to run
set ELEVATE_PARMS=The actual parameters for the app
echo Set objShell = CreateObject("Shell.Application") >elevatedapp.vbs
echo Set objWshShell = WScript.CreateObject("WScript.Shell") >>elevatedapp.vbs
echo Set objWshProcessEnv = objWshShell.Environment("PROCESS") >>elevatedapp.vbs
echo objShell.ShellExecute "%ELEVATE_APP%", "%ELEVATE_PARMS%", "", "runas" >>elevatedapp.vbs
DEL elevatedapp.vbs
よろしく:私はこれまでの任意の簡単なスクリプトを発見していないとして
その構文を使用して可能:
RUNAS [/profile] [/env] [/netonly] /user:user Program
Key :
/profile Option to load the user's profile (registry)
/env Use current environment instead of user's.
/netonly Use the credentials specified only for remote connections.
/user Username in form [email protected] or DOMAIN\USER
([email protected] is not compatible with /netonly)
Program The command to execute
例:。
runas /env /user:domain\Administrator <program.exe/command you want to execute>
パスワードの入力を求めるプロンプトが表示されますが、パスワードは必要ありません。 – eddyq
@eddyqしかし、質問の本文が彼の望む通りに変わったとしても、これは質問のタイトルに答えます。 – leetNightshade
タイトルは問題ではありません。本文は問題です。タイトルはタイトルです。詳細が含まれているため、ボディが優先されます。 –
あなたはカップルのオプションがあり
バッチファイルとネイティブコマンドのみを使用して実行する必要がある場合は、How can I auto-elevate my batch file, so that it requests from UAC admin rights if required?をチェックしてください。
サードパーティのユーティリティがオプションの場合は、Elevateのようなツールを使用できます。これは、パラメータとして昇格したいプログラムで呼び出す実行可能ファイルです。
このように:elevate net share ...
スタートアップ項目として入れることができます...スタートアップ項目は、管理者として実行するように求めるプロンプトを表示しません。
スタックオーバーフローに関する回答に「Googleが回答を見つける」を含めるべきではありません。 –
申し訳ありませんが悪いです。編集する – sandrows
今より良い、ありがとう。 –
は、ショートカットを作成し、常に管理者として実行するショートカットを設定します。それへのショートカットを作成
エディタとnameit.batでバッチファイルを作成します。ハウツーオタクフォーラムMake a batch file to run cmd as administratorソリューション
。 Nameit.bat - ショートカット。 Nameit.bat - ショートカット - >プロパティ - >ショートカットタブ - >詳細を右クリックし、管理者として実行をクリックします。ショートカットから実行します。
バッチファイルまたはそれを指しているショートカットに対して、「管理者として実行」を設定することはできません。 – StormPooper
バッチファイルには設定できませんが**ショートカットを指すように設定することができます – icc97
は、ここに私の2セントです。
上記の回答があなたの好みでない場合は、autoITを使用して、自分の資格情報を持つ特定のユーザーとしてファイル(またはこれまでのファイル)を実行できます。
このユーザーのprivelagesを使用してプログラムを実行するスクリプトのサンプル。
installAdmin()
Func installAdmin()
; Change the username and password to the appropriate values for your system.
Local $sUserName = "xxxxx"
Local $sPassword = "xxx"
Local $sDirectory = "C:\ASD4VM\Download\"
Local $sFiletoRun = "Inst_with_Privileges.bat"
RunAsWait($sUserName, @ComputerName, $sPassword, 0, $sDirectory & $sFiletoRun)
EndFunc ;==>Example
AutoIT can be found here. - >これは、実行することができます.exeファイルにコンパイルされ.ua3形式を使用しています。
私はMattのスクリプトにこのわずかな変更を加えて、単一のスクリプトから実行できるようにしました(これをUAC呼び出しが必要なスクリプトの先頭に追加するだけです)。しかし、ブログで見つけまし:
:: ### START UAC SCRIPT ###
if "%2"=="firstrun" exit
cmd /c "%0" null firstrun
if "%1"=="skipuac" goto skipuacstart
:checkPrivileges
NET FILE 1>NUL 2>NUL
if '%errorlevel%' == '0' (goto gotPrivileges) else (goto getPrivileges)
:getPrivileges
if '%1'=='ELEV' (shift & goto gotPrivileges)
setlocal DisableDelayedExpansion
set "batchPath=%~0"
setlocal EnableDelayedExpansion
ECHO Set UAC = CreateObject^("Shell.Application"^) > "%temp%\OEgetPrivileges.vbs"
ECHO UAC.ShellExecute "!batchPath!", "ELEV", "", "runas", 1 >> "%temp%\OEgetPrivileges.vbs"
"%temp%\OEgetPrivileges.vbs"
exit /B
:gotPrivileges
setlocal & pushd .
cd /d %~dp0
cmd /c "%0" skipuac firstrun
cd /d %~dp0
:skipuacstart
if "%2"=="firstrun" exit
:: ### END UAC SCRIPT ###
:: ### START OF YOUR OWN BATCH SCRIPT BELOW THIS LINE ###
私の修正は、2つのファイルの引数を使用して、あなたが見ることができるよう、特にエレガントされていないが、仕事をしていません(とあなたが常に最初に予約することによりテールエンドでそれらを離れて非表示にすることができますダミーのプレースホルダを使用する引数はほとんどありません)。さらに、AFAIK Mattのスクリプトはファイルパス内のスペースをサポートしていません。この制限はこのスクリプトの変更にも当てはまります。
この問題は、VBSがこれらのパスを処理する方法に内在しているようですが、以下のリンクでは、ファイルを使用してこのような回避策を必要とせずに1つのスクリプトから実行するUACを呼び出すためのVBSベースのソリューション引数ともファイルパスにスペースをサポートしています。あなたには、いくつかの理由で、スペースの問題を回避され、気づくよう
http://pcloadletter.co.uk/2012/12/11/uac-elevation-for-batch-script/
このリンク上のスクリプトは若干異なるVBS呼び出しを行います。
@echo off
call :isAdmin
if %errorlevel% == 0 (
goto :run
) else (
echo Requesting administrative privileges...
goto :UACPrompt
)
exit /b
:isAdmin
fsutil dirty query %systemdrive% >nul
exit /b
:run
<YOUR BATCH SCRIPT HERE>
exit /b
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
echo UAC.ShellExecute "cmd.exe", "/c %~s0 %~1", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
del "%temp%\getadmin.vbs"
exit /B`
これは私のために完全に機能します。ありがとう。 – Emad
後は、回避策です:
- は、.batファイルのショートカット
- プロパティを開きショートカットのを作成します。ショートカットタブのアドバンスドをクリックします。管理者として、あなたのバッチスクリプトを実行しますショートカットを実行
- ティック「管理者として実行」
。
UACの部分 UACを無効にする C:¥Windows¥System32¥cmd.exe/k%windir% \ System32 \ reg.exe HKEY_LOCAL_MACHINE \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System/v EnableLUA/t REG_DWORD/d 0/f UACを有効にする C:\ Windows \ System32 \ cmd.exe/k% windir%\ System32 \ reg.exe HKLM \ SOFTWARE \ Microsoft \ Windows \ CurrentVersion \ Policies \ System/v EnableLUA/t REG_DWORD/d 1/f – zenin