web-dev-qa-db-ja.com

XP)の管理者権限を必要とするレガシーアプリ

管理者として実行する必要があるレガシーWindows95アプリがあります。これは、学校ドメインの学生によって使用されます。

私の前任者は、この目的のためにドメイン管理者アカウントを設定し、プログラムを開始するために「名前を付けて実行」バッチスクリプトを設定しましたが、それでも教師はパスワードを入力する必要があります。学生がローカル権限やドメイン管理者アカウントのパスワードを増やすことなく、アプリを簡単に起動できるようにしたいと思います。

これを行うための最良の方法は何ですか?

3
Brent D

ローカルコンピューターの管理者グループに属するグループのユーザーであり、ドメイン管理者のメンバーであるアカウントを提供しないことを意味します。アカウントがドメイン管理者グループのメンバーである必要があるという理由はまったくありません。ドメイン管理者のメンバーである教師にアカウントを配布した場合は、できるだけ早く変更することを強くお勧めします。ドメイン内に別のグループを作成し、そのグループをコンピューターのローカル管理者グループのメンバーにする必要があります。 GPOによって適用される起動スクリプトを使用して、作成したグループをローカル管理者グループに追加できるはずです。

とにかく、プログラムの問題の解決に戻ります。あなたがする必要があるかもしれないことは、管理アクセスを必要とするアプリケーションが何をしているかを理解し、次に学生がそれらの特権を持つようにファイルシステムとレジストリのパーミッションを変更することです。

sysinternals tools filemon、およびregmonは、これを理解するのに非常に役立ちます。

まだ行っていない場合は、その特定のプログラムに関する情報をGoogleで検索してみてください。おそらく、他の誰かがすでに問題を解決して修正しています。

2
Zoredache

私は通常、ソフトウェアが使用するHKLMキー(できれば正常なもの)を見つけることから始め、regedt32(通常のregeditは機能しないことに注意)を使用すると、グループがそのレジストリキーを完全に制御できるようになります。次に、インストールディレクトリを完全に制御できるようにします。 99%の確率で、必要なローカル管理者の問題が解決されます。通常、この時点でうまくいかない場合は、アプリをアップグレードするためのロビー活動を開始しますが、うまくいかないこともあります。あなたが本当に幸運で、それがグーグルを検索する一般的なプログラムであるならば、あなたが非管理者として実行するために許可を与えるのに必要な正確な場所をあなたに与えるでしょう。

3
Zypher

ActiveDirectoryを使用している場合

  1. C:\ program files\win 95appフォルダーに移動します。 [セキュリティ]タブ(プロパティ)で、「ドメインユーザー」に読み取りおよび書き込みアクセスを許可します。私は通常「フルコントロール」を避けます。

  2. Regeditを開き、「LOCAL MACHINE\SOFTWARE」に移動して、win95アプリを見つけます。 [権限]タブで、[ドメインユーザー]に読み取りと書き込みのアクセス権を付与します。ここでも、「フルコントロール」のことは避けようとしています。

  3. これは珍しいものです-次に、あなたがユーザーの1人であるかのように(ただし管理者としてログインしている)、アプリを1分間実行して、いくつかの画面を開きます。次に、アプリを閉じて、ウィンドウサーチを開きます。アプリの使用中にタイムスタンプで最近変更されたファイルを検索します。当時(win 95)のプログラマーがWindowsディレクトリに置いた.iniを見つけるかもしれません。私は彼らのプロパティに行き、「ドメインユーザー」に「フルコントロール」を与えます....ウィンドウズディレクトリにはありません...アプリに属する​​ファイルだけです。

それでうまくいくはずです。それは私のために数回働いた。

0
Saif Khan

「実行」の代わりにPSExec(Sysinternalsから)を使用するようにバッチスクリプトを変更した場合、教師にパスワードの入力を要求する代わりに、スクリプトにパスワードを埋め込むことができます。私はこの目的のためにエンコードされたvbscriptを使用します。

'**Start Encode**
Const SET_PRIVELEGE_CMD = "%comspec% /c psexec -i -u User -p Password "
Set objWShell = CreateObject ("WScript.Shell")
objWShell.run SET_PRIVELEGE_CMD & "c:\MyApplication.exe"

Vbscriptファイルをエンコードするには、「Start Encode」テキストをスクリプト内のコードの前にコメントとして配置する必要があります。また、 Microsoftからsce10en.exeをダウンロードしてインストールします 。これらが完了したら、コマンドプロンプトを開き、エンコードソフトウェアがインストールされているフォルダーに移動します。

Usage:   screnc [/?] [/s] [/f] [/xl] [/l ScriptLanguage] [/e DefaultExtension]
                <source> <destination>

Encode embedded script.

/? -    Help
/s -    Silent: display no messages
/f -    Force: allow file(s) overwrite (source == destination)
/xl -   Exclude Language: does not add the language directive in asp files
/l ScriptLanguage -
        Script Default Language: specify the default script language to be
        used when encoding
/e DefaultExtension -
        Default Extension: override actual file extension. Control the
        encoder to be loaded.
<source>
        The file to encode. It can have wildcard characters.
<destination>
        The destination file. When <source> contains wildcard characters,
        <destination> is the directory where to place the encoded
        files; files will keep the same name. When <source> and
        <destination> are the same /f must be used.

Example:
C:\Program Files\Windows Script Encoder>screnc C:\temp\MyScript.vbs C:\temp\MyScript.vbe

これはencodingではなく暗号化。自分が何をしているのかを知っている人は、スクリプトを簡単にデコードしてパスワードを取得できるため、一部の設定ではこのソリューションを使用できなくなります。

0
KevinH

サイトをチェックしてください nonadmin 優秀な人によって始められました Aaron Margosis 。 XPで限定ユーザーを展開する場合、これは優れたリソースです。管理者として実行したい一部のアプリケーションは、制限付きユーザーとして実行できるようにするために、すでに与えられた良い答えを超えて追加の調整が必要です。

0
Knox

前述のfilemonおよびregmonツールは、プロセスモニターに統合されました。 http://live.sysinternals.com/ でprocmon.exeを確認してください

10回のうち9回は、HKLM\Software\vendorまたはc:\ program files\vendorに書き込んでいますが、複雑なケースでは、プロセスモニターと、追跡している特定の実行可能ファイルにフィルターする方法を学習する必要があります。読み取りではなく書き込み操作に焦点を当てることから始めます(そうしないと、数十万のエントリがあります)。

もう1つのオプションは、Thinapp(VMWare)、App-V(Microsoft)、SVS(Altiris/Symantec)などの製品を使用したアプリケーションの仮想化です。私はAltirisを深く使用していませんが、無料の個人用バージョンがあり、それをテストして、使用する方法に慣れることができると思います。 Vistaには仮想レジストリとファイルシステムもありますが、私はこの目的でVistaを使用したことはありません。

0
jurylst

簡単な修正として、パワーユーザーローカルグループのメンバーとしてアプリケーションを実行するだけで十分なアクセス許可が得られる場合があります。パワーユーザーは、ほとんどすべての登録およびローカルファイルシステムに対する変更権限を持っています。したがって、アプリがパワーユーザーとして機能する場合は、ファイルシステムのアクセス許可のレジストリを編集することで、通常のユーザーとして機能させることができることを示しています。

0
pipTheGeek