Windows 10でセットアップを実行すると、理解できない奇妙な動作に気づきました。セットアップはディレクトリ構造を作成し、ある時点で、作成したサブディレクトリの1つの名前を変更します。何が起こったのかを以下に説明します。
Windowsエクスプローラーでsetup.exe
を右クリックし、[管理者として実行]を選択すると、サブディレクトリの名前を変更しようとしたときに権限の問題が原因で、セットアップが最終的に失敗しました。
cmd.exe
を右クリックし、管理者として実行し、コマンドラインからsetup.exe
を生成すると、セットアップは正常に完了しました。
ここで何が起こっていたのですか?管理者としてWindowsエクスプローラーからアプリケーションを生成することと、管理者としてcmd.exe
からアプリケーションを生成することの違いは何ですか?
ありがとうございました。
[〜#〜]編集[〜#〜]
セットアップによって作成されたルートディレクトリはc:\personal
です。最初のサブディレクトリのパスはc:\personal\platform\db
であり、名前が変更されたサブディレクトリはc:\personal\platform\database
である必要があります。
セットアップを実行しているユーザーアカウントはAdministratorsグループに属し、セットアッププロセスの所有者はどちらの場合もこのユーザーでした。
Windows管理者アカウントには、Windowsでのさまざまなアクセス許可があります。しかし、彼らはまだ彼らができることに制限があります。例として、Windows管理者アカウントには、信頼できるインストーラーが所有している限り、System32フォルダー内のファイルを変更するために必要なアクセス許可がありません。管理者にはファイルの所有権を取得する権限があり、ファイルを変更する権限が管理者に付与されますが、ファイルの所有権がないと変更できません。
一方、管理者コマンドプロンプトを起動すると、cmd.exeのそのインスタンス内から開始されたコマンドまたはサービスは、Windows管理者権限で実行されません。代わりに、システム権限で実行されます(管理コマンドプロンプトはデフォルトでSystem 32フォルダーで開始されることに注意してください)。システム権限は管理者権限と非常に似ていますが、主な違いは、システム権限がいくつかの制限をバイパスすることです。別のスレッドでは、次のように述べられています。
1つの実際的な違いは、コンピューターがドメインに参加している場合、SYSTEMとして実行されているプロセスは、コンピューターのドメインアカウントのコンテキストでドメインサーバーにアクセスできることです。管理者として実行されているプロセスは、パスワードが一致するか、代替の資格情報が明示的に提供されない限り、ドメインコンピューターにアクセスできません。
ただし、システムはログオンできるアカウントではなく、オペレーティングシステムがユーザーであるという一連の権限または抽象化されたアイデアであることに注意してください。
「Startin」パラメータについてだと思います。おそらくセットアップは相対パスを使用しており、セットアップファイルをダブルクリックして開始すると、「開始」パラメータがセットアップファイルのパスになります。ただし、そのセットアップファイルをcmdから実行する場合、「Startin」パラメーターはセットアップファイルのパスとは異なります。