注意

この記事で説明するユーザー アカウントは、セキュリティ上の理由により、Remote Desktop Protocol (RDP) や Secure Shell (SSH) で使用されているユーザー アカウントとは異なります。The user accounts discussed in this article are different from users accounts used for Remote Desktop Protocol (RDP) or Secure Shell (SSH), for security reasons.

SSH を使用して Linux 仮想マシンの構成を実行しているノードに接続するには「リモート デスクトップを使用した Azure の Linux VM への接続に関するページをご覧ください。To connect to a node running the Linux virtual machine configuration via SSH, see Use Remote Desktop to a Linux VM in Azure. RDP を使用して Windows を実行しているノードに接続するには、Windows Server VM への接続に関するページをご覧ください。To connect to nodes running Windows via RDP, see Connect to a Windows Server VM.

RDP を使用してクラウド サービスの構成を実行しているノードに接続するには、「Azure Cloud Services のロールでのリモート デスクトップ接続の有効化」をご覧ください。To connect to a node running the cloud service configuration via RDP, see Enable Remote Desktop Connection for a Role in Azure Cloud Services.

Batch のユーザー アカウントでタスクを実行するRun tasks under user accounts in Batch

Azure Batch のタスクは、常にユーザー アカウントのもとで実行されます。A task in Azure Batch always runs under a user account. 既定では、管理者権限のない標準ユーザー アカウントでタスクが実行されます。By default, tasks run under standard user accounts, without administrator permissions. 通常は、既定のユーザー アカウントの設定で十分です。These default user account settings are typically sufficient. ただし、タスクを実行するために、特別にユーザー アカウントを構成したほうが良い場合もあります。For certain scenarios, however, it's useful to be able to configure the user account under which you want a task to run. この記事では、ユーザー アカウントの種類、および自分の用途に合わせてユーザー アカウントを構成する方法について説明します。This article discusses the types of user accounts and how you can configure them for your scenario.

ユーザー アカウントの種類Types of user accounts

Azure Batch には、タスクを実行するためのユーザー アカウントが 2 種類用意されています。Azure Batch provides two types of user accounts for running tasks:

  • 自動ユーザー アカウント。Auto-user accounts. 自動ユーザー アカウントは、Batch サービスによって自動的に作成される、組み込みのユーザー アカウントです。Auto-user accounts are built-in user accounts that are created automatically by the Batch service. 既定では、タスクは自動ユーザー アカウントで実行されます。By default, tasks run under an auto-user account. あるタスク向けに自動ユーザーの仕様を構成することで、どの自動ユーザー アカウントでタスクを実行するかを指定できます。You can configure the auto-user specification for a task to indicate under which auto-user account a task should run. タスクを実行する自動ユーザー アカウントの昇格のレベルとスコープを、自動ユーザーの仕様で指定できます。The auto-user specification allows you to specify the elevation level and scope of the auto-user account that will run the task.

  • 名前付きユーザー アカウント。A named user account. プールを作成するときに、プールに対して 1 つ以上の名前付きユーザー アカウントを指定できます。You can specify one or more named user accounts for a pool when you create the pool. 各ユーザー アカウントは、プールの各ノード上に作成されます。Each user account is created on each node of the pool. アカウント名の他に、ユーザー アカウントのパスワード、昇格レベルを指定し、Linux プールの場合は SSH 秘密キーも指定します。In addition to the account name, you specify the user account password, elevation level, and, for Linux pools, the SSH private key. タスクを追加する場合は、そのタスクを実行する名前付きユーザー アカウントを指定できます。When you add a task, you can specify the named user account under which that task should run.

重要

