PS C:> ICACLS.EXE C:TEST --% /GRANT USERS:(F)
processed file: C:TEST
Successfully processed 1 files; Failed processing 0 files
方案 2D:使用等效的 PowerShell
使用等效的 PowerShell 也是种选择。ICACLS.EXE 可以用 Set-ACL 代替。可以从这篇博客中找到更多的 Set-ACL 例子。
混搭
这里展示如何让您安全地享受 PowerShell 结合您的旧命令带来的灵活性。您可能会学到几个技巧并以全新的方式开始新老结合。
例如您能用灵活的 Get-Service 通配符代替 SC.EXE 里晦涩选项:
Get-Service LAN* | % { $_.Name; SC.EXE SDSHOW $_.Name }
或者您可以使用 PowerShell 的 Get-Item(别名 Dir)过滤文件子集传递给 ICACLS.EXE 来处理:
DIR C:TEST -Recurse | ? {$_.Length -ge 1MB} | % { ICACLS.EXE $_.FullName /Grant Administrator:`(F`) }
您甚至可以循环遍历几个数并结合好用的 FSUTIL.EXE 来创建一批大小不同的文件用于测试项目:
1..100 | % { FSUTIL.EXE FILE CREATENEW C:TESTFILE$_.TXT ($_*10KB)
尾声
事到如今,您可能已经确信 Windows PowerShell 是管理员的好朋友啦。然而您可能因为有些旧命令带着古怪的名字或参数而不能使用 POWERSHELL.EXE。我非常鼓励您使用这些技巧来彻底停用 CMD.EXE 并永久迁移到 PowerShell 来作为您主要的 shell。
文章出处:http://www.pstips.net/using-windows-powershell-to-run-old-command-line-tools-and-their-weirdest-parameters.html










