yzdnbzaw 2008-4-25 16:12
小张看powershell的第一天
我只是抛块砖,把自己的笔记贴下,当然有不对的 希望 大大们 指出,谢谢大家。
Windows PowerShell™ 是专为系统管理员设计的新 Windows 命令行外壳程序。该外壳程序包括交互式提示和脚本环境,两者既可以独立使用也可以组合使用。
那么从这里看的话,系统管理员 要学习了啊, 帮助以后的系统的管理。唉,我压根对程序一窍不通,没那脑子,不过为了吃饭,没办法。
Windows PowerShell 有很大不同。
• Windows PowerShell 不处理文本。相反,它基于 .NET 平台处理对象。
• Windows PowerShell 附带了具有一致界面的大量内置命令。
• 所有的外壳程序命令都使用同一命令分析程序,而不是每个工具使用不同的分析程序。这样便可更轻松地学习如何使用每个命令。
其最好的优点在于,您不必忍痛舍弃自己惯用的工具。仍可以在 Windows PowerShell 中使用传统的 Windows 工具,如 Net、SC 和 Reg.exe。
从上面看,搞c#的兄弟姐妹们肯定是有得天独厚的优势,唉,我打小就没有这些优势,不过呢,我多花些耐心,多看看把,一遍不懂 多看一遍吧,
[size=6]Windows PowerShell Cmdlet[/size]
[size=3]这里啊 不得不说下它了,[/size]
[size=6][size=2][font=Arial]cmdlet[/font][font=宋体]([/font][font=宋体]读作[/font][font=宋体]“[/font][font=Arial]command-let[/font][font=宋体]”)[/font][font=宋体]是[/font][font=Arial] Windows PowerShell [/font][font=宋体]中用于操作对象的单功能命令。可以通过其名称格式识别[/font][font=Arial] cmdlet -- [/font][font=宋体]由短划线[/font][font=Arial] (-) [/font][font=宋体]分隔的动词和名词,如[/font][font=Arial] Get-Help[/font][font=宋体]、[/font][font=Arial]Get-Process [/font][font=宋体]和[/font][font=Arial] Start-Service[/font][font=宋体]。[/font][/size]
[size=2][font=宋体]在传统的外壳程序中,命令是从非常简单(如[/font][font=Arial] attrib.exe[/font][font=宋体])到非常复杂(如[/font][font=Arial] netsh.exe[/font][font=宋体])的可执行程序。[/font][font=Arial] [/font][/size]
[size=2][font=宋体]在[/font][font=Arial] Windows PowerShell [/font][font=宋体]中[/font][font=宋体],[/font][font=宋体]大多数[/font][font=Arial] cmdlet [/font][font=宋体]都非常简单[/font][font=宋体],[/font][font=宋体]它们设计为与其他[/font][font=Arial] cmdlet [/font][font=宋体]组合使用。例如[/font][font=宋体],“[/font][font=Arial]get[/font][font=宋体]”[/font][font=Arial]cmdlet [/font][font=宋体]仅检索数据[/font][font=宋体],“[/font][font=Arial]set[/font][font=宋体]”[/font][font=Arial]cmdlet [/font][font=宋体]仅建立或更改数据[/font][font=宋体],“[/font][font=Arial]format[/font][font=宋体]”[/font][font=Arial]cmdlet [/font][font=宋体]仅设置数据格式[/font][font=宋体],“[/font][font=Arial]out[/font][font=宋体]”[/font][font=Arial]cmdlet [/font][font=宋体]仅将输出定向到指定的目标。[/font][font=Arial] [/font][/size]
[size=2][font=宋体]每个[/font][font=Arial] cmdlet [/font][font=宋体]都具有一个帮助文件,可以通过键入以下内容访问它:[/font][/size]
[size=2][font=宋体]get-help <cmdlet 名称> -detailed[/font][/size]
[size=2][font=Arial]cmdlet [/font][font=宋体]帮助文件的详细视图包括[/font][font=Arial] cmdlet [/font][font=宋体]说明、命令语法、参数说明和说明[/font][font=Arial] cmdlet [/font][font=宋体]用法的示例。[/font][/size]
[font=Arial][size=5][color=#000000]Windows [/color][/size][/font][size=5][font=宋体]命令和实用工具[/font]
[/size][size=2][font=宋体]可以在[/font][font=Arial] Windows PowerShell [/font][font=宋体]中运行[/font][font=Arial] Windows [/font][font=宋体]命令行程序[/font][font=宋体],[/font][font=宋体]并可以在外壳程序中启动具有图形用户界面的[/font][font=Arial] Windows [/font][font=宋体]程序[/font][font=宋体]([/font][font=宋体]如记事本和计算器[/font][font=宋体])[/font][font=宋体]。还可以捕获程序生成的文本,并在外壳程序中使用该文本(与在[/font][font=Arial] Cmd.exe [/font][font=宋体]中很类似)。[/font][/size]
[font=宋体][size=5][color=#000000]处理对象[/color][/size][/font]
[size=2][font=宋体]在[/font][font=Arial] Windows PowerShell [/font][font=宋体]中工作时[/font][font=宋体],[/font][font=宋体]所使用的是[/font][font=Arial] .NET [/font][font=宋体]对象。随着经验增加,对象处理能力变得更明显,而且发现自己使用的是对象,甚至用对象进行思考。[/font][font=Arial] [/font][/size]
[size=2][font=宋体]从技术上讲[/font][font=宋体],[/font][font=Arial].NET [/font][font=宋体]对象是[/font][font=Arial] .NET [/font][font=宋体]类的实例[/font][font=宋体],[/font][font=宋体]包含数据以及与该数据关联的操作。但是,可以将对象视为具有属性(与特性类似)和方法(可以对对象执行的操作)的数据实体。[/font][font=Arial] [/font][/size]
[size=2][font=宋体]例如[/font][font=宋体],[/font][font=宋体]在[/font][font=Arial] Windows PowerShell [/font][font=宋体]中获取服务时[/font][font=宋体],[/font][font=宋体]实际上是获取表示该服务的对象。查看有关服务的信息时,所查看的是其服务对象的属性。此外,启动服务时(即,在将服务的[/font][font=Arial] Status [/font][font=宋体]属性更改为“[/font][font=Arial]started[/font][font=宋体]”时),所使用的是服务对象的方法。[/font][/size]
[size=2][font=宋体]类型相同的所有对象都具有相同的属性和方法[/font][font=宋体],[/font][font=宋体]但是对象的每个实例可能具有不同的属性值。例如,每个服务对象都具有[/font][font=Arial] Name [/font][font=宋体]和[/font][font=Arial] Status [/font][font=宋体]属性。但是,每个服务都可以具有不同的名称和不同的状态。[/font][/size]
[size=2][font=宋体]准备就绪后[/font][font=宋体],[/font][font=宋体]了解对象是很容易的。若要查明[/font][font=Arial] cmdlet [/font][font=宋体]正获取对象的类型,请使用管道运算符[/font][font=Arial] (|) [/font][font=宋体]将“[/font][font=Arial]get[/font][font=宋体]”命令的结果发送到[/font][font=Arial] Get-Member [/font][font=宋体]命令。例如,以下命令将[/font][font=Arial] Get-Service [/font][font=宋体]命令检索的对象发送到[/font][font=Arial] Get-Member[/font][font=宋体]。[/font][/size]
[table][tr][td=1,1,163][size=2][font=Courier New]get-service | get-member [/font][/size]
[/td][/tr][/table]
[size=1] [/size]
[size=2][font=Arial]Get-Member [/font][font=宋体]显示有关服务对象的信息[/font][font=宋体],[/font][font=宋体]其中包括对象的类型名称及其属性和方法的列表。[/font][font=Arial] [/font][/size]
[table][tr][td=1,1,538][size=2][font=宋体]TypeName:System.ServiceProcess.ServiceController[/font][/size]
[size=2] [/size]
[size=2][font=宋体]Name
MemberType
Definition[/font][/size]
[size=2][font=Courier New]----
----------
----------[/font][/size]
[size=2][font=Courier New]Name
AliasProperty Name = ServiceName[/font][/size]
[size=2][font=Courier New]add_Disposed
Method
System.Void add_Disposed(EventHandler value)[/font][/size]
[size=2][font=Courier New]Close
Method
System.Void Close()[/font][/size]
[size=2][font=Courier New]Continue
Method
System.Void Continue()[/font][/size]
[size=2][font=Courier New]...[/font][/size]
[/td][/tr][/table]
[size=1] [/size]
[size=2][font=宋体]若要获取有关对象类的信息[/font][font=宋体],[/font][font=宋体]请在[/font][font=Arial] MSDN [/font][font=宋体]中复制并粘贴类型名称[/font][font=宋体],[/font][font=宋体]如[/font][font=Arial] System.ServiceProcess.ServiceController[/font][font=宋体]。找到类后,可以阅读[/font][font=Arial] MSDN [/font][font=宋体]副主题,以了解基于该类的对象(如[/font][font=Arial] Windows PowerShell [/font][font=宋体]中的对象)的属性和方法。[/font][/size]
[size=2][font=宋体]若要查找特定对象的所有属性的值[/font][font=宋体],[/font][font=宋体]请使用管道运算符[/font][font=Arial] (|) [/font][font=宋体]将[/font][font=宋体]“[/font][font=Arial]get[/font][font=宋体]”[/font][font=宋体]命令的结果发送到[/font][font=Arial] Format-List [/font][font=宋体]或[/font][font=Arial] Format-Table [/font][font=宋体]命令。将[/font][font=Arial] format cmdlet [/font][font=宋体]的[/font][font=Arial] Property [/font][font=宋体]参数与表示所有的值[/font][font=Arial] (*) [/font][font=宋体]一起使用。例如,若要查找系统上[/font][font=Arial] Schedule [/font][font=宋体]服务的所有属性,请键入:[/font][/size]
[table][tr][td=1,1,304][size=2][font=Courier New]get-service schedule | format-list -property *[/font][/size]
[/td][/tr][/table]
[size=1] [/size]
[size=2][font=宋体]以下显示一个结果示例。[/font][/size]
[table][tr][td=1,1,259][size=2][font=Courier New]Name
:Schedule[/font][/size]
[size=2][font=Courier New]CanPauseAndContinue :[/font][font=宋体]True[/font][/size]
[size=2][font=Courier New]CanShutdown
:[/font][font=宋体]True[/font][/size]
[size=2][font=Courier New]CanStop
:[/font][font=宋体]True[/font][/size]
[size=2][font=Courier New]DisplayName
:Task Scheduler[/font][/size]
[size=2][font=Courier New]DependentServices
: [/font][/size]
[size=2][font=Courier New]MachineName
: .[/font][/size]
[size=2][font=Courier New]ServiceName
:Schedule[/font][/size]
[size=2][font=Courier New]ServicesDependedOn
:[/font]{[font=Courier New]RpcSs}[/font][/size]
[size=2][font=Courier New]ServiceHandle
:SafeServiceHandle[/font][/size]
[size=2][font=Courier New]Status
:Running[/font][/size]
[size=2][font=Courier New]ServiceType
:Win32ShareProcess[/font][/size]
[size=2][font=Courier New]Site
:[/font][/size]
[size=2][font=Courier New]Container
:[/font][/size]
[/td][/tr][/table]
[size=1] [/size]
[size=2][font=宋体]最初学习[/font][font=Arial] Windows PowerShell [/font][font=宋体]时[/font][font=宋体],[/font][font=宋体]无需了解有关对象的任何信息[/font][font=宋体],[/font][font=宋体]但是要意识到该概念。呵呵 大家都加油吧,我也就看这么多,[/font][/size]
[size=2][font=宋体]人懒嘿嘿 明天再分享吧[/font][/size]
[/size]
alexeiboy 2008-4-26 18:42
呵呵
慢慢学习啊
hakkin 2008-5-11 22:46
反正一句话 很有用 windows server 2008已经很有体现了
shijiheima 2008-7-1 20:54
很好