Batch サービス バージョン 2017-01-01.4.0 では互換性を損ねる変更が行われ、このバージョンを呼び出すにはコードを更新する必要があります。The Batch service version 2017-01-01.4.0 introduces a breaking change that requires that you update your code to call that version. Batch の古いバージョンからコードを移行する場合、runElevated プロパティは REST API または Batch クライアント ライブラリではサポートされなくなることに注意してください。If you are migrating code from an older version of Batch, note that the runElevated property is no longer supported in the REST API or Batch client libraries. 昇格レベルの指定には、タスクの新しい userIdentity プロパティを使用してください。Use the new userIdentity property of a task to specify elevation level. クライアント ライブラリのいずれかをご使用の場合は、「コードを最新の Batch クライアント ライブラリに更新する」のセクションから、Batch コードの更新に関する簡単なガイドラインをご覧ください。See the section titled Update your code to the latest Batch client library for quick guidelines for updating your Batch code if you are using one of the client libraries.

ファイルとディレクトリへのユーザー アカウント アクセスUser account access to files and directories

自動ユーザー アカウントと名前付きユーザー アカウントの両方に、タスクの作業ディレクトリ、共有ディレクトリ、およびマルチインスタンス タスク ディレクトリへの読み取り/書き込みアクセスがあります。Both an auto-user account and a named user account have read/write access to the task’s working directory, shared directory, and multi-instance tasks directory. 両方の種類のアカウントには、起動とジョブ準備のためのディレクトリに対する読み取りアクセスがあります。Both types of accounts have read access to the startup and job preparation directories.

開始タスクの実行に使用されたものと同じアカウントでタスクが実行される場合、このタスクには開始タスク ディレクトリへの読み取り/書き込みアクセスがあります。If a task runs under the same account that was used for running a start task, the task has read-write access to the start task directory. 同様に、ジョブの準備タスクの実行に使用されたものと同じアカウントでタスクが実行される場合、このタスクにはジョブの準備タスク ディレクトリへの読み取り/書き込みアクセスがあります。Similarly, if a task runs under the same account that was used for running a job preparation task, the task has read-write access to the job preparation task directory. タスクが開始タスクやジョブ準備タスクとは異なるアカウントで実行されている場合、このタスクには、それぞれのディレクトリに対してのみの読み取りアクセスがあります。If a task runs under a different account than the start task or job preparation task, then the task has only read access to the respective directory.

タスクからのファイルとディレクトリへのアクセスに関する詳細については、「Batch を使って大規模な並列コンピューティング ソリューションを開発する」をご覧ください。For more information on accessing files and directories from a task, see Develop large-scale parallel compute solutions with Batch.

タスクの特権アクセス権Elevated access for tasks

ユーザー アカウントの昇格レベルは、タスクが特権アクセスで実行されるかどうかを示します。The user account's elevation level indicates whether a task runs with elevated access. 自動ユーザー アカウントおよび名前付きのユーザー アカウントの両方とも、特権アクセスでの実行が可能です。Both an auto-user account and a named user account can run with elevated access. 昇格レベルには次の 2 つのオプションがあります。The two options for elevation level are:

  • NonAdmin: タスクは特権アクセスのない標準ユーザーとして実行されます。NonAdmin: The task runs as a standard user without elevated access. Batch ユーザー アカウントの既定の昇格レベルは常に NonAdmin です。The default elevation level for a Batch user account is always NonAdmin.
  • Admin: タスクは特権アクセスを持つユーザーとして実行され、完全な管理者権限が付与されます。Admin: The task runs as a user with elevated access and operates with full Administrator permissions.

自動ユーザー アカウントAuto-user accounts

既定では、タスクは自動ユーザー アカウントのもとで、Batch で実行されます。このユーザーは特権アクセスのない標準ユーザーで、タスク スコープがあります。By default, tasks run in Batch under an auto-user account, as a standard user without elevated access, and with task scope. 自動ユーザーの仕様がタスク スコープで構成されている場合、Batch サービスはそのタスク専用の自動ユーザー アカウントを作成します。When the auto-user specification is configured for task scope, the Batch service creates an auto-user account for that task only.

タスク スコープのほかに、プール スコープというものがあります。The alternative to task scope is pool scope. タスクの自動ユーザーの仕様がプール スコープで構成されている場合は、プール内のどのタスクでも利用可能な自動ユーザー アカウントでタスクが実行されます。When the auto-user specification for a task is configured for pool scope, the task runs under an auto-user account that is available to any task in the pool. プール スコープの詳細については、プール スコープのある自動ユーザーとしてのタスクの実行に関するセクションを参照してください。For more information about pool scope, see the section titled Run a task as the auto-user with pool scope.

