Thank you for that, Josh, as well as for creating the Powershell module for Puppet. I hope to meet both you and Rob at PuppetConf next week.
On Thu, Sep 18, 2014 at 4:24 PM, Josh Cooper <[email protected]> wrote: > > > On Thu, Sep 18, 2014 at 2:17 PM, Brian Morris <[email protected]> > wrote: > >> Holy cow, Rob... that was great info! All I did was change "System32" to >> "sysnative", and it worked on the first try. All of that frustration boiled >> down to one part of one path... >> >> Thank you for the link, too. It helps to understand why this happens. >> Cheers to you! >> > > I filed https://tickets.puppetlabs.com/browse/FACT-710. as facter should > use 64-bit powershell when available. > > >> On Thu, Sep 18, 2014 at 1:59 PM, Rob Reynolds <[email protected]> wrote: >> >>> >>> >>> On Thu, Sep 18, 2014 at 3:54 PM, Rob Reynolds <[email protected]> >>> wrote: >>> >>>> >>>> >>>> On Thu, Sep 18, 2014 at 2:11 PM, Brian Morris < >>>> [email protected]> wrote: >>>> >>>>> Hello all, >>>>> >>>>> I have been banging my head against this one for a couple of days. I >>>>> am trying to use Powershell to comb the Windows registry for installed >>>>> applications, such as VMware Tools, to create a custom facter. If I run >>>>> this code from a PS prompt it works, and returns the expected data: >>>>> >>>>> PS C:\> Get-ChildItem >>>>> hklm:\software\microsoft\windows\currentversion\uninstall | ForEach-Object >>>>> {Get-ItemProperty $_.ps >>>>> path} | Where-Object {$_.DisplayName -eq "VMware Tools"} | >>>>> ForEach-Object -process {$_.DisplayVersion } >>>>> *9.4.6.1770165* >>>>> >>>>> >>>> This is running in a 64bit process. >>>> >>>> >>>> >>>>> However, running the same thing through Puppet as a facter yields zero >>>>> data: >>>>> >>>>> ---------- >>>>> Facter.add("vmtools_version") do >>>>> confine :osfamily => "Windows" >>>>> setcode do >>>>> >>>>> Facter::Util::Resolution.exec('C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe >>>>> -Command >>>>> >>>> >>> C:\Windows\System32 is also subject to File system redirection, which is >>> also talked about in that post. Likely fixing only this as sysnative will >>> return the right data because PowerShell will run in 64bit mode. But I >>> would explore the ruby only way to speed up the fact. >>> >>> >>>> "& {Get-ChildItem >>>>> hklm:\software\microsoft\windows\currentversion\uninstall | ForEach-Object >>>>> {Get-ItemProperty $_.pspath} | Where-Object {$_.DisplayName -eq \"VMware >>>>> Tools\"} | ForEach-Object -process {$_.DisplayVersion } } "') >>>>> end >>>>> end >>>>> ---------- >>>>> >>>> >>>> This is in a 32bit process unless you are on the newest 3.7.0 or 3.7.1 >>>> x64 builds of Puppet. You are hitting registry redirection. Be sure to >>>> checkout Common Gotchas[1] especially for how to turn off registry >>>> redirection in a 32 bit process. >>>> >>>> >>>> [1] http://puppetlabs.com/blog/how-avoid-common-windows-gotchas-puppet >>>> >>>> >>>> More detail: >>>> >>>> When a 32 bit process calls the registry and is subject to redirection, >>>> it only sees the Wow6432Node under software. Check out that link above, it >>>> explains quite a bit in more detail. >>>> >>>> >>>> >>>>> >>>>> The left side shows up in the facters as "vmtools_version", but the >>>>> right side is always empty. I have tried using the GetItem module >>>>> instead, >>>>> and tried various combinations of the "-Command" switch, removed the >>>>> "For-Each" handler to see if would spit out a huge block of text, and even >>>>> tried wrapping the whole thing in a "try & catch" to see if any error >>>>> states are generated, but have never gotten any right side output at all. >>>>> >>>>> Does anyone have an idea that might make this work? >>>>> >>>>> -- >>>>> You received this message because you are subscribed to the Google >>>>> Groups "Puppet Users" group. >>>>> To unsubscribe from this group and stop receiving emails from it, send >>>>> an email to [email protected]. >>>>> To view this discussion on the web visit >>>>> https://groups.google.com/d/msgid/puppet-users/a76b897f-9f1f-4e82-ab18-344ae9a6e2c7%40googlegroups.com >>>>> <https://groups.google.com/d/msgid/puppet-users/a76b897f-9f1f-4e82-ab18-344ae9a6e2c7%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>> . >>>>> For more options, visit https://groups.google.com/d/optout. >>>>> >>>> >>>> >>>> >>>> -- >>>> Rob Reynolds >>>> Developer, Puppet Labs >>>> >>>> *Join us at PuppetConf 2014 <http://www.puppetconf.com/>, September >>>> 20-24 in San Francisco* >>>> >>> >>> >>> >>> -- >>> Rob Reynolds >>> Developer, Puppet Labs >>> >>> *Join us at PuppetConf 2014 <http://www.puppetconf.com/>, September >>> 20-24 in San Francisco* >>> >>> -- >>> You received this message because you are subscribed to a topic in the >>> Google Groups "Puppet Users" group. >>> To unsubscribe from this topic, visit >>> https://groups.google.com/d/topic/puppet-users/8m8mt4G_OKU/unsubscribe. >>> To unsubscribe from this group and all its topics, send an email to >>> [email protected]. >>> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/puppet-users/CAMJiBK7GNgWponY1y74bpQ5x_YPbRcPeK3%3DmsyBc-W2txDfQaQ%40mail.gmail.com >>> <https://groups.google.com/d/msgid/puppet-users/CAMJiBK7GNgWponY1y74bpQ5x_YPbRcPeK3%3DmsyBc-W2txDfQaQ%40mail.gmail.com?utm_medium=email&utm_source=footer> >>> . >>> >>> For more options, visit https://groups.google.com/d/optout. >>> >> >> -- >> You received this message because you are subscribed to the Google Groups >> "Puppet Users" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/puppet-users/CAH8X0%2BG8cxLaTG35uKqXBrbhEvHzH1GGZLsVcq7Bso0MSYaKxw%40mail.gmail.com >> <https://groups.google.com/d/msgid/puppet-users/CAH8X0%2BG8cxLaTG35uKqXBrbhEvHzH1GGZLsVcq7Bso0MSYaKxw%40mail.gmail.com?utm_medium=email&utm_source=footer> >> . >> >> For more options, visit https://groups.google.com/d/optout. >> > > > > -- > Josh Cooper > Developer, Puppet Labs > > *Join us at PuppetConf 2014 <http://www.puppetconf.com/>, September > 20-24 in San Francisco* > > -- > You received this message because you are subscribed to a topic in the > Google Groups "Puppet Users" group. > To unsubscribe from this topic, visit > https://groups.google.com/d/topic/puppet-users/8m8mt4G_OKU/unsubscribe. > To unsubscribe from this group and all its topics, send an email to > [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/puppet-users/CA%2Bu97ukj-hMvfo0zJvst9%3Dpbk-%2BgJGtAmWXQS8drCGTFnGAPHg%40mail.gmail.com > <https://groups.google.com/d/msgid/puppet-users/CA%2Bu97ukj-hMvfo0zJvst9%3Dpbk-%2BgJGtAmWXQS8drCGTFnGAPHg%40mail.gmail.com?utm_medium=email&utm_source=footer> > . > > For more options, visit https://groups.google.com/d/optout. > -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/CAH8X0%2BH4wZV1RAtyOA7hvR1v-16yG_kdqdgkOvALZNMYiCJOAg%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
