<p>As of Vista, <code>cacls</code> is deprecated. Here’s the first couple of help lines:</p>
<pre><code class="lang-auto">C:>cacls
NOTE: Cacls is now deprecated, please use Icacls.
Displays or modifies access control lists (ACLs) of files
</code></pre>
<p>You should use <code>icacls</code> instead. This is how you grant John full control over <code>D:\test</code> folder and all its subfolders:</p>
<pre><code class="lang-auto">C:>icacls "D:\test" /grant John🙁OI)(CI)F /T
</code></pre>
<p>According do MS documentation:</p>
<ul>
<li>
<p><code>F</code> = Full Control</p>
</li>
<li>
<p><code>CI</code> = Container Inherit - This flag indicates that subordinate containers will inherit this ACE.</p>
</li>
<li>
<p><code>OI</code> = Object Inherit - This flag indicates that subordinate files will inherit the ACE.</p>
</li>
<li>
<p><code>/T</code> = Apply recursively to existing files and sub-folders. (<code>OI</code> and <code>CI</code> only apply to new files and sub-folders). Credit: comment by <span class="mention">@AlexSpence</span>.</p>
</li>
</ul>
<p>For complete documentation, you may run “<code>icacls</code>” with no arguments or see the Microsoft documentation <a href="http://technet.microsoft.com/en-us/library/cc753525%28WS.10%29.aspx">here</a> and <a href="http://support.microsoft.com/kb/318754">here</a></p>