既定のスコープは、Windows ノードと Linux ノードとで異なります。The default scope is different on Windows and Linux nodes:

  • Windows ノードでは、タスクは既定でタスク スコープのもとで実行されます。On Windows nodes, tasks run under task scope by default.
  • Linux ノードは常にプール スコープのもとで実行されます。Linux nodes always run under pool scope.

自動ユーザーの仕様は 4 通りの構成が可能で、それぞれ一意の自動ユーザー アカウントに対応します。There are four possible configurations for the auto-user specification, each of which corresponds to a unique auto-user account:

  • タスク スコープのある管理者以外のアクセス (既定の自動ユーザーの仕様)Non-admin access with task scope (the default auto-user specification)
  • タスク スコープのある管理者 (特権) アクセスAdmin (elevated) access with task scope
  • プール スコープのある管理者以外のアクセスNon-admin access with pool scope
  • プール スコープのある管理者アクセスAdmin access with pool scope

重要

タスク スコープで実行されるタスクは、ノード上の他のタスクには事実上アクセスできません。Tasks running under task scope do not have de facto access to other tasks on a node. ただし、アカウントへのアクセスを持つ悪意のあるユーザーは、管理者特権で実行されるタスクを送信することによってこの制限を回避し、その他のタスク ディレクトリにアクセスすることが可能です。However, a malicious user with access to the account could work around this restriction by submitting a task that runs with administrator privileges and accesses other task directories. 悪意のあるユーザーは、RDP または SSH を使用してノードに接続することもできます。A malicious user could also use RDP or SSH to connect to a node. Batch アカウント キーへのアクセスを保護してこのようなシナリオを阻止する必要があります。It's important to protect access to your Batch account keys to prevent such a scenario. 自分のアカウントが侵害された疑いがある場合は、キーを再生成してください。If you suspect your account may have been compromised, be sure to regenerate your keys.

特権アクセスを持つ自動ユーザーとしてタスクを実行するRun a task as an auto-user with elevated access

特権アクセスでタスクを実行する必要がある場合、自動ユーザーの仕様を管理者特権用に構成できます。You can configure the auto-user specification for administrator privileges when you need to run a task with elevated access. たとえば、開始タスクには、ノードでソフトウェアをインストールするために特権アクセスが必要な場合があります。For example, a start task may need elevated access to install software on the node.

注意

一般的に、特権アクセスは必要な場合にのみ使用することをお勧めします。In general, it's best to use elevated access only when necessary. ベスト プラクティスとして、目的の成果を得るために最低限必要な特権を付与することをお勧めしています。Best practices recommend granting the minimum privilege necessary to achieve the desired outcome. たとえば、開始タスクですべてのユーザーではなく現在のユーザー向けにソフトウェアをインストールすると、タスクへの特権アクセスの付与を回避することができます。For example, if a start task installs software for the current user, instead of for all users, you may be able to avoid granting elevated access to tasks. 開始タスクを含む、同じアカウントで実行する必要があるすべてのタスクに対して、プール スコープの自動ユーザーの仕様と管理者以外のアクセス権を構成できます。You can configure the auto-user specification for pool scope and non-admin access for all tasks that need to run under the same account, including the start task.

次のコード スニペットでは、自動ユーザーの仕様を構成する方法を示します。The following code snippets show how to configure the auto-user specification. この例では、昇格レベルを Admin に、スコープを Task に設定します。The examples set the elevation level to Admin and the scope to Task. タスク スコープは既定の設定ですが、例を示すためにここに含めています。Task scope is the default setting, but is included here for the sake of example.

Batch .NETBatch .NET

task.UserIdentity = new UserIdentity(new AutoUserSpecification(elevationLevel: ElevationLevel.Admin, scope: AutoUserScope.Task));

Batch JavaBatch Java

