2016-04-05 13 views
5

Ich habe vor kurzem auf Windows 10 aktualisiert und ich bemerke ein sehr seltsames/nerviges Problem beim Ausführen von Messerbefehlen.Chef - Powershell Ausgabe

Wenn ich laufen diese in der Powershell-Konsole:

$nodes = knife node list 

Der Wert von $nodes ist $null und alle meine Knoten im Konsolenfenster, anstatt dass sie gefangen genommen und in der $nodes Variable gespeichert aufgeführt. Wenn ich denselben Befehl von Powershell ISE aus ausführen, funktioniert es wie erwartet, wo die Werte $nodes meine Knotenliste enthält.

Ich habe mehrere Varianten ausprobiert, die alle mit dem gleichen Ergebnis ...

$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 

Was auf, wo meine Powershell-Konsole-Sitzung wird die Ausgabe von den Ruby-Interpreter aber Powershell ISE-Sitzung nicht erfassen kann !?

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 

Versuchte mit und ohne Koch Powermodul: Import-Module Chef gleichen Ergebnis.

PS C:\Users\nhudacin> 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 

Jetzt ist hier der Kicker ... Ich würde ISE nur verwenden, um es getan, aber dieser Befehl:

$nodes = knife exec -E 'b = Time.now.to_i;a = (b - (336*60*60)).to_i;printf "%-40s %-23s\n", "Name", "Last Check-In";search(:node, "ohai_time:[0 TO #{a}]") { |n| checkIn = Time.at(n["ohai_time"]).strftime("%F %R"); printf "%-40s %-23s\n", n.name, checkIn;}' 

funktioniert perfekt in Powershell-Konsole, eine Liste von Knoten zurückkehrt, die nicht hat innerhalb der letzten 14 Tage eingecheckt. Wenn ich es in ISE ausführe, gibt es keinen einzigen Knoten zurück (obwohl ich weiß, dass es mindestens 10 gibt, die dieses Kriterium erfüllen).

+0

Hat jemand kommen noch mit einer Lösung für dieses auf? Mein Messer-Fu wird durch diese Irritation ernsthaft behindert. – NeoAcheron

+0

Noch keine Lösung. Das Problem scheint zu kommen und zu gehen. Ich kann die obigen Messerbefehle in Powershell ISE & Console erneut ausführen. Keine Ahnung was sich geändert hat. –

+0

Wenn Sie den Befehl ohne die Variable Messerknotenliste ausführen, funktioniert es wie erwartet? Könnten Sie auch Folgendes versuchen [gist] (https://gist.github.com/Persistent13/afc29d324ef1b6068e1990ea6c52c4d9) und sehen, ob der Abschnitt '$ p.StandardOutput.ReadToEnd()' auch die erwartete Ausgabe enthält? – Persistent13

Antwort

Verwandte Themen