Eu criei um script de inicialização como este:
$FolderPath = "C:\Path\To\Your\Directory"
$UserAccount = "Domain\User" # Replace with the appropriate user or group
$Acl = Get-Acl $FolderPath
$AccessRule = New-Object
System.Security.AccessControl.FileSystemAccessRule($UserAccount, "FullControl",
"ContainerInherit, ObjectInherit", "None", "Allow") # Replace 'FullControl' with the desired permission level
$Acl.SetAccessRule($AccessRule)
Set-Acl $FolderPath $Acl
e configurá-lo para executar emComputer Configuration > Windows Settings > Scripts (Startup/Shutdown) > Startup > Powershell
Mas quando executo EC2Launch sysprep
a instância do EC2 perde as permissões de arquivo Domain\User
em C:\Path\To\Your\Directory
. Especificamente, estou tentando fazer com que o IIS hospede um site de um C:\users\admin\desktop\public
ou %SystemDrive%\inetpub\wwwroot
outro para testes que estou dando Everyone
Full Control
em ambos os diretórios. O IIS hospeda os sites antes de mim EC2Launch sysprep
, mas depois que as permissões desaparecem. Como mais um teste, crio uma AMI depois de executar EC2Launch sysprep
e uso essa AMI para o Grupo de Auto Scaling em um ambiente de pé de feijão elástico e também não funciona lá.
Estou definindo as permissões de diretório para um usuário corretamente? Em que conta ele está sendo executado quando executa meus scripts? Talvez essa conta precise ser executada como administrador?
Basicamente, porém, espero que alguém saiba o caminho certo para dar Domain\User
acesso a C:\Path\To\Your\Directory
uma AMI.
Em vez de definir as permissões no script de inicialização, você pode defini-las usando o
EC2Launch
arquivo de configuração, porque EC2Launch sysprep pode redefinir as configurações quando executado.Primeiro, crie um
powershell
(não se esqueça de substituir oYourDomain
eYourUser
)então vamos para
Ec2LaunchSettings.ps1
localizado emC:\ProgramData\Amazon\EC2-Windows\Launch\Script
e adicionamos isso no final (Path\To\Your\Script.ps1
é o caminho do script que criamos antes)então salvamos
Ec2LaunchSettings.ps1
, agora você pode executar novamenteEC2Launch
o sysprep, deve funcionar.