2012-04-16 6 views
1

プログラムを起動する前にシステム環境変数(コマンドラインパラメータに基づいて)を更新するスクリプトを作成する必要があります。UACがアクティブなときにシステムEnvVarを設定する方法(Windowsスクリプトホスト)

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

どうすればよいですか?

注:システムENVを変更するには、スレーブスクリプトを呼び出すコマンドラインからすべての情報を取得

  • 1マスター:2つのスクリプトを使用して

    : 私は、次の解決方法を試してみました。最後にプログラムを起動します

  • システムを更新する1つのスレーブスクリプトenv。 var。
  • マスタースクリプトは、権限の昇格を使用してスレーブ・スクリプトを呼び出すようにしようとしますが、それは私がprivilage昇格のための2つのソリューションしようとしてきました

動作しません:

  1. 「runasコマンド/ユーザーを使用します:管理者...」コマンドが、それは管理者パスワードを尋ねる:使用
  2. 失敗 『』のShellExecute ......、 『runasコマンドを』コマンドが、それは私のスクリプトはアプリケーションではないことを私に伝えます:失敗
+0

スクリプトではなくcmd.exeまたはwscript.exeでrunasを使用してみてください。 –

+0

@ハリー私はrunasを試しましたが、次のような警告があります。マシンの管理者パスワードはわかりません。しかし、私たちはそれぞれ管理権限(ある程度)を持っているので、(UACのプロンプトを出した後で)Windowsの設定GUIからsys env varを変更することができます。しかし、自分のユーザーでrunasコマンドを使用することはできません。私は許可が拒否されます。私はパスワードを知らないので管理者として実行することはできません...私は本当に単純な権限昇格が必要です。ちょうど私が変更を確認するだけの管理タスクを実行したいときと同じです。とにかく、提案のおかげで:) – Huygens

+0

私はrunas動詞が "管理者として実行"と同じことをしたと思った。既に管理者であれば、承認を求めるプロンプトが表示されます。私は:( –

答えて

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 

そして、私のスクリプトは、SYSするvarのenv更新を行っています。

注:私はスクリプトを実行しようとしていたため、ShellExecuteで私の経験ができませんでした。 "wscript.exe"の代わりに、実行可能ファイル名に "my-script.vbs"を付けました。

+0

その後、スクリプトの最後にexplorer.exeを呼び出し、実行可能ファイルをパラメータとして与えて、更新されたsys env var値を取得しました。 – Huygens

0

私見では、あなたが(私のような8 <)、あなたは

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

を使用することができますすることはできません、それは* でちょうど苦痛だがあれば、UACを無効にします(またはsriptを実行するユーザー)しかし、プロンプトを確認する必要があります。

+0

望んでいたものもあります – Huygens

+0

私は、ユーザ/パスワードを必要としないセキュリティ上の欠陥であると思うので、このようなスクリプトをウイルスとして使用することができます。あなたは、システムのVARが必要です、あなたは環境VARSの異なる種類の、userenvironmentのVAR私たちは、のIBM Rational DOORSを使用している – peter

+0

を設定することが可能であるべきを持っている。2(またはそれ以上)を必要とするいくつかの同僚がありますDOORS構成(異なるDOORSクライアントのバージョンと悲しいことに、ライセンス設定はシステム環境変数に保存されています。私の目標は、いくつかのパラメータは適切なシステムenvを設定できます。 var。ライセンスサーバーのために要求されたDOORSクライアントバージョンを起動します。これは高価なクローズドソースソフトウェアを購入した場合の報酬です。( – Huygens

関連する問題