taskToAdd.withId(taskId)
        .withUserIdentity(new UserIdentity()
            .withAutoUser(new AutoUserSpecification()
                .withElevationLevel(ElevationLevel.ADMIN))
                .withScope(AutoUserScope.TASK));
        .withCommandLine("cmd /c echo hello");                        

Batch PythonBatch Python

user = batchmodels.UserIdentity(
    auto_user=batchmodels.AutoUserSpecification(
        elevation_level=batchmodels.ElevationLevel.admin,
        scope=batchmodels.AutoUserScope.task))
task = batchmodels.TaskAddParameter(
    id='task_1',
    command_line='cmd /c "echo hello world"',
    user_identity=user)
batch_client.task.add(job_id=jobid, task=task)

プール スコープのある自動ユーザーとしてタスクを実行するRun a task as an auto-user with pool scope

ノードをプロビジョニングするときは、プール内の各ノードで、プール全体の自動ユーザー アカウントが合計で 2 つ (特権アクセスを持つアカウントと特権アクセスのないアカウント) 作成されます。When a node is provisioned, two pool-wide auto-user accounts are created on each node in the pool, one with elevated access, and one without elevated access. 自動ユーザーのスコープを特定のタスクのプール スコープに設定すると、このタスクがこれら 2 つのプール全体の自動ユーザー アカウントのいずれかで実行されます。Setting the auto-user's scope to pool scope for a given task runs the task under one of these two pool-wide auto-user accounts.

自動ユーザーのプール スコープを指定すると、管理者アクセス権で実行されるすべてのタスクが、同じプール全体の自動ユーザー アカウントで実行されます。When you specify pool scope for the auto-user, all tasks that run with administrator access run under the same pool-wide auto-user account. 同様に、管理者アクセスなしで実行されるタスクも、単一のプール全体の自動ユーザー アカウントで実行されます。Similarly, tasks that run without administrator permissions also run under a single pool-wide auto-user account.

注意

これら 2 つのプール全体の自動ユーザー アカウントは、個別のアカウントです。The two pool-wide auto-user accounts are separate accounts. プール全体の管理者アカウントで実行されるタスクは、標準アカウントで実行されるタスクとデータを共有することができず、その逆も同様です。Tasks running under the pool-wide administrative account cannot share data with tasks running under the standard account, and vice versa.

同じ自動ユーザー アカウントで実行することの利点は、同じノードで実行されているタスク同士がデータを共有できることです。The advantage to running under the same auto-user account is that tasks are able to share data with other tasks running on the same node.

タスク間のシークレットの共有が有用なシナリオとして、2 つのプール全体の自動ユーザー アカウントのいずれかでタスクを実行している場合があります。Sharing secrets between tasks is one scenario where running tasks under one of the two pool-wide auto-user accounts is useful. たとえば、開始タスクは、その他のタスクが使用できるノードにシークレットをプロビジョニングする必要があるとします。For example, suppose a start task needs to provision a secret onto the node that other tasks can use. Windows データ保護 API (DPAPI) を使用できますが、管理者特権が必要です。You could use the Windows Data Protection API (DPAPI), but it requires administrator privileges. 代わりに、ユーザー レベルでシークレットを保護することができます。Instead, you can protect the secret at the user level. 同じユーザー アカウントで実行されるタスクは、特権アクセスなしでシークレットにアクセスできます。Tasks running under the same user account can access the secret without elevated access.

もう 1 つのシナリオは、プール スコープを使用して自動ユーザー アカウントでタスクを実行する場合の、Message Passing Interface (MPI) ファイル共有です。Another scenario where you may want to run tasks under an auto-user account with pool scope is a Message Passing Interface (MPI) file share. MPI ファイル共有は、MPI タスク内のノードが同じファイルのデータを操作する必要がある場合に便利です。An MPI file share is useful when the nodes in the MPI task need to work on the same file data. ヘッド ノードでは、子ノードが同じ自動ユーザー アカウントで実行されている場合にアクセスできるファイル共有が作成されます。The head node creates a file share that the child nodes can access if they are running under the same auto-user account.

