2

別のユーザーとしてWindowsにログインしてから、バッチスクリプトを使用してユーザーを管理者ユーザーに切り替える必要があります。RUNASWindowsユーティリティは私のために働きます。誰か助けてくれませんか?

4

2 に答える 2

3

RunAs(使用していると思います)Windows 7では管理者アカウントがデフォルトで無効になっているため、機能しません。

昇格したコマンド プロンプトを (バッチ スクリプトからでも) 起動する最も簡単な方法は、昇格したショートカットを作成することです。

First, Right-Click on your desktop and Click "New -> Shortcut"
Next type CMD into the box labled "Type the location of the item:"
Click "Next -> Finish"

CMD.exeデスクトップに新しいショートカットが作成されました。次...

Right Click "CMD.exe -> Properties -> Advanced..."
Check "Run as administrator"
Click "OK -> OK"

これで、管理者権限でC:\Windows\System32\cmd.exe起動するショートカットができました。cmd.exeショートカットを好きな場所に移動できるようになりました。PATH 変数のどこかにあることを確認してください。呼び出すときにパスを指定する必要はありません。バッチ ファイル用の特別なディレクトリと、サード パーティの実行可能ファイル用の別のディレクトリがあります。バッチ ディレクトリに移動します。

現在、Windows によると、ショートカットの名前は cmd.exe ですが、「DOS」にドロップすると、実際にはという名前であることがわかりますcmd.exe.lnkcmd.Admin.lnkそれが何をするかを指定するためだけに、私の名前を に変更しました。

これで、いくつかの異なる方法で開始できます。

をクリックしてSTART Ball、次のように入力しますcmd.exe.lnkReturn(またはcmd.admin.lnk、選択した方)。
コマンド プロンプトを開き、次のように入力します。 行をバッチ ファイルに cmd.exe.lnkReturn
追加します。cmd.exe.lnk

次のようなパラメーターを渡すこともできます。

cmd.admin.lnk "/c echo. & echo %time% & echo. & pause.exe"
cmd.admin.lnk "/c cd /d d:\tmp & x.bat & echo. & echo %time% & echo. & pause.exe"
cmd.admin.lnk "/c title The Shiznit & echo. & echo %date% %time% & echo. & pause.exe"
cmd.admin.lnk "/c title The Shiznit & echo. & echo %date% %time% & echo. & pause.exe & exit 999"

最後の例では%errorlevel%、999 の an が返されます。ただし、他の変数は返されません。

.exe内部コマンドの後にどのように配置する必要があるかに注意してくださいpause。この方法で多くの内部コマンドの実行を強制できることがわかりました。でも.com動作します。

最後に、 とは異なりrunas、このショートカットを使用すると 2 つのことが行われます

最初に、管理者権限で実行する許可を求めるポップアップ ウィンドウが作成されます。これは、管理者アカウントの既定の無効化と同様に、悪意のあるプログラムやスクリプトの実行を防ぐためのセキュリティ対策です。

次に、コマンド プロンプトまたはバッチ ファイルから起動すると、別のコマンド インタープリター ウィンドウが開きます。で起動しない限りstart、呼び出し元のウィンドウは新しいウィンドウが閉じるまで待機し、中断したところからバッチ ファイルまたはコマンド インタープリターの実行を続行します。

于 2012-10-22T00:03:05.890 に答える
0

CPAU.exe は、この問題を解決するための優れた回避策でした

于 2013-08-20T09:35:34.953 に答える