返回首页

简介
多年来,UNIX / Linux系统管理员都看不起在Windows环境中,Windows没有一个很好的CLI的主要原因之一。 UNIX一直SH时,bash,ksh的是伟大的炮弹。微软已经推出的Windows PowerShell(代号为Monad的),一个非常强大的。NET的外壳。 shell是一个伟大的工具为系统管理员自动执行任务的。 PowerShell具有相同的功能,作为当前的UNIX shell,如:成分 - 哪个是许多小的命令相结合,以创建一个复杂的功能管道 - 从一个命令能够管信息到下一个
也有一个设置NIX系统从其他shell环境的几个特点:面向对象 - PowerShell是完全面向对象。这是我的最爱之一,为什么我觉得这是比bash这么多强大。例如,在bash中,你有能力管到另一个应用程序的进程列表。这一文本列表,我可以通过它搜索并找到一些符合特定字符串的进程ID。然而,在PowerShell中,我获得了一个过程对象名单,对象属性和方法。NET 2.0的组件 - 需要我多说了?可扩展性 - 创建你自己的cmdlet的集会,因此人们可以编写你的应用程序。 Exchange 2007是支持PowerShell的第一个Windows应用程序之一。通过PowerShell的cmdlet,您可以运行脚本,将管理和外汇管理的自动化。例如,(PSgt;得到邮箱*小白* |设置邮箱SendStorageQuota 1GB)将设置为在其名称中的所有名称字符串小白报价者。主机 - 主办您的NET应用程序,在不到10行代码的PowerShell的能力。因为PowerShell是面向对象的,你能够通过一行代码,对象到脚本中的托管方案。使用Windows COM对象的能力。强大的XML支持。因此,让我们那么它...NET 2.0运行时从这里开始:然后得到从这里的PowerShell:{A}下一步,我们需要一个IDE(此工具是学习PowerShell和编写脚本的纯金):{A2}
在我们可以使用IDE之前,我们需要启用要执行所有脚本。所以从PowerShell(START - GT的Windows PowerShell - GT的Windows PowerShell),我们启用脚本。

PS > Get-Help Set-ExecutionPolicy - detailed

这将会给我们一些有关设置ExecutionPolicy的命令。{C}
让您运行脚本从外部来源。
P.S.它是由很多的cmdlet得到的PS解释的DLL。在未来,我们可以看到如何创建我们自己的cmdlet,使人们可以控制我们的应用程序。现在,让我们的周围一些建在cmdlet的罚:有些样品
PS > get-service | get-member

在这里得到服务的另一个cmdlet cmdlet是管道的服务对象名单。获取成员,然后列出所有可用的成员,在quot; System.ServiceProcess.ServiceControllerquot;类。
PS > get-service schedule | format-list -property *

在这里,得到的服务是服务对象的"时间表"和另一个cmdlet的格式属性的输出管道。有其他可用的格式,尝试...
PS > get-service | Format-List



PS > get-service | Format-Custom



PS > get-service | Format-Table



PS > get-service | Format-Wide



PS > get-service | format-table name, Servicetype, Canshutdown

在这里,我们是通过管道从IPCONFIG信息和过滤findstr命令。
PS > ipconfig | findstr "Address"

请注意:IPCONFIG命令返回文本,所以它不是返回对象的属性和功能。获取帮助
有PS大量的文档。获取帮助很像NIX的man命令。
其他选项:
PS > Get-help get-command -detailed



PS > Get-help get-command -full



PS > Get-help get-command -examples



PS > Get-help get-command -parameter *
常用命令
PS > Get-Command - Gets basic information about cmdlets and about other elements

                   of Windows PowerShell commands.



PS > Get-Process - Gets the processes that are running on the local computer.



PS > Get-Service - Gets the services on the local computer



PS > Get-Eventlog - Gets information about local event logs or the entries stored in

                    those event logs.



PS > Start-transcript, stop-transcript - Lets you record sessions/interaction with PS 
别名(GET别名)
别名的是字面上的命令别名的。例如:"PS"是得到进程的一个别名。
PS > get-alias ps



PS > get-alias | where-object {$_.definition -eq "set-location"}



PS > set-alias gh get-help



PS > set-alias np c:\windows\notepad.exe