次のコード スニペットでは、Batch .NET でのタスクに対して自動ユーザーのスコープがプール スコープに設定されます。The following code snippet sets the auto-user's scope to pool scope for a task in Batch .NET. タスクが標準のプール全体自動ユーザー アカウントで実行されるように、昇格レベルは省略されます。The elevation level is omitted, so the task runs under the standard pool-wide auto-user account.

task.UserIdentity = new UserIdentity(new AutoUserSpecification(scope: AutoUserScope.Pool));

名前付きユーザー アカウントNamed user accounts

プールを作成するときに、名前付きユーザー アカウントを定義できます。You can define named user accounts when you create a pool. 名前付きユーザー アカウントには、入力した名前とパスワードが設定されます。A named user account has a name and password that you provide. 名前付きユーザー アカウントの昇格のレベルを指定できます。You can specify the elevation level for a named user account. Linux ノードの場合は、SSH 秘密キーを指定することもできます。For Linux nodes, you can also provide an SSH private key.

名前付きユーザー アカウントはプール内のすべてのノードに存在し、それらのノードで実行されているすべてのタスクで使用できます。A named user account exists on all nodes in the pool and is available to all tasks running on those nodes. 1 つのプールに複数の名前付きユーザーを定義できます。You may define any number of named users for a pool. タスクまたはタスクのコレクションを追加するときに、プールで定義されたどの名前付きユーザー アカウントでタスクを実行するかを指定できます。When you add a task or task collection, you can specify that the task runs under one of the named user accounts defined on the pool.

名前付きユーザー アカウントは、同じユーザー アカウントのジョブですべてのタスクを実行しながら、同時に他のジョブで実行中のタスクからそれらを分離する場合に役立ちます。A named user account is useful when you want to run all tasks in a job under the same user account, but isolate them from tasks running in other jobs at the same time. たとえば、ジョブごとに名前付きユーザーを作成して、その名前付きユーザー アカウントの下で各ジョブのタスクを実行します。For example, you can create a named user for each job, and run each job's tasks under that named user account. 各ジョブでは、ジョブのタスク同士でシークレットを共有できますが、他のジョブで実行中のタスクとは共有できません。Each job can then share a secret with its own tasks, but not with tasks running in other jobs.

名前付きのユーザー アカウントは、ファイル共有などの外部のリソースにアクセス許可を設定するタスクを実行するのに使用することもできます。You can also use a named user account to run a task that sets permissions on external resources such as file shares. 名前付きユーザー アカウントを使用してユーザー ID を制御し、そのユーザー ID を使用してアクセス許可を設定できます。With a named user account, you control the user identity and can use that user identity to set permissions.

名前付きユーザー アカウントでは、Linux ノード間でのパスワードのない SSH が有効になります。Named user accounts enable password-less SSH between Linux nodes. マルチ インスタンスのタスクを実行する必要がある Linux ノードでは、名前付きユーザー アカウントを使用できます。You can use a named user account with Linux nodes that need to run multi-instance tasks. プール内の各ノードでは、プール全体で定義されているユーザー アカウントでタスクを実行できます。Each node in the pool can run tasks under a user account defined on the whole pool. マルチインスタンス タスクの詳細については、MPI アプリケーションを実行するためのマルチインスタンス タスクの使用に関するページをご覧ください。For more information about multi-instance tasks, see Use multi-instance tasks to run MPI applications.

名前付きユーザー アカウントを作成するCreate named user accounts

Batch で名前付きユーザー アカウントを作成するには、ユーザー アカウントのコレクションをプールに追加します。To create named user accounts in Batch, add a collection of user accounts to the pool. 次のコード スニペットでは、.NET、Java、および Python で名前付きユーザー アカウントを作成する方法を示します。The following code snippets show how to create named user accounts in .NET, Java, and Python. これらのコード スニペットでは、プールで管理者と非管理者の両方の名前付きアカウントを作成する方法を説明します。These code snippets show how to create both admin and non-admin named accounts on a pool. この例では、クラウド サービスの構成を使用してプールを作成し、Windows または Linux のプールを作成するときには、仮想マシンの構成で同じアプローチを使用します。The examples create pools using the cloud service configuration, but you use the same approach when creating a Windows or Linux pool using the virtual machine configuration.

