当前位置:文档之家› PowerShell基础教程

PowerShell基础教程

PowerShell基础教程
PowerShell基础教程

PowerShell基础教程一:Windows PowerShell简介

XP/Server 2003/Vista/Server 2008操作系统的脚本语言。包括 Cmd.exe 、SH、KSH、CSH以及BASH Unix在内的大多数外壳程序的操作方式都是在新的进程中执行命令或实用工具程序,并以文本格式向用户显示结果。多年以来,许多文本处理实用工具程序,如sed、AWK 和 PERL,都已逐渐发展为支持这种交互模式。

这些外壳程序也会提供内置于外壳程序中并在外壳程序处理器中执行的

命令,例如KSH 中的typeset命令和以及 Cmd.exe 中的 dir 命令。在大多数外壳程序中,由于内置命令数量少,从而导致许多实用工具程序应运而生。

针对这一点,Windows PowerShell 有不同的做法。

◆ Windows PowerShell 并不处理文本,而是处理以.NET平台为基础的对象;

◆Windows PowerShell 附带了数量庞大的内置命令集和一致的接口;

◆对于各个工具,全部的外壳程序命令都使用相同的命令剖析器,而非使用不同的剖析器,这项特点会使你更容易学会每种命令的使用方式。

其中最棒的就是你完全不需要舍弃已使用习惯的工具,你可以继续在Windows PowerShell 中使用诸如Net、SC 和 Reg.exe 等传统的 Windows 工具。

Windows PowerShell Cmdlet

Cmdlet (发音如“command-let”) 是指在 Windows PowerShell 中用来操作对象的单一功能命令。你可以依据其名称格式来加以辨识 Cmdlet -- 以破折号 (-) 分隔的动词和名词,例如Get-Help、Get-Process 和 Start-Service。

在传统的外壳程序中,命令是极为简单 (例如 attrib.exe) 到极为复杂 (例如 netsh.exe) 范围内的可执行程序。

在 Windows PowerShell 中,大多数Cmdlet 都相当简单,而且设计成与其他Cmdlet 结合使用。例如,"get" Cmdlet 只提取数据,"set" Cmdlet 只创建或修改数据,"format" Cmdlet 只格式化数据,而 "out" Cmdlet 只将输出导向到指定的目的地。每种 Cmdlet 都具备可在输入下列命令时加以显示的说明文件:

get-help -detailed

Cmdlet 说明文件包括了该 Cmdlet 的描述、命令语法、参数的描述以及示范该 Cmdlet 的使用范例。

全新的脚本语言

Windows PowerShell 由于下列原因使用其特有的语言,而不沿用既有的任何语言。

◆Windows PowerShell 必须拥有可管理.NET对象的语言。

◆这种语言必须提供使用 Cmdlet 的一致环境。

◆这种语言必须支持复杂的工作,而且不能让简单工作变得复杂。

