title: Puppet agent re-copying same file after every run
body: <p>I'm writing a Puppet module that isn't working as expected.</p>
  <p>Ultimately, I want to ensure that an application is installed and running on Windows servers. Puppet copies SomeApp.exe to a non-temporary location on the server's C-drive. If the app needs installing, it can install it using that exe file. Pretty straightforward.</p>
  <p>It works, except every time the Puppet agent runs, it re-copies over SomeApp.exe resulting in a corrective action. I'm puzzled by this behavior since SomeApp.exe is already present.</p>
  <p>Here is the code:</p>
  <pre><code>file { 'SomeApp.exe' :
  path   =&gt; 'C:\Post\SomeApp.exe',
  ensure =&gt; 'present',
  source =&gt; 'puppet:///modules/app_test/SomeApp.exe',
  }
  service { 'SomeApp':
  name   =&gt; 'SomeApp',
  ensure =&gt; 'running',
  enable =&gt; 'true',
  }
  package { 'SomeApp.exe':
  ensure          =&gt; 'installed',
  provider        =&gt; 'windows',
  source          =&gt; 'C:\Post\SomeApp.exe'
  }
  </code></pre>
  <p>It all works except it insists on re-copying SomeApp.exe over every time. The original SomeApp.exe has not changed or been deleted.
  What am I missing here?</p>
  <p>Update: It looks like it's not actually re-copying the binary, but it's still reporting a corrective action:</p>
  <pre><code>Notice: /Stage[main]/app_test/Package[SomeApp.exe]/ensure: created (corrective)
  </code></pre>
  <p>Thank you!</p>