0

私はWindows Azure画像を一般化し、これをARM(Azure Resoure Manager)テンプレートで使用して新しいVMを作成しています。 VM作成時には、Powershellスクリプトを実行するカスタムスクリプト拡張を使用して、いくつかのブートストラップ作業を行っています。これは、マシンにログオンするユーザーに固有のものを除いて正常に動作します。たとえば、カスタムドライブエクステンション経由でマシンにログインするユーザーのために、ネットワークドライブをマップしたり、powershell exection polictyをリモートに設定することはできません。ARMによるAzure VMのユーザーログイン時に実行するスクリプトの設定

ARMテンプレートでユーザー固有のタスクを実行する方法や、ユーザーがログインするときに実行するスクリプトを設定する方法はありますか?

+0

クレジットは、あなたが実行しますかそれらのものを設定するログインスクリプト?またはカスタムスクリプト拡張でこれらの設定を行いたいのですか? –

+0

私がカスタムスクリプト拡張ですべての作業を行うことができれば、それは1か所になるのですばらしいでしょう。 PSカスタムスクリプトがSYSTEMアカウントで動作することを理解しているので、カスタムスクリプトエクステンションのPowerShellスクリプトを実行しています。拡張機能の実行後にVMにログインする別のユーザーのネットワークドライブとセットアップ環境をマウントする必要があります。それを行う方法はありますか? – TechnoFobic

+0

あなたはCSEでそれを行うことができます。私は確かに専門家ではありませんが、そうした場合、単一のユーザーだけでなく、VMにログオンするすべてのユーザーに対して設定する必要があります。それはシナリオのために働きますか? –

答えて

0
たぶん少し遅れ

が、私はthisにかなっ似て使用しています:

しかし、私たちは直接、まだカスタムスクリプト拡張にこのスクリプトを手渡すことができません。カスタムスクリプト拡張はNTAUTHORITY \ SYSTEMアカウントを使用してスクリプトを実行しますが、アカウントにはSQL構成コマンドを実行するために必要な特権がありません。この問題を回避するために、スクリプトを呼び出す前に管理者アカウントを偽装する別個のブートストラップスクリプトを作成します。ここで

が使用するコードです:

$password = ConvertTo-SecureString "[your admin account user password]" -AsPlainText -Force 
$credential = New-Object System.Management.Automation.PSCredential("$env:COMPUTERNAME\[your admin account]", $password) 
$command = $file = $PSScriptRoot + "\CustomScriptSQLPS.ps1" 
Enable-PSRemoting –force 
Invoke-Command -FilePath $command -Credential $credential -ComputerName $env:COMPUTERNAME 
Disable-PSRemoting -Force 

リモーティングは、このために関連している場合、私は知らないけれども... Haishi Bai

+0

私はこの正確な問題を解決しようとしています。 SQL Serverのベースイメージにデータベースを作成し、CLRとストアドプロシージャを追加するPowerShellスクリプトがあります。 PowerShellを使用してDBを正常に作成しますが、Invoke-Sqlcmdを使用してCLRとsprocを追加することはできません。私はあなたがカスタムエクステンションとして2つのps1ファイルをどのように渡したのか不思議ですが、ブートストラッピングは1つだけです。彼らはどちらもスタートアップの一環として実行されませんか?私は、他のスクリプトを起動するブートストラップスクリプトを実行したいだけですが、どちらもVMにコピーする必要があります。 – afenkner

関連する問題