我有一个 Windows Server 2016 Jenkins 构建框。我想在 Jenkins 作业中运行一些 powershell。
作为测试,我已将作业设置为在Execute Windows batch command
构建步骤中执行此操作:
powershell -command Get-DscResource -module xhyper-v
我得到这个输出:
D:\Jenkins\workspace\build-windows-server-2016-core>powershell -command Get-DscResource -module xhyper-v
WARNING: There are no modules present in the system with the given module specification.
我甚至尝试安装 PowerShell 插件并在 Powershell 构建步骤中运行它,但得到了相同的结果。
如果我通过 RDP 连接到该框并以 jenkins 服务帐户登录,然后打开 cmd.exe 窗口并运行powershell -command Get-DscResource -module xhyper-v
我得到这个输出:
C:\Users\svc_jenkins>powershell -command get-dscresource -module xhyper-v
ImplementedAs Name ModuleName Version Properties
------------- ---- ---------- ------- ----------
PowerShell xVHD xHyper-V 3.6.0.0 {Name, Path, DependsOn, Ensure...}
PowerShell xVhdFile xHyper-V 3.6.0.0 {FileDirectory, VhdPath, CheckSu...
PowerShell xVMHyperV xHyper-V 3.6.0.0 {Name, VhdPath, DependsOn, Enabl...
PowerShell xVMSwitch xHyper-V 3.6.0.0 {Name, Type, AllowManagementOS, ...
知道为什么 Get-DscResource 从 Jenkins 作业运行时找不到 xHyper-V 模块吗?
答案1
以 64 位运行 Jenkins 解决了该问题。
看https://stackoverflow.com/a/34030153/38211
感谢 sqlcommunity.slack.com 上 ck 的帮助