zoukankan      html  css  js  c++  java
  • PowerShell: Windows PowerShell扩展

    1. PowerShell管理单元(Snap-in): Windows PowerShell管理单元是被编译成DLL文件的.NET程序,包括提供程序、cmdlet和函数。Windows PowerShell包含一些内置的管理单元,同时我们也可以自己手动添加自己写的管理单元

    Windows PowerShell V2内置管理单元包括:Microsoft.PowerShell.Core, Microsoft.PowerShell.Host, Microsoft.PowerShell.Management, Microsoft.PowerShell.Security, Microsoft.PowerShell.Utility, Microsoft.PowerShell.Diagnostics, Microsoft.PowerShell.WSMan.Management

    查看计算机中的管理单元:get-pssnapin

    查看每个Windows PowerShell提供程序所属的管理单元:get-psprovider | format-list name,pssnapin

    查看某个管理单元中的cmdlet:get-command -module <snap-in_name>

    对于内置的管理单元,每次启动Windows PowerShell时会被自动添加到会话中来。而对于我们自己写的或者从别的地方得到的管理单元,则需要首先注册这些管理单元然后再将他们添加到会话中来,"get-pssnapin -registered"命令可以用来查看你系统中注册过的管理单元,那么如何来注册管理单元呢?可以参考http://msdn.microsoft.com/en-us/library/ms714644(VS.85).aspx

    将一个管理单元添加到当前对话:add-snapin <snap-in_name>

    将一个管理单元移除出当前对话:remove-snapin <snap-in_name>

    将管理单元添加到当前对话中后,管理单元只在当前会话中可用,如果我们想要在将来的会话中继续使用此管理单元,我们需要将它添加到配置文件中,首先将管理单元保存到一个控制台文件(.psc1),然后在需要使用此管理单元时用这个控制台文件启动PowerShell。

    保存到控制台文件:export-console <consolefile_name>

    使用控制台文件启动PowerShell:powershell.exe -psconsolefile <consolefile_name>

    2. Windows PowerShell提供程序(providers)提供的数据显示在一个驱动器中,可以像浏览硬盘一样浏览该驱动器,并且允许查看、查找和管理相关的数据。

    PowerShell内置的提供程序:Alias, Certificate, Environment, FileSystem, Function, Registry, Variable, WSMan.

    列出所有可用的提供程序: get-psprovider

    获得一个提供程序驱动器的所有属性:get-psdrive <drive_name(e.g.hklm)> | format-list *

    查看驱动器的内容:get-childitem <drive_name>:\childitem

    举例:get-childitem hklm:\software

    进入驱动器:set-location <drive_name>:

    3. Windows PowerShell模块(module): 模块包含了若干Windows PowerShell命令。比如cmdlets,提供程序(Providers),函数(functions),变量(variables),别名(aliases)。

    Windows PowerShell模块是独立的、可重用的执行单元,可以包括以下内容:

    • 通过.PSM1文件调用的脚本函数;
    • 被编译成.DLL文件并且通过.PSD1调用的.NET组件;
    • 通过.DLL调用的PowerShell管理单元;
    • 在.PS1XML文件中描述的自定义视图和数据类型。

    使用模块需要执行以下任务:

    1. 安装模块

    如果当前用户没有模块文件夹为当前用户创建模块文件夹:new-item -type directory -path $home\Documents\WindowsPowerShell\Modules

    将整个要安装的模块文件夹copy到上面的文件夹中

    我们可以将模块安装到任意文件夹,但为了便于管理,建议安装到默认文件夹。

    获取已安装的模块:get-module -listavailable

    获取当前会话中导入的模块:get-module

    1. 将模块导入到Windows PowerShell会话

    导入默认模块路径的模块:import-module <module_name>

    导入非默认路径的模块时要将模块的完整路径输入,例如,导入c:\ps-test文件夹下的TestModules模块:

    Import-module c:\ps-test\TestModules

    将所有模块导入到当前会话中:

    对于Windows7和Windows Server 2k8 R2,只需要右击任务栏上的powershell图标,然后选择"Import all modules"即可

    对于其他版本的Windows操作系统,可以这样导入:get-module -listavailable | import-module

    移除模块:remove-module <module_name>

    1. 找到模块添加的命令

    Get-command -module <module_name>

    1. 使用模块添加的命令

    模块默认路径包括两种,system和current user

    System: $pshome\Modules

    (%windir%\System32\WindowsPowerShell\v1.0\Modules)

    Current user: $home\Documents\WindowsPowerShell\Modules

    (%UserProfile%\Documents\WindowsPowerShell\Modules)

    - or -

    $home\My Documents\WindowsPowerShell\Modules

    (%UserProfile%\My Documents\WindowsPowerShell\Modules)

    查看模块默认路径: $env:psmodulepath

    添加模块默认路径:$env:psmodulepath = $env:psmodulepath + ";<path>"

  • 相关阅读:
    深入理解javascript函数进阶系列第三篇——函数节流和函数防抖
    深入理解javascript函数进阶系列第二篇——函数柯里化
    深入理解javascript函数进阶系列第一篇——高阶函数
    javascript面向对象系列第四篇——OOP中的常见概念
    CSS以图换字的9种方法
    javascript面向对象系列第三篇——实现继承的3种形式
    使用gitbook
    linux云服务器常用设置
    Git要点
    Linux环境下安装NodeJS和mongoDB
  • 原文地址:https://www.cnblogs.com/ITGirlXiaoXiao/p/2637753.html
Copyright © 2011-2022 走看看