6

昇格したコンソールでいくつかのバット ファイルを実行しています。このコンソールを昇格モードで実行することは、許可を求めずにネットワーク共有の管理などのタスクを実行できるようにするために必須です。ただし、スクリプトは、管理者特権での実行が望ましくないアプリケーションを起動する必要がある場合もあります。そのため、上昇したコウモリが非上昇モードでアプリケーションを開始するようにします。Windowsでこれを行う組み込みの方法はありますか? プロセスは、日付までの DOS コマンド START で開始されました。

ちなみにマシンはWindows 7 Ultimate Edition x64です。

この問題はすでに多くの質問でプログラム的に議論されていることを知っています (これはそれらの多くを集めています) が、私たちの要件は、cmd で実行されるバット スクリプトと、nircmd、7z などのタスクに役立つ可能性のあるスタンドアロンの実行可能ファイルです。

明確化:コンソールを昇格して起動するスケジュールされたタスクが既にあり、コンソールの昇格はこの回答の問題ではありません。

4

2 に答える 2

9

組み込みの Windows の方法:START RUNAS ...制限付きユーザーとしてプロセスを実行できます。次に例を示します。

runas /trustlevel:0x20000 cmd.exe

とにかく、そのように実行されたプロセスの実行権限と、UAC が有効な UI から開始された別のプロセス (通常のユーザー操作による explorer.exe、つまり、ファイル ブラウザーまたはスタート メニューからの実行) との間には、いくつかの内部的な違いがあります。

  • runas を介して開始されたプロセス (右) では、一部のアクセス許可が無効になっています。 実行権限の違いを示す Process Explorer のスクリーンショット
  • runas を介して開始されたプロセス (右) 管理者は、プロセスに対していくつかの権限を設定しています。 プロセスに対するユーザー権限の違いを示す Process Explorer のスクリーンショット

サードパーティ アプリケーションの方法: PSExec を使用して目標を達成できます。これは、Windows Sysinternals の PSTools で見つけることができるスタンドアロンの実行可能ファイルです。次に例を示します。

psexec -l -d cmd.exe

この問題を詳しく調べましたが、実行中のアクセス許可やセキュリティ フラグに違いは見られませんでした。

Microsoft Technet ブログから:

PsExec は、CreateRestrictedToken APIを使用して、トークンと呼ばれるセキュリティ コンテキストを作成します。これは、管理者特権とグループ メンバーシップを削除して、独自の簡素化されたバージョンです。Windows が標準ユーザーに割り当てるようなトークンを生成した後、Process Explorer は CreateProcessAsUser を呼び出して、新しいトークンでターゲット プロセスを起動します。

これらは、何時間にもわたる調査の結果得られた最良の結論です。詳細を提供できる人なら誰でも歓迎します。

于 2013-03-19T22:33:04.347 に答える
1

本当に私の専門分野ではありませんが、法案に適合するでしょうかSTART RUNAS ...AT

于 2013-03-18T09:17:06.473 に答える