C:\Program Files (x86)
Windows 7ProのProgramFilesディレクトリ(例)以外の場所から実行できない特定のアプリケーションがあります。
別のドライブ(例)に何かをインストールしたい場合I:\OtherPrograms
、これらのプログラムは単に機能しません。他のディレクトリを2つのProgramFilesディレクトリのように動作させる方法はありますか?
参考:「管理者として実行」は機能しません。
C:\Program Files (x86)
Windows 7ProのProgramFilesディレクトリ(例)以外の場所から実行できない特定のアプリケーションがあります。
別のドライブ(例)に何かをインストールしたい場合I:\OtherPrograms
、これらのプログラムは単に機能しません。他のディレクトリを2つのProgramFilesディレクトリのように動作させる方法はありますか?
参考:「管理者として実行」は機能しません。
権限を制限するには
これは、セキュリティ動作というよりも、これらの問題を引き起こしている問題または不良インストールのように聞こえます。短いウィンドウでは、ユーザーレベルによって実行権限をどこに何を持っているかが決まります。管理者として実行すると、やりたいことをすべて実行するためのフルアクセスが得られます(管理者として実行されないという事実は、何かが間違っていることを意味する可能性が高くなります)。
以上のことから、ユーザーのアクセス許可を調整して、ユーザーが既知のディレクトリでプログラムを実行できないようにすることができます。したがって、ユーザーにバックグラウンドサービスをインストールさせたり、管理者としてプログラムを実行させたりした場合は、Windowsのアクセス許可を変更して、受け入れ可能なディレクトリ以外での実行をブロックできます。
コーディングの一部となる特定のディレクトリでのみ実行したいプログラムの作成者である場合。アプリケーションパスディレクトリを取得したい場合は、それを現在の作業ディレクトリなどと比較して、ユーザーが受け入れられたパスからプログラムを起動したかどうかを確認します。次に、プログラムをコーディングして、ユーザーに警告してシャットダウンすることができます。
パーミッションを介して実行できるウィンドウ(このプログラムがこのパスに存在する場合にのみ実行できます)に通知する限り、これは必ずしも将来の変更に影響するわけではありません。たとえば、ユーザーがC:\Appsで実行できないように設定できます。ただし、プログラムが権限を操作してそこから実行した後、ユーザーはC:\ Apps\Hahaを作成できます。実行すればするほど、またユーザーが自分のシステムで提供する機能が少なくなると、ユーザーが製品を使用する可能性が低くなるため、本当に正当な理由がない限り、それは本当にやりたいことではありません。
他の場所にインストールすると失敗するプログラム
これについてもう少し議論した後、元々の質問は、プログラムファイルディレクトリの外のどこかにインストールした場合に失敗するプログラムをどのように修正するかということだったようです。要するに、答えはあなたがそうしないということです、それは窓やあなたのせいではありません。「ProgramFiles」または「ProgramFiles(x86)」ディレクトリは、世界がそれらをそうであると見なすという点で「特別」なだけです。コンピュータに関する限り、それらはハードドライブ上の単なるパスです。Windowsに関する限り、Windowsはハードドライブ上の単なるパスです。
物事が実際に変化し始めるのは、Windowsが「環境変数」をプログラムに(コードレベルで)公開するときだけです。これらの環境変数は、レジストリに保存および編集されます。別の投稿で指摘されているこれらの1つを使用すると、「プログラムファイル」ディレクトリがどこにあるかをWindowsに伝えることができます。このパスを変更すると、インストールされているプログラムの多くで問題が発生し始める可能性があるため、通常、何らかの理由でお勧めしません。
「プログラムファイル」ディレクトリについて注意すべきもう1つの点は、プログラムがウィンドウに「プログラムファイル」パスを要求できることです。Windowsはレジストリをチェックし、現在の「プログラムファイル」パスが何であるかをプログラムに通知します。これは、プログラムの問題がプログラムファイルディレクトリ以外の場所にインストールされているという事実ではなく、プログラムの問題である可能性が高くなります。コーダーは、プログラムファイルディレクトリにインストールすると考えた可能性があるため、プログラムを実行しようとすると、プログラムファイルディレクトリでリソースが検索されますが、カスタムディレクトリにインストールしました。これを修正する唯一の方法は、カスタムインストールを実行し、パスを要求されたときに細心の注意を払うことです。それを修正するには、各プログラムのドキュメントを探す必要があります。
権限についてもう少し
また、UAC(ユーザーアクセス制御またはアクセス許可)についてもう少し説明します。これらは基本的に、オペレーティングシステムのユーザーアカウントに基づく一連のルールです。(この場合、WindowsおよびPCユーザー)。コンピューターを使用しているときは、これらのPCユーザーアカウントの1つにログインしています。Windowsは、ユーザーアカウントに設定されたルールに基づいて、ディレクトリとファイルへのアクセスを提供します。
ルールを分解すると、実際には非常に基本的なルールになります。ルールはディレクトリまたはファイルに適用でき、システム上のすべてのディレクトリとファイルにはルールが設定されています。ほとんどの場合、これらのルールはすべて舞台裏で設定および処理されるため、気付かない場合があります。これらのルールは、ファイルまたはディレクトリの所有者、ディレクトリまたはファイルの関連グループ、およびその他すべての3つの条件に基づいてアクセスを分離します。つまり、各ディレクトリまたはファイルの各「ルール」は3つの条件で構成されます。ルールのこれらの各条件は、ユーザーが読み取り、書き込み、実行、またはこれら3の任意の組み合わせを実行できるかどうかを示します。
そうは言っても、これを質問に適用するには、プログラムをインストールするときに、インストーラーを実行することから始めます。そのインストーラーは、管理者として実行しようとしたり、管理者に任せるように求めたりする場合があります。ここから、インストーラープログラムは、システムへのファイルの配置を開始します(どこに指示しても、ほとんどの場合、アクセス許可には影響しません)。すべてのファイルが配置されると、インストーラーは終了し、プログラムの使用を開始できます。この時点で、プログラムが機能し、バグがなく、インストーラープログラムが必要なものをすべてインストールしたと仮定します。今あなたの邪魔をしているかもしれない唯一のことは、あなたのユーザー権限があなたがちょうどインストールしたディレクトリでプログラムを実行することを許可しないということです。
これで、プログラムを(どこからでも)実行すると、Windowsに「このプログラムを起動する」と指示されます。Windowsはアクセス許可を確認します。そのパスにある1つまたは複数のファイルを実行できる場合は、プログラムが実行されます。そうでない場合、それはあなたができないことをあなたに伝え、あなたに理由を教えます。プログラムが起動し、起動したために実行したのとまったく同じ権限がすべて付与されます。管理者として実行すると、プログラムは確実に起動し、すべてに対する完全なアクセス許可が付与されます(ほとんどの場合悪い考えです)。それだけです。「プログラムファイルから起動した場合は管理者になります」または「プログラムファイル内にいる場合はシステムレジストリキーを編集できます」と言うことは何もありません。それはすべてユーザーの許可と「誰が」プログラムを起動するかに基づいています。
私の知る限り 。あなたが試すことができる方法があります。リスクがありますのでご注意ください。
「実行」ダイアログを開始します。「regedit」と入力して、regeditエディターを開きます。この値を見つけます。
"HKEY_LOCAL_MACHINE\Software\ Microsoft\Windows\CurrentVersion"
右側のウィンドウで、「ProgramFilesDir」を見つけてダブルクリックし、その値を現在の場所に変更します。次に、を入力します。regediteditorを閉じます。PCを再起動します。