Batch .NET の例 (Windows)Batch .NET example (Windows)

CloudPool pool = null;
Console.WriteLine("Creating pool [{0}]...", poolId);

// Create a pool using the cloud service configuration.
pool = batchClient.PoolOperations.CreatePool(
    poolId: poolId,
    targetDedicatedComputeNodes: 3,
    virtualMachineSize: "standard_d1_v2",
    cloudServiceConfiguration: new CloudServiceConfiguration(osFamily: "5"));   

// Add named user accounts.
pool.UserAccounts = new List<UserAccount>
{
    new UserAccount("adminUser", "xyz123", ElevationLevel.Admin),
    new UserAccount("nonAdminUser", "123xyz", ElevationLevel.NonAdmin),
};

// Commit the pool.
await pool.CommitAsync();

Batch .NET の例 (Linux)Batch .NET example (Linux)

CloudPool pool = null;

// Obtain a collection of all available node agent SKUs.
List<NodeAgentSku> nodeAgentSkus =
    batchClient.PoolOperations.ListNodeAgentSkus().ToList();

// Define a delegate specifying properties of the VM image to use.
Func<ImageReference, bool> isUbuntu1404 = imageRef =>
    imageRef.Publisher == "Canonical" &&
    imageRef.Offer == "UbuntuServer" &&
    imageRef.Sku.Contains("14.04");

// Obtain the first node agent SKU in the collection that matches
// Ubuntu Server 14.04. 
NodeAgentSku ubuntuAgentSku = nodeAgentSkus.First(sku =>
    sku.VerifiedImageReferences.Any(isUbuntu1404));

// Select an ImageReference from those available for node agent.
ImageReference imageReference =
    ubuntuAgentSku.VerifiedImageReferences.First(isUbuntu1404);

// Create the virtual machine configuration to use to create the pool.
VirtualMachineConfiguration virtualMachineConfiguration =
    new VirtualMachineConfiguration(imageReference, ubuntuAgentSku.Id);

Console.WriteLine("Creating pool [{0}]...", poolId);

// Create the unbound pool.
pool = batchClient.PoolOperations.CreatePool(
    poolId: poolId,
    targetDedicatedComputeNodes: 3,                                             
    virtualMachineSize: "Standard_A1",                                      
    virtualMachineConfiguration: virtualMachineConfiguration);                  

// Add named user accounts.
pool.UserAccounts = new List<UserAccount>
{
    new UserAccount(
        name: "adminUser",
        password: "xyz123",
        elevationLevel: ElevationLevel.Admin,
        linuxUserConfiguration: new LinuxUserConfiguration(
            uid: 12345,
            gid: 98765,
            sshPrivateKey: new Guid().ToString()
            )),
    new UserAccount(
        name: "nonAdminUser",
        password: "123xyz",
        elevationLevel: ElevationLevel.NonAdmin,
        linuxUserConfiguration: new LinuxUserConfiguration(
            uid: 45678,
            gid: 98765,
            sshPrivateKey: new Guid().ToString()
            )),
};

// Commit the pool.
await pool.CommitAsync();

Batch Java の例Batch Java example

List<UserAccount> userList = new ArrayList<>();
userList.add(new UserAccount().withName(adminUserAccountName).withPassword(adminPassword).withElevationLevel(ElevationLevel.ADMIN));
userList.add(new UserAccount().withName(nonAdminUserAccountName).withPassword(nonAdminPassword).withElevationLevel(ElevationLevel.NONADMIN));
PoolAddParameter addParameter = new PoolAddParameter()
        .withId(poolId)
        .withTargetDedicatedNodes(POOL_VM_COUNT)
        .withVmSize(POOL_VM_SIZE)
        .withCloudServiceConfiguration(configuration)
        .withUserAccounts(userList);
batchClient.poolOperations().createPool(addParameter);

Batch Python の例Batch Python example

