1

Azure Automation Pull サーバーを使用して DSC 構成を VM に追加しようとしています。通常、環境変数を使用して現在のマシンの名前を取得できます$env:COMPUTERNAME。つまり、次のようにします。

xComputer JoinDomain
{ 
    Name  = $env:COMPUTERNAME
    DomainName = $ConfigurationData.NonNodeData.DomainDetails.DomainName             
    Credential    = $domainAdminCredential  
} 

ただし、Azure Automation を使用すると、現在のマシン名に関係なく、$env:COMPUTERNAME常にCLIENTが返されるようです。Azure Automation を使用しているときに、DSC 構成内の現在の VM の名前を動的に取得するための最善/最も推奨される方法は何ですか?

前もって感謝します。

よろしくお願いします、

トーマス

4

3 に答える 3

1

@NanaLakshamanの答えに便乗するために、この構成をパラメータ化しましょう。

わかりやすくするために、コンピューター名とドメイン参加のみを構成していると仮定します。

configuration DomainJoin
{
 param
(
    [string[]]$NodeName ='localhost',
    [string]$DomainName,  
    [string]$credential
) 

#Import the required DSC Resources
Import-DscResource -Module xComputer

Node $NodeName
{ #ConfigurationBlock 


    xComputer JoinDomain
        {
            Name       = $nodename
            DomainName = $DomainName             
            Credential = $Credential  

        }
    }
}

ここで、F5 キーを押すかスクリプトを実行して、メモリにコンパイルします (Azure Automation では、スクリプトを実行します)。次に、新しい Desired State Configuration を生成する関数のように構成を呼び出します。ここで、ローカル コンピュータ名を指定できます

DomainJoin -NodeName $env:ComputerName -DomainName SomeDomain -Credential (Get-Cred)

これにより新しいconfiguration.mofファイルが作成され、次を使用して適用できます。

Start-DscConfiguration -ComputerName localhost -Wait -Force -Verbose 
于 2016-03-29T13:28:32.667 に答える
0

もう 1 つのオプションは、構成データにコンピューター名を指定することです。

構成データを提供する方法の例は、こちらの Azure Automation にあります。またNodeName、リソースでを使用する方法の例もここにあります。

https://azure.microsoft.com/en-us/documentation/articles/automation-dsc-compile/

また、あなたが言及した特定の用途では、名前を指定する必要はありません。ここで問題を提出しました: https://github.com/PowerShell/xComputerManagement/issues/29

于 2016-04-30T18:44:09.403 に答える