web-dev-qa-db-ja.com

Windowsコンテナー内で管理者としてスクリプトを実行する方法

Windows Enterprise WDKDockerwindowsservercore に基づくイメージにインストールしようとしています。アプリケーションは解凍によってインストールされ、私はすでにそれを実行し、そのイメージをDockerにコミットしました。次に、環境変数を設定するスクリプトを実行する必要があります。 Enterprise WDKのインストール手順に従って、このスクリプトを管理者として実行する必要があります。私は自分のデスクトップマシンでこれを直接実行しましたが、ファイルで動作します。 Dockerコンテナ内では、デフォルトのログインユーザーは

PS C:\> whoami
user manager\containeradministrator

管理者アカウントを有効にしてみました。

PS C:\> Net User administrator /active:yes
The command completed successfully.
PS C:\> Net User administrator Pa$$w0rd
The command completed successfully.

管理者としてシェルを起動しようとしましたが、ユーザーは変更されません。

PS C:\> runas /user:administrator powershell
Enter the password for administrator:
Attempting to start powershell as user "C597C386289A\administrator" ...
PS C:\> whoami
user manager\containeradministrator

また、スクリプトを実行すると、スクリプトで指定されている環境値を設定できません。

提案?

15
Daniel

あなたの問題はまったく不十分な権利ではありません。 この記事 を参照してください。

UACはコマンドラインのみのインターフェイスであるため、Server Coreでは使用できません。IEがないか、ユーザーアプリケーションをサポートしていません。さらに、UACをコマンドプロンプトで使用するには、エクスプローラシェルを使用して、[スタート]をクリックし、[コマンドプロンプト]を右クリックして、[管理者として実行]を選択する必要があります。これは、Server Coreでは不可能です。

あなたはすでに管理者としてコマンドを実行していますが、それ以外のコマンドは

Net User administrator Pa$$w0rd

必然的に失敗します。

あなたの問題は別のものです。

こちら を参照してください。 Windows Server Coreは、WDKのインストールではサポートされていません。 Server Coreでの環境変数の設定については、 この答え を参照してください。

SETまたはSETXコマンドなどを使用している場合は、そのスクリプトと実際の動作を確認する必要があります。そこで、変数が正しく設定されていない理由を見つけることができます。それらは永続的に設定されているが、現在のウィンドウには設定されていない可能性があります。

7
Vojtěch Dohnal