PS > remove-item alias:ls
变量,循环和字符串操作
作为一种脚本语言,PS支持变量,循环和字符串操作。
放入变量的结果:
$result = ipconfig

使用循环来打印行号一个..
for ($i=0 ; $i -lt $result.length; $i++ ) 

{

    "{0} {1}" -f $i, $result[$i] 

}

使用foreach ...
$i = 1;



foreach($singleLine in $result)

{

    $i++

    "{0}    {1}" -f $i, $singleLine

}

使用内置的字符串函数...功能
功能,可以创建任何脚本语言。参数可以被传递和返回值。
$result = ipconfig



function AddLineNumbers

{

    $i = 1;



    foreach($singleLine in $args[0])

    {

        $i++

        "{0}    {1}" -f $i, $singleLine

    }

}



AddLineNumbers $result
WMI(Windows管理规范)脚本
WMI是Windows管理的关键技术。 WMI为您提供了获得巨额的Windows系统的信息。获取WmiObject cmdlet的访问WMI对象。
例如,在这里我们使用Get - WmiObject得到操作系统和BIOS的信息。
Get-WmiObject win32_bios -computername 127.0.0.1

Get-WmiObject -Class Win32_OperatingSystem -ComputerName 127.0.0.1
。NET脚本
常见的事,你会做在脚本中发送电子邮件。首先,我们需要创建一个邮件。NET对象,使用新的对象。
PS> $mailMsg = New-Object -TypeName System.Net.Mail.MailMessage(

    " sender@net.com.au"," recipient@net.com.au");

然后,我们可以设置一些选项和电子邮件。
PS> $mailMsg.IsBodyHtml = $true;



PS> $mailMsg.Body = "<html>This is a sample mail message sent from PowerShell</html>";



PS> $mailMsg.Subject = "This is a sample mail message sent from PowerShell";

一旦我们创建的邮件,那么,我们需要创建客户端对象和发送电子邮件。
PS> $client = New-Object -TypeName System.Net.Mail.SmtpClient("mail.optusnet.com.au");

PS> $client.Send($mailMsg);
壳牌个人资料
的所有别名,功能,和变量仅添加到当前会话。为了跟上变化,你需要将它们添加到您的个人资料。下面是一个配置文件位置的列表:
%windir%\system32\WindowsPowerShell\v1.0\profile.ps1

此配置文件适用于所有用户和所有炮弹。
%windir%\system32\WindowsPowerShell\v1.0\ Microsoft.PowerShell_profile.ps1

此配置文件适用于所有用户,但只有到Microsoft.P​​owerShell外壳。
此配置文件仅适用于当前用户,但会影响所有的shell。
%UserProfile%\\My Documents\WindowsPowerShell\Microsoft.PowerShell_profile.ps1

此配置文件仅适用于当前用户和Microsoft.P​​owerShell外壳。
你也可以创建,共享,并分发配置文件。导航
PS允许浏览文件系统,注册表,并在使用一个共同的方法的计算机上的证书。要查看可用的导航地区,使用:
get-psdrive
文件系统
按正常。
cd HKLM:



ls



cd system\currentcontrolset\control
进一步阅读一个快速资源的巨大页面在这里:{A3}与PS的,有很多文档。检查了这一点。用户指南,是一个很大的参考,为IT管理员。Scott Hanselman有做一些伟大的播客,在PS。如果你不听hanselminutes,然而,你应该检查。{A4}{A5}{A6}有大量的官方网页上的信息:{A7}重要提示使用PowerShell - {A8}。PowerShell的分析器是一个不可或缺的工具(提供了少量的智能感知和查询分析器像Windows抛出命令周围):{A9}

回答

评论会员:游客 时间:2012/01/27
尼斯介绍PowerShell的
。TerranceSmith
评论会员:游客 时间:2012/01/27
"下一步,我们需要一个IDE(此工具是学习PowerShell和编写脚本的纯金):http://www.karlprosser.com/编码器/?page_id=14"此链接似乎不带我到正确的位置(链接的页面上某种形式的工作流开发工具的重点)。我不知道你指的是什么IDE,但卡尔的网站包含了PowerShell的加号({A10}])的链接。这是你的意思吗?它不是免费的,虽然试用版
。GlobX
评论会员:游客 时间:2012/01/27
尝试PowerGUI的它的自由,有intellesense,其基本的原子结构取胜。{A11}