1

プログラムを起動する前に、(コマンド ライン パラメータに基づいて) システム環境変数を更新するスクリプトを作成する必要があります。

Windows 7 では、システム環境変数の更新は拒否されます。envの設定だけで権限昇格を行いたいです。変数。ただし、通常のユーザーとしてプログラムを実行してください。

どうやってするの?

注:次の解決策を試しました:

2 つのスクリプトを使用する:

  • コマンドラインからすべての情報を取得し、スレーブスクリプトを呼び出してシステム環境を変更する1つのマスター。var.、そして最終的にプログラムを起動します
  • システム環境を更新する 1 つのスレーブ スクリプト。変数。
  • マスター スクリプトは、特権の昇格を使用してスレーブ スクリプトを呼び出そうとしますが、機能しません。

特権昇格のために2つのソリューションを試しました:

  1. 「runas /User:Administrator ...」コマンドを使用しますが、管理者パスワードを要求します: 失敗
  2. 「ShellExecute ....、「runas」」コマンドを使用すると、スクリプトがアプリケーションではないことがわかります: 失敗
4

2 に答える 2

1

少なくとも Windows 7 で動作する方法を見つけました (まだいくつかある Windows XP ハットで動作するかどうかはわかりません)。

メインスクリプトから次のことを行いました。

currentDirectory = left(WScript.ScriptFullName,(Len(WScript.ScriptFullName))-(len(WScript.ScriptName)))

Set UAC = WScript.CreateObject("Shell.Application")
UAC.ShellExecute "wscript.exe", currentDirectory + "my-script.vbs /Param1:Value1 ...", "", "runas", 0

そして、my-script は sys var env update を実行しています。

注: スクリプトを実行しようとしていたため、ShellExecute の最初の経験は失敗しました。「wscript.exe」の代わりに、実行可能ファイル名に「my-script.vbs」を付けました。

于 2012-04-19T07:55:57.623 に答える
0

私見、UACを無効にします、それはただの苦痛です* しかし、できない場合(私のように8 <)、使用できます

psexec.exe -d -u userid -p password CMD /c program_with_path

ただし、あなた (または sript を実行するユーザー) は、プロンプトを確認する必要があります。

于 2012-04-16T11:08:58.360 に答える