我正在尝试创造无人值守的.xml用于 Windows Server 2016 无人值守安装的文件,在安装 Windows 后,它应该执行位于远程 samba 共享上的一个 powershell 脚本。
我正在使用以下命令运行存储在 samba 共享中的 powershell 脚本:
cmd.exe /c "ECHO R | powershell.exe -ExecutionPolicy Unrestricted -File \\192.168.137.131\install\ConfigureRemotingForAnsible.ps1"
无人值守安装过程运行良好,但是配置RemotingForAnsible.ps1脚本执行失败并出现错误:
The argument '\\192.168.137.131\install\ConfigureRemotingForAnsible.ps1' to the -File parameter does not exist. Provide the path to an existing '.ps1' file as an argument to the -File parameter.
当我手动运行该命令时,该命令成功执行。
unattended.xml 文件的相关部分:
<settings pass="specialize">
<component name="Microsoft-Windows-Deployment" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<RunSynchronous>
<RunSynchronousCommand wcm:action="add">
<Credentials>
<Username>Administrator</Username>
<Password>Devops@123</Password>
</Credentials>
<Path>cmd.exe /c "ECHO R | powershell.exe -ExecutionPolicy Unrestricted -File \\192.168.137.131\install\ConfigureRemotingForAnsible.ps1 > c:\pss.txt"</Path>
<Order>1</Order>
<Description>Execute ansible script</Description>
</RunSynchronousCommand>
</RunSynchronous>
</component>
</settings>
有人能告诉我我应该在 unattended.xml 中添加什么才能使其正常工作吗?
提前致谢。
答案1
从文档看来,路径项是访问使用提供的凭证,但不是运行为. 广义上讲,RunSynchronousCommand
在Specialize
系统环境中运行,而AuditUser
以用户身份运行。
一些选项:
- 期间,使用或将
Specialize
具有显式凭据的驱动器映射到远程共享net use
New-PSDrive
- 将您的命令放入
AuditUser
。在 OP 的评论中,提到这存在其他问题。 - 创建管理员自动登录,并在 SetupComplete.cmd 中运行命令
我指的是https://docs.microsoft.com/en-us/windows-hardware/customize/desktop/unattend/microsoft-windows-deployment-runsynchronous-runsynchronouscommand-credentials, 和https://technet.microsoft.com/en-us/library/cc722343(v=ws.10).aspx