【发布时间】:2020-01-10 02:57:08
【问题描述】:
我试图弄清楚如何将文件共享映射到我使用 Powershell 脚本创建的特定用户,该脚本旨在成为服务帐户。最终结果是我的服务帐户应该能够访问“\\storageaccount.file.core.windows.net\share”处的 UNC 路径
以下是我如何通过 Packer 的 powershell 配置器创建服务帐户。
$password = ConvertTo-SecureString "ServiceAccountPassword" -AsPlainText -Force
New-LocalUser "ServiceAccount" -Password $password -FullName "ServiceAccount"
Add-LocalGroupMember -Group "Administrators" -Member "ServiceAccount"
因为 Packer 使用 Packer 生成的用户执行 Powershell 代码,所以我创建了一个计划任务以在 SYSTEM 帐户上启动时运行批处理文件。
"net use Z: \\storageaccount.file.core.windows.net\share azurestorageaccesskey /user:Azure\storageaccount /persistent:yes" | Out-File -FilePath "C:\MapAzureFileShare.bat" -Encoding "ASCII"
$action = New-ScheduledTaskAction -Execute "C:\MapAzureFileShare.bat"
$trigger = New-ScheduledTaskTrigger -AtStartup -RandomDelay 00:00:30
$settings = New-ScheduledTaskSettingsSet -Compatibility "Win8"
$principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" -LogonType "ServiceAccount" -RunLevel "Highest"
$task = New-ScheduledTask -Action $action -Principal $principal -Trigger $trigger -Settings $settings -Description "Map Azure file share at startup"
Register-ScheduledTask -TaskName "MapAzureFileShare" -InputObject $task
下面的脚本会为所有用户创建一个网络驱动器,不幸的是,网络驱动器是一个断开连接的驱动器,当我以我刚刚创建的服务帐户登录时无法访问。它会说“用户名或密码不正确。”
我还尝试创建计划任务以作为创建的用户运行。
$action = New-ScheduledTaskAction -Execute "C:\MapAzureFileShare.bat"
$trigger = New-ScheduledTaskTrigger -AtStartup -RandomDelay 00:00:30
$settings = New-ScheduledTaskSettingsSet -Compatibility "Win8"
$task = New-ScheduledTask -Action $action -Trigger $trigger -Settings
$settings -Description "Map Azure file share at startup"
Register-ScheduledTask -TaskName "MapAzureFileShare" -InputObject $task -User "ServiceAccount" -Password "ServiceAccountPassword"
没有任何东西被映射,如果我手动运行这个计划任务似乎也不会发生任何事情。但是,如果我将上述计划任务切换为 仅在用户登录时运行 并手动执行该任务,网络地图就会创建。
如果我尝试以刚刚创建的用户身份运行批处理文件,则文件共享映射得很好。
还有什么我可以尝试的吗?
【问题讨论】:
-
我不确定解决方案是什么。我认为这个问题是由这个引起的。除非由提升的进程创建/激活,否则网络共享对提升的进程不可用。如果您将共享创建为“bob”,则此共享不可用于以管理员权限运行的程序。如果您运行相当于“网络使用”的功能,将共享映射作为提升的进程重复执行。
-
谢谢,我尝试以最高权限运行计划任务,但也没有用。我认为最终的问题是 Windows 10 1809 存在一个错误,导致我无法自动重新连接到网络地图。我能够在下面的帖子中解决这个问题。
标签: windows azure powershell scheduled-tasks fileshare