◆这种语言必须与进行 .NET 程序设计时所使用的高级语言 (例如 C#) 达成一致性。

Windows 命令和实用工具程序

你可以在 Windows PowerShell 中执行 Windows 命令行程序,而且可以在外壳程序中启动具有图形用户界面的 Windows 程序,例如记事本和计算器。你也可以提取程序所产生的文本,然后用与在使用 Cmd.exe 时的相同方式在此外壳程序中使用该段文本。

处理对象

也许开始时你可能并未察觉到,当你在 Windows PowerShell 中执行工作时,实际上是在使用 .NET 对象。随着你的经验的不断累积,以及对象处理的效果更加明显,你将发现其实自己是在使用对象,甚至最后以对象为思考依据。

从技术上来看,.NET 对象是由数据以及与该数据关联的作业所组成的 .NET 类型例项。不过,你可以将对象当作拥有属性 (类似特性) 和方法 (可以针对对象执行的动作) 的数据实体。

例如,当你在 Windows PowerShell 中取得服务时,实际上你所取得的是代表该项服务的对象。当你在查看服务的相关信息时,你是在查看其服务对象的属性。同样地,当你启动服务时,也就是当你将该项服务的 Status 属性修改为"started" 时,你正在使用该项服务对象的方法。

所有相同类型的对象都会具有相同的属性和方法,不过,对象的每个实例属性值可以各不相同。例如,每个服务对象都具有 Name 和 Status 属性。不过,各个服务可以拥有不同的名称和状态。

了解这些概念之后,这些对象就不难理解。若要找出 Cmdlet 会取得哪种对象类型,请使用管道运算符 (|) 将 "get" 命令的结果传送到Get-Member 命令。例如,下列命令会将 Get-Service 命令所提取的对象传送Get-Member。

get-service | get-member

Get-Member 会显示该服务对象的相关信息,其中包括对象的Typename,以及包含此对象属性和方法的列表。

TypeName: System.ServiceProcess.ServiceController

Name MemberType Definition

---- ---------- ----------

Name AliasProperty Name = ServiceName

add_Disposed Method System.Void

add_Disposed(EventHandler value)

Close Method System.Void Close()

Continue Method System.Void Continue()

如需取得对象类型的相关信息,请复制和粘贴 Typename (例如,

System.ServiceProcess.ServiceController) 到 MSDN 中。当找到类型时,你就可以读取相关 MSDN 子主题来认识以该类型为基础的对象的属性和方法,例如出现在Windows PowerShell 中的对象。

若要找出特定对象的所有属性值,请使用管道运算符 (|) 将 "get" 命令的结果传送到 Format-List 或是 Format-Table 命令。请配合所有 (*) 的值来使用这些Format cmdlet 的 Property 参数。例如,若要找出系统中 Schedule 服务的所有属性,请输入:

get-service schedule | format-list -property

下面内容显示结果范例。

Name : Schedule

CanPauseAndContinue : True

CanShutdown : True

CanStop : True

DisplayName : Task Scheduler

DependentServices : {}

MachineName : .

ServiceName : Schedule

ServicesDependedOn : {RpcSs}

ServiceHandle : SafeServiceHandle

Status : Running

ServiceType : Win32ShareProcess

Site :

Container :

如果是第一次接触 Windows PowerShell,你还不需要熟知对象的每个细节,但是要对这个概念略有印象,因为你很快就能够应用这类对象来发挥其最大效益。

对象管道

使用对象的最大优点就是可以让命令更容易通过管道进行传递,也就是将某个命令的输出传递为另一个命令的输入。这种通信经常必须通过字符串操作将某种格式的输出转换成另一种格式,以及移除标题和栏标题。

Windows PowerShell 会提供以对象为基础 (而非以文本) 的全新互动模式,负责接收对象的 cmdlet,可以直接处理对象的属性和方法,而不需要进行任何转换或操作。用户可以依据名称引用对象的属性和方法,而不是计算数据在输出中的位置。

在下面的范例中,IpConfig 命令的结果会传递给 Findstr 命令。管道运算符(|) 会将位于此命令左边的结果传递到命令的右边。在 Microsoft? Windows? PowerShell 中,你并不需要操作字符串或计算数据位移。

PS> ipconfig | findstr "Address"

IP Address. . . . . . . . . . . . : 172.28.21.5

IP Address. . . . . . . . . . . . : 172.30.160.225

PowerShell基础教程二:Windows PowerShell中的交互式和脚本

与其他外壳程序一样,Windows PowerShell 支持完全交互式环境。在提示符下键入命令后,将处理该命令并在外壳程序窗口中显示输出。可以将命令输出发送到文件或打印机,也可以使用管道运算符 (|) 将输出发送到其他命令。

对脚本的支持

如果重复运行特定的命令或命令序列,或者如果开发一系列命令来执行复杂的任务,则会希望在文件中保存命令并执行命令文件,而不是在提示符下键入命令。保存有命令的文件称为脚本。

Windows PowerShell 除了提供交互式界面外,还完全支持脚本。在 Windows PowerShell 中,脚本文件的文件扩展名为 .ps1。若要运行脚本,请在命令提示符下键入该脚本的名称。文件扩展名是可选的。

例如:

c:\test\testscript.ps1

c:\test\testscript

即使脚本在当前目录中,也必须指定脚本文件的完全限定路径。若要指示当前目录,请键入目录名称或使用点 (.) 表示当前目录。例如:

.\testscript.ps1

虽然脚本在一些企业中非常有用 -- 甚至是必需的,但是它们可以用于传播恶意代码。因此,Windows PowerShell 中的安全策略(称为执行策略)允许您确定脚本是否可以运行,以及它们是否必须包括数字签名。为了消除明显的风险,Windows PowerShell 中的执行策略都不允许通过双击脚本的图标来运行它。有关详细信息,请键入:

get-help

about_signing

Windows PowerShell 还包括一种非常丰富的脚本语言,使用该语言可以创建从最简单到非常复杂的脚本。它支持用于循环、条件、流控制和变量赋值的语言结构。

PowerShell基础教程三:Windows PowerShell 使用初步

单击“开始”、“所有程序”、Windows PowerShell 1.0 和 Windows PowerShell。

若要从“运行”框启动Windows PowerShell,请单击“开始”,再单击“运行”,然后键入:powershell

若要从命令提示符(cmd.exe) 窗口启动Windows PowerShell,请在命令提示符下键入:powershell

若要查看用于启动Windows PowerShell 的选项,请在命令提示符窗口中键入:

powershell

-?

在Windows PowerShell 打开时,可以使用Get-Help cmdlet 查找帮助。在Windows PowerShell 命令提示符下,键入:

get-help

使用Windows PowerShell

本节介绍使用Windows PowerShell 的基本知识。首先介绍Get-Help cmdlet,该cmdlet 显示有关Windows PowerShell 中cmdlet 和概念性主题的信息。然后,介绍几个基本的cmdlet,说明如何使用cmdlet 参数,然后说明如何设置cmdlet 输出的格式以获取有用显示中所需的数据。最后的主题说明如何使用别名以便更容易地使用Windows PowerShell,如何在Windows PowerShell 中运行传统的Windows 程序,以及如何管理错误。

Get-Help:获取帮助

Get-Help cmdlet 是用于了解Windows PowerShell 的有用工具。通过阅读cmdlet 的说明、了解有关概念并浏览语言主题,您可以开始了解如何使用Windows PowerShell 了。

感兴趣的第一个主题可能是帮助系统。若要显示有关Windows PowerShell 中帮助系统的信息,请键入:

get-help

>然后,您可能会对了解几个基本的cmdlet(如Get-Help、Get-Command、Get-Process、Get-Service 和Get-Eventlog)感兴趣。

若要显示cmdlet 的帮助的最简单视图,请键入“get-help”,后跟该cmdlet 的名称。例如,若要获取Get-Command cmdlet 的帮助,请键入:

get-help

get-command

如果cmdlet 帮助的格式设置不正确(即,如果它以XMLNS 标记开头),则可能是系统上的Windows PowerShell 执行策略阻止系统加载用于设置cmdlet 帮助格式的配置文件。有关执行策略的信息,请键入:

get-help

about_signing

若要显示cmdlet 的详细帮助,包括参数说明和示例,请使用Get-Help 的Detailed 参数。例如,若要获取Get-Command cmdlet 的详细帮助,请键入:

get-help get-command

-detailed

若要显示cmdlet 的所有可用帮助,包括有关cmdlet 及其参数的技术信息,请使用Full 参数。例如,若要获取Get-Command cmdlet 的完整帮助,请键入:

get-help get-command

-full

也可以显示帮助文件的所选部分。若要仅查看示例,请使用Examples 参数。例如,若要显示Get-Command cmdlet 的示例,请键入:

get-help get-command

-examples

若要仅查看详细的参数说明,请使用Get-Help 的Parameter 参数。可以指定参数的名称,或者使用通配符(*) 指定所有参数。例如,若要查看Get-Command 的TotalCount 参数说

明,请键入:

get-help get-command -parameter

totalcount

若要查看Get-Command cmdlet 的所有参数,请键入:

get-help get-command

-parameter *

也可以使用调用Get-Help 的Windows PowerShell 函数之一。Help 函数一次显示一整屏帮助内容。Man 函数显示与Unix 中的手册页类似的帮助。若要使用Help 和Man 函数显示Get-Command cmdlet 的帮助,请键入:

man

get-command

help

get-command

请求特定的帮助主题时,Get-Help 将显示该主题的内容。但是使用通配符请求多个主题时,Get-Help 将显示一个主题列表。例如,若要查看“Get”cmdlet 的帮助主题列表,请键入:

get-help get-*

有关Windows PowerShell 中概念的帮助以“about_”开头。若要显示有关Windows PowerShell 概念的帮助,请键入“get-help”,后跟概念名称。例如,若要获取有关通配符的帮助,请键入:

get-help

about_wildcard

若要显示Windows PowerShell 中所有概念性帮助主题的列表,请键入:

get-help

about_*

通过阅读帮助主题并尝试示例,您将了解Windows PowerShell 的工作原理以及在您的工作中如何使用它。

使用 Cmdlet

cmdlet(读作“command-let”)是一个内置到外壳程序中的简单的单一功能命令行工具。可以就像使用传统的命令和实用工具那样使用cmdlet。首先在Windows PowerShell 命令提示符下键入cmdlet 的名称。Windows PowerShell 命令不区分大小写,因此可以用任意大小写键入。

例如,可以尝试Get-Date cmdlet:

C:\PS> get-date

2005 年 11 月 10 日,星期四,下

午 4:43:50<

若要在会话中列出cmdlet,请使用Get-Command cmdlet,且不带任何命令参数。

PS> get-command

CommandType Name

Definition

----------- ----

----------

Cmdlet Add-Content

Add-Content [-Path]

Cmdlet Add-History

Add-History [[-InputObject] ...

Cmdlet Add-Member

Add-Member [-MemberType]

...

默认的Get-Command 显示有以下三列:CommandType、Name 和Definition。列出cmdlet 时,Definition 列显示cmdlet 的语法。语法中的省略号(…) 指示数据被截断。

Get-Command cmdlet 还获取除cmdlet 之外的命令和命令元素,其中包括在Windows PowerShell 中可用的别名(命令昵称)、函数和可执行文件。

通过使用Get-Command 的Name 参数,以下命令列出了在Windows PowerShell 中可用的可执行文件。

PS> get-command *.exe<

CommandType

Name Definition

----------- ---- ----------

Application

000StTHK.exe C:\WINDOWS\system32\000StTHK.exe

Application

00THotkey.exe C:\WINDOWS\system32\00THotkey.exe

Application

accwiz.exe C:\WINDOWS\system32\accwiz.exe ...

列出可执行文件时,Defintion 列包含可执行文件的完整路径。

然后,尝试一些其他cmdlet,如Get-Process、Get-Service、Get-EventLog 和Get-Alias。

如果对简单的“Get-”cmdlet 已非常熟悉,请尝试更有趣的cmdlet,如Get-WmiObject。此cmdlet 非常有用,因为使用它可以查看和更改远程计算机的组件。例如,以下命令获取有关Server01 远程计算机上BIOS 的信息:

get-wmiobject win32_bios -computername

server01

如果需要任何cmdlet 的帮助,请键入:

get-help -detailed

例如:

get-help get-alias -detailed。

了解对象:Get-Member

Get-Member 是最有用的cmdlet 之一,它显示有关命令返回的.NET 对象的信息。该信息包括对象的类型、属性和方法。

若要使用Get-Member,请使用管道运算符(|) 将命令结果发送到Get-Member。例如:

get-service | get-member

此命令显示Get-Service 实际上返回了一组System.ServiceProcess.ServiceController 对象-- 计算机上的每个服务都有一个对象。

TypeName:System.ServiceProcess.ServiceController

Name MemberType Defin ition

---- ---------- ----------

Name AliasProperty Name = ServiceName

add_Disposed Method System.Vo id add_Disposed(EventHandler value)

Close Method Sy stem.Void Close()

Continue Method Syste m.Void Continue()

CreateObjRef Method System.Ru ntime.Remoting.ObjRef CreateObjRef(Type requestedType)

Dispose Method Syst em.Void Dispose()

Equals Method Sys tem.Boolean Equals(Object obj)

ExecuteCommand Method System.Void ExecuteCommand(Int32 command)

get_CanPauseAndContinue Method System.Boolean

get_CanPauseAndContinue()

get_CanShutdown Method System.Boole

an get_CanShutdown()

get_CanStop Method System.B oolean get_CanStop()

get_Container Method https://www.doczj.com/doc/bb6624471.html, ponentModel.IContainer get_Container()

get_DependentServices Method System.ServiceProc ess.ServiceController[] get_DependentServices()

get_DisplayName Method System.Strin g get_DisplayName()

get_MachineName Method System.Strin g get_MachineName()

get_ServiceHandle Method System.Runtime .InteropServices.SafeHandle get_ServiceHandle()

get_ServiceName Method System.Strin g get_ServiceName()

get_ServicesDependedOn Method System.ServiceProce ss.ServiceController[] get_ServicesDependedOn()

get_ServiceType Method System.Servi ceProcess.ServiceType get_ServiceType()

get_Site Method Syste https://www.doczj.com/doc/bb6624471.html,ponentModel.ISite get_Site()

get_Status Method System. ServiceProcess.ServiceControllerStatus get_Status()

GetHashCode Method System.I nt32 GetHashCode()

GetLifetimeService Method System.Object GetLifetimeService()

GetType Method Syst em.Type GetType()

InitializeLifetimeService Method System.Object

InitializeLifetimeService()

Pause Method Sy stem.Void Pause()

Refresh Method Syst em.Void Refresh()

remove_Disposed Method System.Void remove_Disposed(EventHandler value)

set_DisplayName Method System.Void set_DisplayName(String value)

set_MachineName Method System.Void set_MachineName(String value)

set_ServiceName Method System.Void set_ServiceName(String value)

set_Site Method Syste m.Void set_Site(ISite value)

Start Method Sy stem.Void Start(), System.Void Start(String[] args)

Stop Method S ystem.Void Stop()

ToString Method Syste m.String ToString()

WaitForStatus Method System.Voi d WaitForStatus(ServiceControllerStatus desiredStatus),

System.Voi...

CanPauseAndContinue Property System.Boolean CanPauseAndContinue {get;}

CanShutdown Property System.Boo lean CanShutdown {get;}

CanStop Property System .Boolean CanStop {get;}

Container Property System.C omponentModel.IContainer Container {get;}

DependentServices Property System.ServicePr ocess.ServiceController[] DependentServices {get;}

DisplayName Property System.Str ing DisplayName {get;set;}

MachineName Property System.Str ing MachineName {get;set;}

ServiceHandle Property System.Runti me.InteropServices.SafeHandle ServiceHandle {get;}

ServiceName Property System.Str ing ServiceName {get;set;}

ServicesDependedOn Property System.ServicePro cess.ServiceController[] ServicesDependedOn {get;}

ServiceType Property System.Ser viceProcess.ServiceType ServiceType {get;}

Site Property Sys https://www.doczj.com/doc/bb6624471.html,ponentModel.ISite Site {get;set;}

Status Property Syste m.ServiceProcess.ServiceControllerStatus Status {get;}

此信息看起来技术性很强,但是它实际上非常实用。

PowerShell基础教程四:在Windows PowerShell 中导航

Windows PowerShell 的最强大功能之一是,它允许您使用在文件系统中用来导航的相同熟悉方法在许多不同的数据存储区中导航。

除了熟悉的文件系统驱动器(如 C: 和 D:)之外,Windows PowerShell 还包括表示 HKEY_LOCAL_MACHINE (HKLM:) 和 HKEY_CURRENT_USER (HKCU:) 注册表配置单元、计算机上的数字签名证书存储区 (Cert:) 以及当前会话中函数 (Function:) 等的驱动器。这些驱动器称为 Windows PowerShell 驱动器。

Windows PowerShell 附带有 Windows PowerShell 提供程序支持的数个有用驱动器。若要查看 Windows PowerShell 驱动器的列表,请键入:

get-psdrive

在文件系统中导航

启动 Windows PowerShell 时,您可能很想键入熟悉的 cd、dir 或 ls。可以这样做!cd 是 Set-Location cmdlet(将当前位置更改为指定路径的 cmdlet)的别名。dir 和 ls 是 Get-Childitem cmdlet(获取某个位置中子项的 cmdlet)的别名。

若要在文件系统驱动器中导航,请使用 Set-Location (cd) 和 Get-Childitem (dir、ls)cmdlet。在 Windows PowerShell 中,驱动器由驱动器名称后跟冒号 (:) 表示,如 C:,父项与子项用反斜杠 (\) 或正斜杠 (/) 隔开,如

C:\Windows\System32。

有几项功能可以使在 Windows PowerShell 中导航更容易:

· 有表示当前目录 (.) 和目录内容 (*) 的符号。

· 有表示主目录的内置变量 $home 和表示 Windows PowerShell 安装目录的内置变量 $pshome。

与在其他外壳程序中一样,可以更改位置,创建、删除、移动和复制目录及文件,以及更改其属性。甚至可以将 Tab 补齐功能用于路径名。有关详细信息,请参阅 Item cmdlet(Get-Item、Get-Childitem、New-Item、Remove-Item、Set-Item、Move-Item 和 Copy-Item)的帮助。

在注册表中导航

可以使用与在文件系统驱动器中用来导航的相同方法在 Windows 注册表中进行导航。在 Windows PowerShell 中,HKEY_LOCAL_MACHINE 配置单元映射到 Windows PowerShell HKLM: 驱动器,而 HKEY_CURRENT_USER 驱动器映射到 Windows PowerShell HKCU: 驱动器。

例如:

PS C:\> cd hklm:

PS HKLM:\> dir

PS HKLM:\> dir

Hive:Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MACHINE

SKC VC

Name Property --- --

---- --------

4 0 HARDWARE {}

1 0

SAM {}

Get-ChildItem :不允许所请求的注册表访问权。

所在行:1 字符:3

+ dir <<<<

39 2

SOFTWARE {flash,

(default)}

8 0 SYSTEM {}

PS HKLM:\> cd system\currentcontrolset\control

PS HKLM:\system\currentcontrolset\control> dir

在导航时,您将注意到,dir (Get-Childitem) 的输出在注册表驱动器中与在文件系统中是不同的。由于注册表具有包含不同信息的不同驱动器,因此外壳程序提供了数据的不同视图。在这种情况下,知道存在多 少子项和项是很重要的,因此除了子项和项的名称外,输出还包括子项计数 (SKC) 和值项计数 (VC)。

PS> cd "CurrentControlSet\Control\Session Manager"

PS> dir

Hive:Registry::HKEY_LOCAL_MACHINE\system\CurrentControlSet\Control\Se ssion

Manager

SKC VC ChildName Property --- -- --------- -------- 0 1 AppCompatibility {AppCompatCache} 15 0 AppPatches {}

0 7 DOS Devices {AUX, MAILSLOT, NUL, PIPE, PRN, UNC, f...

到达注册表项之前,不会在导航中遇到很多的差异。注册表项中的项被认为是它们所在项的属性。因此,使用 Get-ItemProperty cmdlet 可以检索它们。

例如,如果要查看 Windows PowerShell 执行策略的值,可以使用

Get-ExecutionPolicy cmdlet,或导航到在

HKLM:\Software\Microsoft\PowerShell\1\ShellIds\Microsoft.PowerShell 中存储值的 ExecutionPolicy 注册表项。

PS C:\> cd hklm:

PS HKLM:\> cd

software\microsoft\powershell\1\ShellIds\Microsoft.PowerShell

PS

HKLM:\software\microsoft\powershell\1\ShellIds\Microsoft.PowerShell> dir

PS

HKLM:\software\microsoft\powershell\1\ShellIds\Microsoft.PowerShell> get-itemproperty -path .-name executionpolicy

PSPath :Microsoft.PowerShell.Core\Registry::HKEY_LO CAL_MACHINE\software\microsoft\powershell\1\ShellIds\Micro

soft.PowerShell

PSParentPath :Microsoft.PowerShell.Core\Registry::HKEY_LOCAL_MA CHINE\software\microsoft\powershell\1\ShellIds

PSChildName :Microsoft.PowerShell

PSDrive :HKLM

PSProvider :Microsoft.PowerShell.Core\Registry ExecutionPolicy :RemoteSigned

在证书存储区中导航

也可以在计算机上的数字签名证书存储区中导航。证书存储区映射到 theWindows PowerShell Cert: 驱动器。以下示例说明如何使用 Set-Location (cd) 和 Get-Childitem(dir、ls)在 Cert: 驱动器中导航。

PS C:\> cd cert:

PS cert:\> dir

Location :CurrentUser

StoreNames :{TrustedPeople, _NMSTR, Trust, REQUEST...}

Location :LocalMachine

StoreNames :{_NMSTR, Trust, REQUEST, TrustedPeople...}

PS cert:\> cd currentuser

PS cert:\currentuser> dir

Name :TrustedPeople

Name :_NMSTR

Name :Trust

Name :REQUEST

Name :AuthRoot

Name :ACRS

Name :My

Name :addressbook

Name :Disallowed

Name :CA

Name :UserDS

Name :Root

Name :TrustedPublisher

PS cert:\currentuser> cd authroot

PS cert:\currentuser\authroot> dir

Directory:Microsoft.PowerShell.Security\Certificate::currentuser\auth root

Thumbprint

Subject

----------

-------

F88015D3F98479E1DA553D24FD42BA3F43886AEF O=C&W HKT SecureNet CA SGC Root, C=hk

F44095C238AC73FC4F77BF8F98DF70F8F091BC52 CN=Class 3TS Primary CA,

O=Certplus, C=FR

EF2DACCBEABB682D32CE4ABD6CB90025236C07BC O="Colegio Nacional de Correduria Publica Mexicana, A.C.", CN="Autoridad C...

...

PS cert:\currentuser\authroot> get-childitem

F88015D3F98479E1DA553D24FD42BA3F43886AEF

Directory:Microsoft.PowerShell.Security\Certificate::currentuser\auth root

Thumbprint

Subject

----------

-------

F88015D3F98479E1DA553D24FD42BA3F43886AEF O=C&W HKT SecureNet CA SGC Root, C=hk

PS cert:\currentuser\authroot> get-childitem

F88015D3F98479E1DA553D24FD42BA3F43886AEF | format-list -property *

PSPath :Microsoft.PowerShell.Security\Certifi cate::currentuser\authroot\F88015D3F98479E1DA553D24FD42BA3F43

886AEF

PSParentPath :Microsoft.PowerShell.Security\Certificate:: currentuser\authroot

PSChildName :F88015D3F98479E1DA553D24FD42BA3F43886AEF PSDrive :cert

PSProvider :Microsoft.PowerShell.Security\Certificate PSIsContainer :False

Archived :False

Extensions : {}

FriendlyName :CW HKT SecureNet CA SGC Root

IssuerName :System.Security.Cryptography.X509Certific ates.X500DistinguishedName

NotAfter :10/16/2009 2:59:00 AM

NotBefore :6/30/1999 3:00:00 AM

HasPrivateKey :False

PrivateKey :

PublicKey :System.Security.Cryptography.X509Certifi cates.PublicKey

RawData : {48, 130, 2, 235...}

SerialNumber : 00

SubjectName :System.Security.Cryptography.X509Certifica tes.X500DistinguishedName

SignatureAlgorithm :System.Security.Cryptography.Oid

Thumbprint :F88015D3F98479E1DA553D24FD42BA3F43886AEF Version : 1

Handle : 1577256

Issuer :O=C&W HKT SecureNet CA SGC Root, C=hk Subject :O=C&W HKT SecureNet CA SGC Root, C=hk

在其他驱动器中导航

除了文件系统、注册表和证书驱动器外,Windows PowerShell 还附带有几个其他有用的驱动器,其中包括别名 (Alias:)、环境提供程序 (Env:)、函数 (Function:) 和变量 (Variable:) 驱动器。使用相同的基本方法可以在这些驱动器中导航。

关于 Windows PowerShell 驱动器

Windows PowerShell 中扩展导航功能背后的概念是 Windows PowerShell 驱动器。

可以在 Windows PowerShell 的任何数据存储区中创建 Windows PowerShell 驱动器,而且它们可以具有任何有效名称,如 C: 或“My Drive”后跟冒号 (:)。可以使用在文件系统驱动器中所用的相同方法在这些驱动器中导航。但是,Windows PowerShell 驱动器仅在 Windows PowerShell 中是可见的。无法在 Windows 资源管理器或 Cmd.exe 中查看或访问它们。

Windows PowerShell 附带有 Windows PowerShell 提供程序支持的数个有用驱动器。若要查看 Windows PowerShell 驱动器的列表,请键入:

get-psdriv

也可以使用 New-PsDrive cmdlet 创建自己的 Windows PowerShell 驱动器。例如,若要创建名为“MyDocs:”的新驱动器(位于 My Documents 目录中),请键入:

new-psdrive -name MyDocs -psprovider FileSystem -root

"$home\My Documents"

现在,可以像使用任何其他驱动器那样使用 MyDocs: 驱动器。可以将您的位置转到该驱动器,枚举其内容以及更改其属性。

驱动器和提供程序

Windows PowerShell 提供程序使 Windows PowerShell 中的驱动器可用于您的会话,这些提供程序是 .NET 程序集,它们使在专用数据存储区中的数据在 Windows PowerShell 中可用,以便您可以轻松地查看和管理该数据。有关 Windows PowerShell 提供程序的信息,请键入:

get-help

about_psprovider

若要查看 Windows PowerShell 提供程序的列表,请键入:

get-psprovide

有关提供程序帮助文件的列表,请键入:

get-help -category

使用PowerShell实现常用网络命令

PowerShell是Windows Server 2008中的专门为系统管理员设计的一个新特性,利用PowerShell可以在命令行下实现强大的功能。本文通过一些例子,介绍了PowerShell如何实现常见网络命令,最后通过一个组合例子,介绍了PowerShell的两大特点。 如果要求我们的Windows网络管理员在进行每天的管理操作时,都采用命令行的字符界面的方式,估计大多数的Windows的管理员都将反对这种做法,因为Windows的命令行工具的功能一向都很薄弱。随着的Windows PowerShell的发布,这种情况将得以改变。PowerShell可以让管理员们在命令行界面下,做很多以前做不了的事情。 在本文中,我们介绍如何使用PowerShell命令行来执行一些常见的网络功能。 1.什么是PowerShell? PowerShell是Windows Server 2008的一个新特性。要安装PowerShell,你需要在新增功能向导中选择安装Powershell特征,一分钟左右即可完成安装,之后您就可以体会到惊人的命令行脚本语言。与Windows中其他脚本语言不同的是,PowerShell是专门为系统管理员设计的。Powershell需要用到.NET框架和cmdlets命令集。作为PowerShell的用户,您可以使用系统自带的cmdlets,也可以自定义cmdlets,扩展实现更强大的功能。 一旦你安装了PowerShell,您可以在开始菜单->所有程序中看到Windows PowerShell 1.0这一项,点击其中的Windows PowerShell选项。这时,你就可以看到一个蓝色的CLI窗口,如下图所示: 图1:Windows Powershell命令行窗口 在每个提示行之前,都有一句: 时刻提醒你,目前正在PowerShell命令行中。 现在让我们来看看如何使用PowerShell来完成一些常见的网络命令。 2.列出服务器的IP地址 在Windows 2008中使用以下命令行,可以列出服务器IP地址: 你可以看到类似以下的输出结果:

vmware-powercli 用户命令管理手册

VMware PowerCLI User's Guide VMware PowerCLI 6.5.4

VMware PowerCLI User's Guide You can find the most up-to-date technical documentation on the VMware website at: https://https://www.doczj.com/doc/bb6624471.html,/ If you have comments about this documentation, submit your feedback to docfeedback@https://www.doczj.com/doc/bb6624471.html, VMware, Inc. 3401 Hillview Ave. Palo Alto, CA 94304 https://www.doczj.com/doc/bb6624471.html, Copyright ? 1998–2017 VMware, Inc. All rights reserved. Copyright and trademark information.

Contents VMware PowerCLI User's Guide8 1Introduction to VMware PowerCLI9 Microsoft PowerShell Basics9 PowerShell Command-Line Syntax10 PowerShell Pipelines10 PowerShell Wildcards10 PowerShell Common Parameters10 PowerCLI Concepts11 PowerCLI Modules12 Interoperability Between the PowerCLI and vCloud Director PowerCLI Modules13 Selecting Objects in PowerCLI14 Providing Login Credentials15 Running PowerCLI Cmdlets Asynchronously15 Managing Default Server Connections16 Customization Specification Objects in PowerCLI16 Using ESXCLI with PowerCLI16 PowerCLI Inventory Provider17 PowerCLI Datastore Provider17 PowerCLI About Articles17 2Installing VMware PowerCLI19 Supported Operating Systems20 Supported VMware Products20 Supported Windows PowerShell Versions20 Prerequisites for Installing and Running PowerCLI20 Install PowerCLI20 Allow Execution of Local Scripts21 Update a PowerCLI Module21 Uninstall PowerCLI22 3Configuring VMware PowerCLI23 Scoped Settings of PowerCLI23 Configuring the Scope of the PowerCLI Settings23 Priority of Settings Scopes in PowerCLI24 PowerCLI Configuration Files24 Using Custom Scripts to Extend the Operating System Support for PowerCLI Cmdlets25

PowerShell的Exit与Return

PowerShell的Exit关键字与Return关键字,以及自动变量$?和$LastExitCode ——与Unix Shell的比较 最近因为工作关系,第一次接触PowerShell。因为之前接触的都是Unix Shell,所以在刚开始用PowerShell的时候,把Unix的想法与概念带到PowerShell中,到最后才发现二者之间很多东西都是不一样的。 关于这次的工作内容,主要任务是把原来在Unix上写的Shell用PowerShell再实现一下。需求与接口都要求与原来的一样(实际上谁也不想改这些东西)。 一、Exit关键字 语法:Exit [状态值] 这个不用想都知道是退出命令,中止当前的执行。但是这里面却是一大堆的陷阱。 在Unix Shell中,只要Exit被执行,不管Shell之间用source命令有多少层读取关系,都会中止所以执行,并且设置退出状态值。状态值在执行结束之后用$?来确认。一切都很清楚。 但是在PowerShell中却变得比较复杂。先看一下PowerShell2.0中关于Exit的说明,少得可怜。另外,在《Window PowerShell应用手册》里关于Exit也没有特别的说明。

对PowerShell中Exit的命令,分成下面三种情况。 1、在脚本中直接执行。 2、在用source读取的脚本中执行。 3、在函数中执行。 分别用例子来说明。 1、在脚本中直接执行。 这种情况下和Unix Shell是一样的,都是中止脚本的执行。 不同的是在PowerShell中自动变量$?是一个布尔值,因为退出代码不是0而是50,所以执行结束是失败(False);自动变量$LastExitCode里保存的则是退出代码。 2、在用source读取的脚本中执行。 用testMain.ps1文件读取上一个例子中的脚本。可以看到即使test1.ps1的执行了Exit命令并中止了执行,但是testMain.ps1却还是继续执行后面的命令。 这一点和Unix Shell完全不一样。

windowsCMD命令大全

aCMD命令:开始->运行->键入cmd或command(在命令行里可以看到系统版本、文件系统版本) 1. appwiz.cpl:程序和功能 2. calc:启动计算器 3. certmgr.msc:证书管理实用程序 4. charmap:启动字符映射表 5. chkdsk.exe:Chkdsk磁盘检查(管理员身份运行命令提示符) 6. cleanmgr: 打开磁盘清理工具 7. cliconfg:SQL SERVER 客户端网络实用工具 8. cmstp:连接管理器配置文件安装程序 9. cmd.exe:CMD命令提示符 10. 自动关机命令 Shutdown -s -t 600:表示600秒后自动关机 shutdown -a :可取消定时关机 Shutdown -r -t 600:表示600秒后自动重启 rundll32 user32.dll,LockWorkStation:表示锁定计算机 11. colorcpl:颜色管理,配置显示器和打印机等中的色彩 12. CompMgmtLauncher:计算机管理 13. compmgmt.msc:计算机管理 14. credwiz:备份或还原储存的用户名和密码 15. comexp.msc:打开系统组件服务 16. control:控制面版 17. dcomcnfg:打开系统组件服务 18. Dccw:显示颜色校准 19. devmgmt.msc:设备管理器 20. desk.cpl:屏幕分辨率 21. dfrgui:优化驱动器Windows 7→dfrg.msc:磁盘碎片整理程序 22. dialer:电话拨号程序 23. diskmgmt.msc:磁盘管理 24. dvdplay:DVD播放器 25. dxdiag:检查DirectX信息 26. eudcedit:造字程序 27. eventvwr:事件查看器 28. explorer:打开资源管理器 29. Firewall.cpl:Windows防火墙 30. FXSCOVER:传真封面编辑器 31. fsmgmt.msc:共享文件夹管理器 32. gpedit.msc:组策略 33. hdwwiz.cpl:设备管理器 34. inetcpl.cpl:Internet属性 35. intl.cpl:区域 36. iexpress:木马捆绑工具,系统自带 37. joy.cpl:游戏控制器 38. logoff:注销命令

经典PowerShell入门教程

PowerShell基础教程

PowerShell 开发代号为Monad,是支持Windows XP/Server 2003/Vista/Server 2008操作系统的脚本语言。包括Cmd.exe 、SH、KSH、CSH以及BASH Unix在内的大多数外壳程序的操作方式都是在新的进程中执行命令或实用工具程序,并以文本格式向用户显示结果。多年以来,许多文本处理实用工具程序,如sed、AWK 和PERL,都已逐渐发展为支持这种交互模式。 这些外壳程序也会提供内置于外壳程序中并在外壳程序处理器中执行的命令,例如KSH 中的typeset命令和以及 Cmd.exe 中的dir命令。在大多数外壳程序中,由于内置命令数量少,从而导致许多实用工具程序应运而生。 针对这一点,Windows PowerShell 有不同的做法。 ◆ Windows PowerShell 并不处理文本,而是处理以.NET平台为基础的对象; ◆Windows PowerShell 附带了数量庞大的内置命令集和一致的接口; ◆对于各个工具,全部的外壳程序命令都使用相同的命令剖析器,而非使用不同的剖析器,这项特点会使你更容易学会每种命令的使用方式。 其中最棒的就是你完全不需要舍弃已使用习惯的工具,你可以继续在Windows PowerShell 中使用诸如Net、SC 和 Reg.exe 等传统的 Windows 工具。 Windows PowerShell Cmdlet Cmdlet (发音如“command-let”) 是指在 Windows PowerShell 中用来操作对象的单一功能命令。你可以依据其名称格式来加以辨识Cmdlet -- 以破折号 (-) 分隔的动词和名词,例如Get-Help、Get-Process 和 Start-Service。 在传统的外壳程序中,命令是极为简单 (例如 attrib.exe) 到极为复杂 (例如 netsh.exe) 范围内的可执行程序。 在 Windows PowerShell 中,大多数Cmdlet都相当简单,而且设计成与其他Cmdlet结合使用。例如,"get" Cmdlet只提取数据,"set" Cmdlet只创建或修改数据,"format" Cmdlet只格式化数据,而 "out" Cmdlet只将输出导向到指定的目的地。每种Cmdlet都具备可在输入下列命令时加以显示的说明文件:get-help -detailed

PowerShell基本语法及常用命令

PowerShell基本语法及常用命令 Powershell常用命令 1.Get-Command 得到Powshell所有命令 2.Get-Process 获取所有进程 3.Set-Alias 给指定命令重命名如:Set-Alias aaa Get-Command 4.Set-ExecutionPolicy remotesigned 设置powershell可直接执行脚本文件一般脚本文件以.ps1结尾执行脚本文件直接输入文件地址即可执行脚本文件中只写命令即可 5.Get-Help get-* 查询以get开头的命令Get-Help *service* Get-Help Get-Command 获取Get-Command命令的基本用法 6.Get-Member 获取对象属性如: $var | Get-Memeber 访问$var属性直接$var.T oString() PS中的变量定义 不需要定义或声明数据类型 在变量前加"$" 定义变量的规则 -变量可以是数字$123 -变量可以是字符串$abc -变量可以是特殊字符${@1b} 内置的变量 -$pshome -$home

-$profile 变量赋值: $var=123 $var="aaaaaa" 取变量值: $var 变量赋值方法:Set-Variable var 100 取值方法: Get-Variable var 清空值: Clear-Variable var 删除变量Remove-Variable var 取多个变量如var1 var2 var3地值: Get-Variable var* 另一种赋值方法$var1="bbb" $var2="$var $var1" 结果$var2="aaaaaa bbb" $var2='$var $var1' 结果$var2="$var $var1" $date=Get-Date 获取当前时间 $date.AddDays(3) 当前时间加3天 排序用法 Get-Process | Sort-Object ws 根据WS值由小到大排序 Get-Process | Sort-Object | fl Get-Process | Sort-Object | Format-List 以列表形式显示数据 导入导出文件 Get-Process > c:\aa.txt

powershell命令

Get-Command Cmdlet 获取有关cmdlet 的基本信息,以及有关Powershell Get-Help Cmdlet 显示有关Windows PowerShell cmdlet 和概-念的信息。 Get-History Cmdlet 获取在当前会话中输入的命令的列表。 Invoke-History Cmdlet 从会话历史记录中运行命令。 Add-History Cmdlet 向会话历史记录追加条目。 ForEach-Object Cmdlet 针对每一组输入对象执行操作。 Where-Object Cmdlet 创建控制哪些对象沿着命令管道传递的筛选器。 Set-PSDebug Cmdlet 打开和关闭脚本调试功能,设置跟踪级别并切换strict 模式。 Add-PSSnapin Cmdlet 将一个或多个Windows PowerShell 管理单元添加到当 前控制台。 Remove-PSSnapin Cmdlet 从当前控制台中删除Windows PowerShell 管理单元。 Get-PSSnapin Cmdlet 获取计算机上的Windows PowerShell 管理单元。 Export-Console Cmdlet 将当前控制台的配置导出到文件中,以便对其进行重用或共享。 Start-Transcript Cmdlet 在文本文件中创建全部或部分Windows PowerShell 会话的记录。 Stop-Transcript Cmdlet 停止脚本。 Add-Content Cmdlet 向指定项中添加内容。 Clear-Content Cmdlet 删除项的内容(例如从文件中删除文本),但不删除该项。 Clear-ItemProperty Cmdlet 删除属性的值,但不删除该属性。 Join-Path Cmdlet 将路径和子路径合并到单个路径中。提供程序将提供路径分隔符。 Convert-Path Cmdlet 将路径从Windows PowerShell 路径转换为Window Copy-ItemProperty Cmdlet 将属性和值从指定的位置复制到另一个位置。 Get-EventLog Cmdlet 获取与本地事件日志或其中存储的条目有关的信息。

最新整理使用PowerShell让局域网电脑集体重启方法步骤

使用P o w e r S h e l l让局域网电脑集体重启方法步骤局域网可以实现文件管理、应用软件共享、打印机共享、工作组内的日程安排、电子邮件和传真通信服务等功能。除了文件共享功能,还有一个不太常用但很方便的就是群重启,让局域网内所有主机重启,对于大型局域网,多台主机的领域很有用,下面我们就一起来看看群重启命令吧! W i n d o w s10使用P o w e r S h e l l让局域网电脑集体重启的方法: 1、单机重启 这个功能比较简单,命令也容易,只不过重启还得用命令就显得有点麻烦。命令格式如下: 01R e s t a r t-C o m p u t e r 提示:这个命令执行后,系统会立刻重启,所以如果电脑没准备好,小心手滑。 2、集体重启 如果是让两台以上电脑重启,采用这个方式就比较方便,总比挨个去点重启要方便得多,适用于局域网管理员,命令格式如下: 01R e s t a r t-C o m p u t e r-C o m p u t e r N a m e S e r v e r01,

S e r v e r02,l o c a l h o s t 提示:引号中的内容为具体电脑在局域网中的名称,而l o c a l h o s t为本机。 3、远程重启 对于远程计算机,可以设置重启延迟时间,命令示例如下: 01R e s t a r t-C o m p u t e r-C o m p u t e r N a m e S e r v e r01 -W a i t-F o r P o w e r S h e l l-T i m e o u t600-D e l a y5提示:其中的600是秒数,600秒就是10分钟。该命令就是让远程计算机最多等待P o w e r S h e l l启动完毕十分钟;延迟为5秒,意为每5秒查询一次P o w e r S h e l l 启动情况。如果在十分钟内P o w e r S h e l l启动,则在发现成功启动后立即重启;如果十分钟到时后仍未启动 P o w e r S h e l l,则远程电脑将重启。 补充:局域网经常断线解决方法 进一步排查判断水晶头久了是否氧化,重做末端一端水晶头,故障没有排除,测试仪测试,8线全通的,可是故障依旧出现,上一会儿就掉线。 继续排查上端一端水晶头和端口,切换端口无效,重新做另一端水晶头,现在问题来了,网络干脆不通,

Windows命令大全

1.appwiz.cpl:程序和功能 2.desk.cpl:屏幕分辨率 3.firewall.cpl:windows防火墙 4.hdwwiz.cpl:设备管理器 5.inetcpl.cpl:internet属性 6.intl.cpl:区域 7.joy.cpl:游戏控制器 8.main.cpl:鼠标属性 9.mmsys.cpl:声音 10.ncpa.cpl:网络连接 11.powercfg.cpl:电源选项 12.sysdm.cpl:系统属性 13.timedate.cpl:日期和时间 14.wscui.cpl:操作中心 15.certmgr.msc:证书管理实用程序 https://www.doczj.com/doc/bb6624471.html,exp.msc:打开系统组件服务 https://www.doczj.com/doc/bb6624471.html,pmgmt.msc:计算机管理 18.devmgmt.msc:设备管理器 19.diskmgmt.msc:磁盘管理 20.fsmgmt.msc:共享文件夹管理器 21.gpedit.msc:组策略 22.lusrmgr.msc:本地用户和组 23.napclcfg.msc:客户端配置 24.perfmon.msc:计算机性能监测器 25.printmanagement.msc:打印管理 26.rsop.msc:组策略结果集 27.secpol.msc:本地安全策略 28.services.msc:本地服务设置 29.taskschd.msc:任务计划程序 30.wmimgmt.msc:打开windows管理体系结构(wmi) 31.wf.msc:高级安全windows防火墙 32.chkdsk.exe:chkdsk磁盘检查(管理员身份运行命令提示符) 33.cmd.exe:cmd命令提示符 34.msconfig.exe:系统配置实用程序 35.regedit.exe:注册表 36.sfc.exe:系统文件检查器 37.mem.exe:显示内存使用情况(如果直接运行无效,可以先管理员身份运行命 令提示符,在命令提示符里输入mem.exe>d:a.txt即可打开d盘查看a.txt,里面的就是内存使用情况了。当然什么盘什么文件名可自己决定。)

Powershell 编写和运行脚本

一个Powershell仅仅是一个包含Powershell代码的文本文件。如果这个文本文件执行,Powershell解释器会逐行解释并执行它的的语句。Powershell脚本非常像以前CMD控制台上的批处理文件。您可以通过非常简单的文本编辑工具创建Powershell脚本。 通过重定向创建脚本 如果您的脚本不是很长,您甚至可以直接在控制台中要执行的语句重定向给一个脚本文件。 PS E:> '"Hello,Powershell Script"' > MyScript.ps1 PS E:> .\MyScript.ps1 Hello,Powershell Script 这样有个缺点,就是您的代码必须放在闭合的引号中。这样的书写方式一旦在脚本内部也有引号时,是一件很痛苦的事。甚至您还可能希望在脚本中换行。下面的Here-strings例子不错,也就是将脚本文件通过@‘’@闭合起来。 PS E:> @' >> Get-Date >> $Env:CommonProgramFiles >> #Script End >> "files count" >> (ls).Count >> #Script Really End >> >> '@ > myscript.ps1 >> PS E:> .MyScript.ps1 2012年4月27日8:15:10 C:\Program Files\Common Files files count 20 Here-String以@‘开头,以’@结束.任何文本都可以存放在里面,哪怕是一些特殊字符,空号,白空格。但是如果您不小心将单引号写成了双引号,Powershell将会把里面的变量进行解析。 通过编辑器创建脚本 其实非常方便的还是最地道的文版编辑器Notepad,您可以直接在Powershell控制台中打开Notepad PS E:> notepad.exe .\MyScript.ps1 PS E:> notepad.exe 编辑完记得保存即可。

powershell所有命令公布解析

powershell所有命令公布! Split-Path Cmdlet 返回指定的路径部分。 Test-Path Cmdlet 确定路径的所有元素是否存在。 Get-Process Cmdlet 获取在本地计算机上运行的进程。 Stop-Process Cmdlet 停止一个或多个正在运行的进程。Remove-ItemProperty Cmdlet 从注册表项中删除属性及其值。Rename-ItemProperty Cmdlet 重命名项的属性。 Resolve-Path Cmdlet 解析路径中的通配符并显示路径内容。 Get-Service Cmdlet 获取本地计算机上的服务。 Stop-Service Cmdlet 停止一个或多个正在运行的服务。 Start-Service Cmdlet 启动一个或多个已停止的服务。 Suspend-Service Cmdlet 挂起(暂停)一个或多个正在运行的服务。Resume-Service Cmdlet 恢复一项或多项挂起(暂停的)服务。Restart-Service Cmdlet 停止并接着启动一个或更多服务。 Set-Service Cmdlet 更改服务的显示名称、说明或启动模式。

New-Service Cmdlet 在注册表和服务数据库中为Windows 服务创建新项。 Set-Content Cmdlet 在项中写入内容或用新内容替换其中的内容。 Set-ItemProperty Cmdlet 设置位于指定位置的属性的值。 Get-Acl Cmdlet 获取资源(例如文件或注册表项)的安全描述符。 Set-Acl Cmdlet 更改指定资源(例如文件或注册表项)的安全描述符。 Get-PfxCertificate Cmdlet 获取计算机上 .pfx 证书文件的相关信息。 Get-Credential Cmdlet 获取基于用户名和密码的凭据对象。 Get-ExecutionPolicy Cmdlet 获取外壳程序的当前执行策略。 Set-ExecutionPolicy Cmdlet 更改外壳程序执行策略的用户首选项。 Get-AuthenticodeSignature Cmdlet 获取文件中有关Authenticode 签名的信息。 Set-AuthenticodeSignature Cmdlet 使用Authenticode 签名对Windows PowerShell 脚本或其他文件进 行签名。 ConvertFrom-SecureString Cmdlet 将安全字符串转换为加密的标准字符串。 ConvertTo-SecureString Cmdlet 将加密的标准字符串转换为安全字符串。它还可以将纯文本转换为安 全字符串。此命令与ConvertFrom-Secu... Format-List Cmdlet 将输出的格式设置为属性列表,其中每个属性均各占一行显示。

PowerShell 常见命令别名及其作用

PowerShell 常见命令别名及其作用 Name Category Synopsis ? Alias Where-Object ac Alias Add-Content asnp Alias Add-PSSnapin cat Alias Get-Content cd Alias Set-Location chdir Alias Set-Location clc Alias Clear-Content clear Alias Clear-Host clhy Alias Clear-History cli Alias Clear-Item clp Alias Clear-ItemProperty cls Alias Clear-Host clv Alias Clear-Variable compare Alias Compare-Object copy Alias Copy-Item cp Alias Copy-Item cpi Alias Copy-Item cpp Alias Copy-ItemProperty cvpa Alias Convert-Path dbp Alias Disable-PSBreakpoint del Alias Remove-Item diff Alias Compare-Object dir Alias Get-ChildItem ebp Alias Enable-PSBreakpoint echo Alias Write-Output epal Alias Export-Alias epcsv Alias Export-Csv epsn Alias Export-PSSession erase Alias Remove-Item etsn Alias Enter-PSSession exsn Alias Exit-PSSession fc Alias Format-Custom fl Alias Format-List foreach Alias ForEach-Object ft Alias Format-Table fw Alias Format-Wide gal Alias Get-Alias gbp Alias Get-PSBreakpoint gc Alias Get-Content

powershell命令集(有中文说明)

Add-Computer 将本地计算机添加到域或工作组 Add-Content 将内容附加到指定的项目或文件 Add-History 向会话历史记录追加条目 Add-Member 向Windows PowerShell 对象的实例中添加用户定义的自定义成员 Add-PSSnapin 将一个或多个Windows PowerShell 管理单元添加到当前会话 Add-Type 向Windows PowerShell 会话中添加Microsoft .NET Framework 类型(一种类) Checkpoint-Computer 在本地计算机上创建系统还原点 Clear-Content 删除项目的内容,但不删除该项目 Clear-EventLog 清除本地或远程计算机上指定事件日志中的所有条目Clear-History 删除命令历史记录中的条目。 Clear-Item 将清除的项的内容,但它不会删除该项目 Clear-ItemProperty 清除属性的值但不删除该属性 Clear-Variable 删除变量的值 Compare-Object 比较两组对象 Complete-Transaction 提交活动事务 Connect-WSMan 连接到远程计算机上的WinRM 服务ConvertFrom-Csv 将逗号分隔值(CSV) 格式的对象属性转换为原始对象的CSV 版本 ConvertFrom-SecureString 将安全字符串转换为加密的标准字符串

ConvertFrom-StringData 将包含一个或多个键-值对的字符串转换为哈希表Convert-Path 将路径从Windows PowerShell路径转换为Windows PowerShell提供程序路径 ConvertTo-CSV 将Microsoft .NET Framework 对象转换为一系列以逗号分隔的(CSV)、长度可变的字符串 ConvertTo-Html 将Microsoft .NET Framework 对象转换为可在Web 浏览器中显示的HTML ConvertTo-SecureString 将加密的标准字符串转换为安全字符串。它还可以将纯文本转换为安全字符串。此Cmdlet 与ConvertFrom-SecureString 和Read-Host 一起使用 ConvertTo-XML 创建对象的基于XML 的表示形式 Copy-Item 将项目从一个位置复制到另一个位置 Copy-ItemProperty 将属性和值从指定位置复制到另一个位置 Debug-Process 调试在本地计算机上运行的一个或多个进程Disable-ComputerRestore 禁用指定文件系统驱动器上的“系统还原”功能Disable-PSBreakpoint 禁用当前控制台中的断点 Disable-PSSessionConfiguration 拒绝访问本地计算机上的会话配置 Disable-WSManCredSSP 在客户端计算机上禁用凭据安全服务提供程序(CredSSP) 身份验证 Disconnect-WSMan 断开客户端与远程计算机上的WinRM 服务的连接 Enable-ComputerRestore 在指定的文件系统驱动器上启用“系统还原”功能

(完整版)PowerShellV2介绍

PowerShell V2介绍 今天要为大家介绍的是和管理活动目录林和域对象有关的cmdlets。涉及到的名词有ADDomain、ADDomainController、ADDomainControllerPasswordReplicationPolicy、ADDomainControllerPasswordReplicationPolicyUsage、ADDomainMode、ADForest、ADDirectoryServer和ADDirectoryServerOperationMasterRole。我们可以使用以下命令来得到包含这些名词的cmdlets: Get-Command *ADDomain*,*ADForest*,*ADDirectory* -Module ActiveDirectory | Sort Noun | FT -a 最后的返回结果中包含13个cmdlets: 接下来将基于完成具体任务的方式来介绍名词部分是ADDomain及ADForest的cmdlets。 ?对FSMO主机进行操作 如果我们需要对FSMO主机进行操作则需要使用Get-ADDomain、Set-ADDomain、Get-ADForest及Set-ADForest这四个cmdlets。首先来看看Get-ADDomain能提供给我们一些什么样的信息。

大家可以看到Get-ADDomain得到的信息还是很丰富的,比如子域的信息(ChildDomains),域功能级(DomainMode),操作主机(PDCEmulator、RIDMaster)等等。接下来我们来看看Get-ADForest会得到哪些信息: 大家可以看到Get-ADForest为我们提供了林范围内的一些信息,接下来我们就来看看如何得到FSMO角色所在的主机。

Power Shell常用命令

分享几个AD管理中常用的PowerShell命令 来源:互联网作者:佚名时间:2015-03-15 01:10 1、查询AD中,默认的密码策略如果接手一个新的AD环境,需要了解其密码策略如果,或是你忘了你所在组织AD的密码策略,我们一会去组策略管理控制台去查看,但有了P 1、查询AD中,,默认的密码策略 如果接手一个新的AD环境,需要了解其密码策略如果,或是你忘了你所在组织AD的密码策略,我们一会去组策略管理控制台去查看,但有了PowerShell,会变得很简单,只需一个CMDLET: Get-ADDefaultDomainPasswordPolicy 密码复杂性要注、锁定策略、密码长度、密码有效时间等,可以全部显示出来! 2、查询AD中,那些用户被选中了“密码永不过期”的选顶 在域管理中,我们一般都会配置一些策略,设置用户密码30天或是90天过期,强制修改密码,但有时,可能会在创建用户时,不小心选中了“密码永不过期”的选顶,这对信息安全来说,是不被允许的,或是说一个不安全的因素,如果通过AD管理工具去检查每个用户,是一个很繁琐的工具,但如果我们利用PowerShell,就可以很方便的一次性查询出AD中所有勾选了“密码记不过期”选顶的用户! Get-ADUser -Filter 'PasswordNeverExpires -eq $true' -Server DCHostname | select name

将DChostname修改为你域的其中一台DC的主机名 如果你的AD组织足够大,一次性会显示所有AD中的的用户,如果只查询某个指OU下的,可以加入限定条件,如: -searchbase ' OU=test,DC=Youdomain,DC=COM ' 将OU=Test修改为你其中一个OU的名字,将DC=Youdomain,DC=COM改为你的域名,如我的域名为https://www.doczj.com/doc/bb6624471.html,,我要查东莞分公司用户所在OU: Get-ADUser -searchbase ' OU=Dongguan,DC=szmaxcent,DC=COM,DC=CN ' -Filter 'Passw ordNeverExpires -eq $true' -Server DCHostname | select name 3、查询AD中,已锁定的用户 如果某些用户因为密码问题导致账号锁定,我们也可以用PowerShell来查看当前域中,有那些账号是锁定状态: get-aduser -filter * -properties * | where {$_.lockedout} | ft name,lockedout

PowerShell基础教程

PowerShell基础教程一:Windows PowerShell简介 XP/Server 2003/Vista/Server 2008操作系统的脚本语言。包括 Cmd.exe 、SH、KSH、CSH以及BASH Unix在内的大多数外壳程序的操作方式都是在新的进程中执行命令或实用工具程序,并以文本格式向用户显示结果。多年以来,许多文本处理实用工具程序,如sed、AWK 和 PERL,都已逐渐发展为支持这种交互模式。 这些外壳程序也会提供内置于外壳程序中并在外壳程序处理器中执行的 命令,例如KSH 中的typeset命令和以及 Cmd.exe 中的 dir 命令。在大多数外壳程序中,由于内置命令数量少,从而导致许多实用工具程序应运而生。 针对这一点,Windows PowerShell 有不同的做法。 ◆ Windows PowerShell 并不处理文本,而是处理以.NET平台为基础的对象; ◆Windows PowerShell 附带了数量庞大的内置命令集和一致的接口; ◆对于各个工具,全部的外壳程序命令都使用相同的命令剖析器,而非使用不同的剖析器,这项特点会使你更容易学会每种命令的使用方式。 其中最棒的就是你完全不需要舍弃已使用习惯的工具,你可以继续在Windows PowerShell 中使用诸如Net、SC 和 Reg.exe 等传统的 Windows 工具。 Windows PowerShell Cmdlet Cmdlet (发音如“command-let”) 是指在 Windows PowerShell 中用来操作对象的单一功能命令。你可以依据其名称格式来加以辨识 Cmdlet -- 以破折号 (-) 分隔的动词和名词,例如Get-Help、Get-Process 和 Start-Service。 在传统的外壳程序中,命令是极为简单 (例如 attrib.exe) 到极为复杂 (例如 netsh.exe) 范围内的可执行程序。 在 Windows PowerShell 中,大多数Cmdlet 都相当简单,而且设计成与其他Cmdlet 结合使用。例如,"get" Cmdlet 只提取数据,"set" Cmdlet 只创建或修改数据,"format" Cmdlet 只格式化数据,而 "out" Cmdlet 只将输出导向到指定的目的地。每种 Cmdlet 都具备可在输入下列命令时加以显示的说明文件:

PowerShell控制台命令

PowerShell相对于传统的CMD命令行有着更为强大的功能和特性,下面我就给大家分享一下WIN7/WIN8系统下如何打开PowerShell,此方法也适用Windows2008

PowerShell控制台快捷键 2008-12-08 23:59:20 11月份工作十分繁忙, 一直疏于管理blog, 最近时间较为充裕. 终于可以好好整理博客和教程. 今天为大家总结了在控制台的所有快捷键, 方便大家使用PowerShell. 实际上Cmd.exe或任何控制台都支持这些快捷键的. 按键功能 ←光标向左移动一个字符 Ctrl + ←光标向左移动一个单词 →光标向右移动一个字符 Ctrl + →光标向右移动一个单词 Home键光标移动到行首 End键光标移动到行尾 Delete键删除光标指向的字符 Backspace键或Ctrl + H 删除光标左边第一个字符 Ctrl + End键删除从光标到行尾的所有字符 Esc键清除当前输入的所有字符 Insert键插入与改写模式切换

Tab键Tab键自动完成命令,例如:自动完成命令的名称、cmdlet命令的 参数、路径。如果第一个提示的对象不是您期望的结果,继续输入 Tab键,将会自动显示下一个候选对象。 ↑向上查询历史命令 ↓向下查询历史命令 F7键显示命令历史记录,以图形列表窗的形式给出所有曾经输入的命令, 并可用上下箭头键选择再次执行该命令。 F8键搜索命令对应的历史记录,在命令上输入命令的一部分内容后,按 F8键,可以得到匹配该输入的历史命令。如果有多个匹配项,重复 按F8,可以循环显示所有曾经输入的命令。如果命令行为空,则默 认匹配所有历史输入的命令。 F9键按编号选择历史命令,以图形对话框方式要求您输入命令所对应的 编号(从0开始),并将该命令显示在屏幕上。 Enter键或Ctrl + M 回车(Enter) Ctrl + C 终止当前执行的命令 Ctrl + Break 终止当前执行的命令 Alt + F7键清除所有曾经输入的命令历史记录

Windows PowerShell目录与文件的基本操作

Windows PowerShell目录与文件的基本操作 你可以通过一些命令浏览系统里的目录,创建,移动,删除目录还有文件。目录与文件的操作是使用命令行工具的基础。Windows 用户打开Powershell ,然后试一下接下来的这些命令。 (1)查看你当前的位置 pwd Powershell,还有终端,在光标的左边默认会显示你当前所在的目录。你也可以使用pwd ( print working directory )这个命令,查看自己当前所在的位置。 C:UsersAdministrator,就是我当前所在的位置,这是默认打开Powershell 的时候进入到的工作目录,C: 是系统的盘符,这是Windows 特有的, 在Mac 与Linux上面没有盘符,Users 是存储系统里的所有用户文档的地方。Administrator 是当前登录到系统上的用户的名字。这个 C:UsersAdministrator,就是Administrator 这个用户的主目录(Home)。 (2)显示当前目录下东西ls 或者dir 想查看某个目录下面的都有什么东西,用的是ls 命令,在命令的后面可以指定一个目录的路径,这样会显示这个指定路径里的东西,如果直接使用ls ,会显示当前你所在的位置里面的东西。 Windows 的Powershell 会比较详细的显示出目录下面的所有的东西,比如文件与目录的权限,最近更新的时间等等。

在ls 命令后面可以加上一个路径,这样会显示出这个路径下面的东西,这个路径可以是一个绝对的路径,也可以是一个路径的路径。比如要看一下用户主目录下面的所有的东西:view sourceprint? 1. ls desktop 上面用了一个相对的路径,也就是ls 命令会在当前所在的目录下面去查看desktop 这个目录下的东西。如果用绝对的路径,是这样的: view sourceprint? 1. ls C:UsersAdministratordestop 2. 3.注意 :Windows 路径里面用的是反斜线(),不过在Powershell 里面,你也可以使用斜线(/)。 (3)以树状形状显示目录结构tree 格式:tree [x:][path][parameter] 参数解释: /a 指定tree使用字符而不是图形字符显示链接子目录的行 /f 显示每个目录中的文件名 tree

相关主题
文本预览
相关文档 最新文档