0

J'ai généralisé une image Windows Azure et je l'utilise dans un modèle ARM (Azure Resoure Manager) pour créer une nouvelle machine virtuelle. Au moment de la création de VM, je fais un travail d'amorçage en utilisant l'extension Custom Script qui exécute un script Powershell. Cela fonctionne bien, sauf pour certaines choses qui sont spécifiques à un utilisateur qui se connecte à la machine. Par exemple, je ne parviens pas à mapper un lecteur réseau ou à définir une polyligne d'exécution PowerShell pour la redésignalisation pour l'utilisateur qui se connectera à l'ordinateur via Custom Script Extension.Définition du script à exécuter lors de la connexion de l'utilisateur sur Azure VM via ARM

Existe-t-il un moyen d'accomplir des tâches spécifiques à l'utilisateur dans le modèle ARM ou de définir des scripts à exécuter lorsque l'utilisateur se connecte?

+0

Est-ce que vous voulez exécuter un script de connexion pour définir ces choses? Ou voulez-vous configurer ces éléments dans l'extension de script personnalisée? –

+0

Si je peux faire tout le travail dans Custom Script Extension ce sera génial car il sera en un seul endroit. J'exécute un script PowerShell pour l'extension de script personnalisée, car je comprends que mon script PS personnalisé s'exécute sous un compte SYSTEM. J'ai besoin de monter un lecteur réseau et un environnement de configuration pour un utilisateur différent qui se connectera à la machine virtuelle après l'exécution de l'extension. Y-a-t-il un moyen de faire ça? – TechnoFobic

+0

Vous pouvez le faire dans le CSE - et même si je ne suis certainement pas un expert ici, je suppose que si vous faites cela, vous devrez le configurer pour tous les utilisateurs qui se connectent à la VM, pas seulement un seul utilisateur . Est-ce que cela fonctionne pour le scénario? –

Répondre

0

Peut-être un peu en retard, mais je me sers équiv à this:

Cependant, nous ne pouvons pas remettre directement ce script à un script personnalisé encore Extension. L'extension de script personnalisée utilise le compte NTAUTHORITY \ SYSTEM pour exécuter des scripts, mais le compte ne dispose pas des privilèges nécessaires pour exécuter les commandes de configuration SQL. Pour contourner ce problème, nous allons créer un script d'amorçage distinct, qui emprunte l'identité d'un compte d'administrateur avant d'appeler le script.

Voici le code utilisé:

$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 

Je ne sais pas si Remoting est pertinent pour ce bien ...

Crédits à Haishi Bai

+0

J'essaie de résoudre ce problème. J'ai un script powershell qui crée une base de données dans une image de base du serveur SQL, puis ajouter un CLR et proc stocké. Il crée la base de données juste en utilisant powershell, mais il ne parvient pas à ajouter le CLR et sproc en utilisant le Invoke-Sqlcmd. Je suis curieux de savoir comment vous avez passé deux fichiers ps1 en tant qu'extensions personnalisées, mais en ayant un seul à faire l'amorçage. Ne seraient-ils pas tous les deux exécuter dans le cadre du démarrage? Je veux juste que le script bootstrap s'exécute, ce qui lance l'autre script, mais les deux doivent être copiés dans la machine virtuelle. – afenkner