windows – Chef – Powershell输出
发布时间:2020-12-14 02:21:18 所属栏目:Windows 来源:网络整理
导读:我最近升级到 Windows 10,并且在运行刀命令时我注意到一个非常奇怪/恼人的问题. 当我在powershell控制台中运行它时: $nodes = knife node list $nodes的值是$null,我的所有节点都列在控制台窗口中,而不是被捕获并存储在$nodes变量中.当我从Powershell ISE运
我最近升级到
Windows 10,并且在运行刀命令时我注意到一个非常奇怪/恼人的问题.
当我在powershell控制台中运行它时: $nodes = knife node list $nodes的值是$null,我的所有节点都列在控制台窗口中,而不是被捕获并存储在$nodes变量中.当我从Powershell ISE运行相同的命令时,它按预期运行,其中$nodes的值包含我的节点列表. 我尝试了几种变体,都有相同的结果…… $nodes = & knife node list $nodes = Invoke-Expression -Command 'knife node list' $nodes = $(Invoke-Expression -Command 'knife node list') $nodes = & knife node list 2>&1 $nodes = & knife node list 3>&1 $nodes = & knife node list 4>&1 我的powershell控制台会话无法捕获来自ruby解释器的输出但PowerShell ise会话可以发生什么!? Name Value ---- ----- PSVersion 5.0.10586.122 PSCompatibleVersions {1.0,2.0,3.0,4.0...} BuildVersion 10.0.10586.122 CLRVersion 4.0.30319.42000 WSManStackVersion 3.0 PSRemotingProtocolVersion 2.3 SerializationVersion 1.1.0.1 尝试使用和不使用大厨powershell模块:Import-Module Chef相同的结果. PS C:Usersnhudacin> chef -v Chef Development Kit Version: 0.12.0 chef-client version: 12.8.1 berks version: 4.3.0 kitchen version: 1.6.0 现在这里是踢球者…我会用ISE来完成它,但是这个命令: $nodes = knife exec -E 'b = Time.now.to_i;a = (b - (336*60*60)).to_i;printf "%-40s %-23sn","Name","Last Check-In";search(:node,"ohai_time:[0 TO #{a}]") { |n| checkIn = Time.at(n["ohai_time"]).strftime("%F %R"); printf "%-40s %-23sn",n.name,checkIn;}' 在powershell控制台中完美运行,返回在过去14天内未签入的节点列表.当我在ISE中运行它时,它不返回单个节点(即使我知道至少有10个符合此标准). 解决方法
尝试删除作为ChefDK的一部分安装的chef模块.这就是我解决这个问题的原因.
Remove-Module chef https://github.com/chef/chef/issues/4045 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |