我在找
a)或多或少像普通的linux shell(即历史,完成等)
b)一个简单安装的东西(比Cygwin更容易,当我尝试它时看起来并不那么好.)
奖励积分如果是:
c)免费(如在演讲中)
d)允许正斜杠而不是路径中的反斜杠
在cmd,bash等中,dir / ls等命令的输出实际上是一个字符串数组.如果你管道到另一个命令,那么你必须处理字符串.在Powershell中,dir cmdlet实际上提供了一个文件对象数组,您可以将它们传递给另一个命令并通过属性对这些对象进行操作. Powershell实际上是一个交互式的.Net shell.每个cmdlet实际上都是一组.Net对象的包装器.
来自Microsoft的所有下一代管理接口实际上都是在Powershell中实现的,GUI接口是Powershell命令的包装器,类似于执行GUI管理工具的“Unix方式”.
以下是Active Directory透视图中的示例…您可以使用cmd.exe shell和dsquery.exe等实用程序对对象执行LDAP查询.但是你会得到一份名单.然后,您可以将这些DN作为字符串等处理.在Powershell v1或v2中,您可以安装和使用Quest snap-in,它为您提供get-QADUser等工具.使用get-QADuser查询AD时,返回值是User对象的集合.所以像这样的命令:
$users = get-QADUser svc_*
将返回一个可以按属性处理的集合,例如按HomeDirectory对它们进行排序:
$HmDirs = get-QADUser svc_* | sort-object HomeDirectory
没有其他具有Windows功能的shell. Powershell是绝对可行的方式.
更新:PowerShell v2现已作为Windows Management Framework的一部分发布,但如果要获取Microsoft AD cmdlet,则必须运行Server 2008 R2或Windows 7,否则它仍然是Quest cmdlet.