users = [
    batchmodels.UserAccount(
        name='pool-admin',
        password='******',
        elevation_level=batchmodels.ElevationLevel.admin)
    batchmodels.UserAccount(
        name='pool-nonadmin',
        password='******',
        elevation_level=batchmodels.ElevationLevel.nonadmin)
]
pool = batchmodels.PoolAddParameter(
    id=pool_id,
    user_accounts=users,
    virtual_machine_configuration=batchmodels.VirtualMachineConfiguration(
        image_reference=image_ref_to_use,
        node_agent_sku_id=sku_to_use),
    vm_size=vm_size,
    target_dedicated=vm_count)
batch_client.pool.add(pool)

特権アクセスによって、名前付きユーザー アカウントでタスクを実行するRun a task under a named user account with elevated access

昇格されたユーザーとしてタスクを実行するには、Admin に設定された ElevationLevel プロパティで作成された名前付きユーザー アカウントに、タスクのUserIdentity プロパティを設定します。To run a task as an elevated user, set the task's UserIdentity property to a named user account that was created with its ElevationLevel property set to Admin.

このコード スニペットでは、タスクを名前付きユーザー アカウントで実行する必要があることを指定します。This code snippet specifies that the task should run under a named user account. この名前付きユーザー アカウントは、プールの作成時にプールで定義されました。This named user account was defined on the pool when the pool was created. このケースでは、名前付きユーザー アカウントは管理者アクセス許可で作成されています。In this case, the named user account was created with admin permissions:

CloudTask task = new CloudTask("1", "cmd.exe /c echo 1");
task.UserIdentity = new UserIdentity(AdminUserAccountName);

コードを最新の Batch クライアント ライブラリに更新するUpdate your code to the latest Batch client library

Batch サービス バージョン 2017-01-01.4.0 では、以前のバージョンで利用可能な runElevated プロパティが userIdentity プロパティに置き換えられる、互換性を損ねる変更が行われています。The Batch service version 2017-01-01.4.0 introduces a breaking change, replacing the runElevated property available in earlier versions with the userIdentity property. 次の表は、クライアント ライブラリの以前のバージョンからコードを更新するのに使用できる、単純なマッピングを提供します。The following tables provide a simple mapping that you can use to update your code from earlier versions of the client libraries.

Batch .NETBatch .NET

コードが次の場合If your code uses... 次のように更新Update it to....
CloudTask.RunElevated = true; CloudTask.UserIdentity = new UserIdentity(new AutoUserSpecification(elevationLevel: ElevationLevel.Admin));
CloudTask.RunElevated = false; CloudTask.UserIdentity = new UserIdentity(new AutoUserSpecification(elevationLevel: ElevationLevel.NonAdmin));
CloudTask.RunElevated の指定なしCloudTask.RunElevated not specified 更新の必要なしNo update required

Batch JavaBatch Java

コードが次の場合If your code uses... 次のように更新Update it to....
CloudTask.withRunElevated(true); CloudTask.withUserIdentity(new UserIdentity().withAutoUser(new AutoUserSpecification().withElevationLevel(ElevationLevel.ADMIN));
CloudTask.withRunElevated(false); CloudTask.withUserIdentity(new UserIdentity().withAutoUser(new AutoUserSpecification().withElevationLevel(ElevationLevel.NONADMIN));
CloudTask.withRunElevated の指定なしCloudTask.withRunElevated not specified 更新の必要なしNo update required

Batch PythonBatch Python

コードが次の場合If your code uses... 次のように更新Update it to....
run_elevated=True user_identity=user、ここでuser_identity=user, where
user = batchmodels.UserIdentity(
     auto_user=batchmodels.AutoUserSpecification(
          elevation_level=batchmodels.ElevationLevel.admin))
run_elevated=False user_identity=user、ここでuser_identity=user, where
user = batchmodels.UserIdentity(
     auto_user=batchmodels.AutoUserSpecification(
          elevation_level=batchmodels.ElevationLevel.nonadmin))
run_elevated の指定なしrun_elevated not specified 更新の必要なしNo update required

次の手順Next steps