我创建了一个这样的启动脚本:
$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
并将其设置为运行Computer Configuration > Windows Settings > Scripts (Startup/Shutdown) > Startup > Powershell
但是当我运行EC2Launch sysprep
EC2 实例时,它失去了对Domain\User
in 的文件权限C:\Path\To\Your\Directory
。具体来说,我试图让 IIS 托管一个网站,用于C:\users\admin\desktop\public
我在这两个目录上%SystemDrive%\inetpub\wwwroot
进行的测试。Everyone
Full Control
IIS 在我之前托管网站EC2Launch sysprep
,但在权限消失之后。作为进一步的测试,我继续并在运行后创建一个 AMI EC2Launch sysprep
,并在弹性 beantalk 环境中将该 AMI 用于 Auto Scaling 组,但它在那里也不起作用。
我是否正确设置了用户的目录权限?当它执行我的脚本时,它在什么账户下运行?也许该帐户需要以管理员身份运行?
不过,基本上,我希望有人知道在 AMI 中授予Domain\User
访问权限的正确方法。C:\Path\To\Your\Directory
您可以使用配置文件设置权限,而不是在启动脚本中设置权限
EC2Launch
,因为 EC2Launch sysprep 可以在运行时重置设置。首先去创建一个
powershell
(不要忘记替换YourDomain
andYourUser
)然后我们转到
Ec2LaunchSettings.ps1
located atC:\ProgramData\Amazon\EC2-Windows\Launch\Script
并在末尾添加它(这Path\To\Your\Script.ps1
是我们之前创建的脚本的路径)然后我们保存
Ec2LaunchSettings.ps1
,现在你可以重新运行EC2Launch
sysprep,它应该可以工作了。