Windows PowerShell 常用命令操作指南

内容分享1天前发布
0 0 0

table {
border-collapse: collapse;
width: 100%;
margin-bottom: 1rem;
}
th, td {
border: 1px solid #ddd;
padding: 8px;
text-align: left;
}
th {
background-color: #f2f2f2;
}
tr:nth-child(even) {
background-color: #f9f9f9;
}
pre {
background-color: #f8f8f8;
padding: 15px;
border-radius: 4px;
overflow-x: auto;
}

1、通过选择开始|运行|PowerShell打开Windows PowerShell。Windows PowerShell提示符默认在用户文件夹的根目录打开。在Windows PowerShell提示符下输入cd c:并回车,切换到C:的根目录。使用dir命令获取C:根目录下所有文件的列表。使用md命令在C:的根目录下创建一个名为mytest的目录。获取C:根目录下所有以字母m开头的文件和文件夹的列表。使用Set – Location命令将工作目录更改为Windows PowerShell工作目录。使用typeperf.exe命令获取与可用字节相关的内存计数器列表。在Windows PowerShell窗口中显示了几个计数器后,按Ctrl + C停止列表显示。使用bcdedit命令显示当前的启动配置(注意必须以管理员权限运行此命令)。将工作目录更改回之前创建的C:mytest目录。在C:mytest目录中创建一个名为mytestfile.txt的文件,并使用fsutil实用程序将文件大小设置为1000字节。使用Get – ChildItem cmdlet获取C:mytest目录中所有文件的目录列表。使用Get – Date cmdlet打印当前日期。使用cls命令清屏。打印Windows PowerShell中内置的所有cmdlet的列表。使用Get – Command cmdlet获取Get – Alias cmdlet。然后输入exit并回车退出Windows PowerShell。

Windows PowerShell 操作命令步骤

以下是按照要求执行操作的命令步骤:


打开Windows PowerShell

:通过开始菜单中的运行,输入

PowerShell

回车。


切换到C:根目录



powershell
cd c:


获取C:根目录下所有文件列表



powershell
dir


在C:根目录下创建目录



powershell
md mytest


获取C:根目录下以字母m开头的文件和文件夹列表



powershell
dir m*


切换到Windows PowerShell工作目录



powershell
Set-Location $pshome


获取与可用字节相关的内存计数器列表



powershell
typeperf "memoryavailable bytes"


停止列表显示

:按

Ctrl + C


显示当前启动配置(需管理员权限)



powershell
bcdedit


切换回C:mytest目录



powershell
Set-Location c:mytest


在C:mytest目录创建mytestfile.txt文件并设置大小为1000字节



powershell
fsutil file createnew mytestfile.txt 1000


获取C:mytest目录中所有文件的目录列表



powershell
Get-ChildItem


打印当前日期



powershell
Get-Date


清屏



powershell
cls


打印Windows PowerShell中内置的所有cmdlet的列表



powershell
Get-Command


获取Get-Alias cmdlet



powershell
Get-Command Get-Alias


退出Windows PowerShell



powershell
exit

2、通过选择“开始”|“运行”|“PowerShell”打开Windows PowerShell。使用Get – Help cmdlet获取关于Get – Help cmdlet的帮助。要获取关于Get – Help cmdlet的详细帮助,请使用 – Detailed开关参数。要检索关于Get – Help cmdlet的技术信息,请使用 – Full开关参数。如果你只想获取命令使用示例的列表,请使用 – Examples开关参数。使用Get – Help cmdlet和带有星号(*)通配符的about名词来获取所有信息性帮助主题的列表。获取所有与get cmdlet相关的帮助主题。获取所有与set cmdlet相关的帮助主题。然后输入exit并按Enter键退出Windows PowerShell。

打开Windows PowerShell:选择“开始”|“运行”,输入“PowerShell”并回车。

获取关于

Get-Help

cmdlet 的帮助:

powershell
Get-Help Get-Help

获取关于

Get-Help

cmdlet 的详细帮助:

powershell
Get-Help Get-Help -Detailed

检索关于

Get-Help

cmdlet 的技术信息:

powershell
Get-Help Get-Help -Full

获取命令使用示例的列表:

powershell
Get-Help Get-Help -Examples

获取所有信息性帮助主题的列表:

powershell
Get-Help about*

获取所有与

get

cmdlet 相关的帮助主题:

powershell
Get-Help get*

获取所有与

set

cmdlet 相关的帮助主题:

powershell
Get-Help set*

退出Windows PowerShell:

powershell
exit

3、打开Windows PowerShell控制台,使用Get – Alias cmdlet检索计算机上为Get – ChildItem定义的所有别名列表。请使用值为Get – ChildItem的 – Definition参数来显示Get – ChildItem的别名,并写出具体执行命令。


打开Windows PowerShell控制台后,在控制台中输入命令“gal –definition Get-ChildItem”,执行该命令后会显示Get-ChildItem的别名,结果可能如下:

CommandType     Name            Version
-----------     ----            -------
Alias           dir -> Get-ChildItem
Alias           gci -> Get-ChildItem
Alias           ls -> Get-ChildItem

4、使用Get – ChildItem cmdlet的gci别名,获取根目录中包含的文件和文件夹列表,应该在何处输入什么命令?

在Windows PowerShell提示符处输入gci,即可获取根目录中文件和文件夹的列表。

5、为了更快地识别大文件,将输出通过管道传递给 Where-Object cmdlet,并指定 -gt 比较运算符,值设为 1000 来评估长度属性。请写出对应的命令并说明该命令的作用。

对应的命令为

gci | Where length -gt 1000

。该命令的作用是筛选出文件长度大于 1000 的文件。

其中:

gci


Get-ChildItem

的别名,用于获取文件和文件夹信息。

通过管道

|

将结果传递给

Where-Object

(这里使用了简化写法

Where

)。

筛选出

length

属性大于

1000

的文件。

6、要清除 Windows PowerShell 窗口中杂乱的数据,请使用 cls 命令来清屏。

这句话表述正确,在 Windows PowerShell 中,使用

cls

命令可以清除当前屏幕上的内容。

7、使用Get – Alias cmdlet来解析mred别名所指向的cmdlet。命令为gal mred

在你的机器上可能未定义

mred

别名,执行此命令会得到以下错误信息:


gal : This command cannot find a matching alias because an alias with the name 'mred' does not exist.
(此命令找不到匹配的别名,因为名为 'mred' 的别名不存在。)

8、在Windows PowerShell中,如何清除当前屏幕上的内容?

在Windows PowerShell中,你可以直接输入

Clear - Host

命令来清除当前屏幕上的内容,让界面变得干净,以便输入新的命令和查看新的输出。输入

clear - host

也能实现同样的效果,因为PowerShell的命令不区分大小写。

9、使用Get – Member cmdlet从Get – ChildItem cmdlet中检索属性和方法列表。命令为:Get-ChildItem | Get-Member -membertype property

该命令用于获取

Get-ChildItem

cmdlet 返回对象的属性列表。运行此命令后,会输出对象的属性相关信息,包括属性名称、成员类型(这里是

Property

)和属性定义等内容。

10、确定一个可以与Where – Object cmdlet一起使用的属性,以查找文件被修改的日期。

LastWriteTime或LastWriteTimeUtc

11、请写出使用 Where – Object cmdlet 并包含 LastWriteTime 属性对 Get – ChildItem 命令获取的结果进行筛选的示例代码


Get-ChildItem | Where-Object { $_.LastWriteTime -gt (Get-Date).AddDays(-7) }


注:此示例筛选出最后写入时间在最近7天内的项,这里条件可按需修改

12、在Windows PowerShell控制台中,如何使用向上箭头键召回上一条命令,并指定 -gt 比较运算符,从之前的文件列表中选择一个最近的日期来确保查询会返回结果?示例命令:Get-ChildItem | Where LastWriteTime -gt “12/25/2014”

在Windows PowerShell控制台操作步骤如下:

按下向上箭头键,召回上一条命令;

在命令中指定

-gt

比较运算符;

从之前文件列表里选一个较近日期替换示例中的

"12/25/2014"

,以保证查询有结果,如命令可写成:


Get-ChildItem | Where LastWriteTime -gt "所选日期"

13、使用向上箭头键调出上一条命令。现在将 Get-ChildItem cmdlet 指向你硬盘上的特定文件夹,例如 C:fso 。你可以使用你机器上存在的任何文件夹。并筛选出该文件夹中最后写入时间晚于 2014 年 12 月 25 日的项目,给出命令示例。

操作描述

此操作描述了在 Windows PowerShell 中操作命令的步骤:

通过向上箭头键获取上一条命令。


Get-ChildItem

命令指定到特定文件夹(如

C:fso

)。

筛选出最后写入时间晚于 2014 年 12 月 25 日的项目。

命令示例


Get-ChildItem "C:fso" | Where LastWriteTime -gt "12/25/2014"

14、再次使用向上箭头键调出上一条命令。在Get – ChildItem cmdlet中添加 – Recurse开关参数。如果上一个文件夹不是嵌套的,那么你可以切换到不同的文件夹,例如深度嵌套的Windows文件夹。示例命令:Get – ChildItem – Recurse C:Windows | where lastwritetime -gt “12/12/14”。请描述具体操作及示例命令的作用。

再次使用向上箭头键调出上一条命令,在

Get-ChildItem

命令后添加

-Recurse

参数以递归遍历文件夹。若上一个指定的文件夹不是嵌套结构,可更换为 Windows 文件夹等嵌套文件夹。

示例命令为:


Get-ChildItem -Recurse C:Windows | Where-Object { $_.LastWriteTime -gt "12/12/14" }

该命令会递归遍历 C 盘 Windows 文件夹,并筛选出最后写入时间晚于 2014 年 12 月 12 日的文件。

15、打开 Windows PowerShell 控制台,使用 New – Object cmdlet 创建 wshNetwork 对象的实例。使用 -ComObject 参数,并为其提供 wshNetwork 对象的程序 ID,即 wscript.network,将结果存储在名为 $wshnetwork 的变量中。


打开 Windows PowerShell 控制台,然后执行以下命令创建 wshNetwork 对象实例并存储在变量中:

$wshnetwork = New-Object -comobject "wscript.network"

16、请使用$wshnetwork变量中包含的wshNetwork对象,通过其EnumPrinterConnections方法打印本地计算机上定义的打印机连接列表。

使用

$wshnetwork

变量中的

wshNetwork

对象,调用其

EnumPrinterConnections

方法可以打印本地计算机上已定义的打印机连接列表,具体命令为:


$wshnetwork.EnumPrinterConnections()

17、使用 wshNetwork 对象的 EnumNetworkDrives 方法打印本地计算机上定义的网络连接列表,写出具体操作步骤。

操作步骤

打开 Windows PowerShell 控制台,按以下步骤操作:

首先使用

New-Object

命令创建

wshNetwork

对象实例,并存储在

$wshnetwork

变量中,代码如下:

powershell
$wshnetwork = New-Object -ComObject "WScript.Network"

然后使用

$wshnetwork

变量调用

EnumNetworkDrives

方法,打印本地计算机上定义的网络连接列表,命令如下:

powershell
$wshnetwork.EnumNetworkDrives()

18、按两次向上箭头键调出 $wshnetwork.EnumPrinterConnections() 命令。使用 $colPrinters 变量来保存该命令返回的打印机集合,写出对应的代码。

使用

$colPrinters

变量来保存

$wshnetwork.EnumPrinterConnections()

命令返回的打印机集合,代码为:


$colPrinters = $wshnetwork.EnumPrinterConnections()

19、使用向上箭头键调出 $wshnetwork.EnumNetworkDrives() 命令。按 Home 键将插入点移到行首。修改该命令,使它将命令返回的驱动器集合存储在名为 $colDrives 的变量中。

使用向上箭头键调出

$wshnetwork.EnumNetworkDrives()

命令,按

Home

键将插入点移到行首,修改命令为:


$colDrives = $wshnetwork.EnumNetworkDrives()

这样就把命令返回的驱动器集合存储在了

$colDrives

变量中。

20、使用 $userName 变量来存储通过查询 wshNetwork 对象的 username 属性返回的名称,写出对应的代码。

使用

$userName

变量保存从

wshNetwork

对象的

UserName

属性查询得到的名称,代码为:


$userName = $wshnetwork.UserName

21、如何使用一个变量来存储通过查询 wshNetwork 对象的 UserDomain 属性所返回的名称,写出对应的代码。

使用

$userDomain

变量保存从

wshNetwork

对象的

UserDomain

属性查询返回的名称,代码为:


$userDomain = $wshnetwork.UserDomain

22、如何使用变量来存储通过查询 wshNetwork 对象的 ComputerName 属性所返回的名称?请写出相应代码。

该操作是将通过查询

wshNetwork

对象的

ComputerName

属性得到的计算机名称存储到

$computerName

变量中,代码为:


$computerName = $wshnetwork.ComputerName

23、使用New – Object cmdlet创建wshShell对象的实例。要求使用 – ComObject参数,并为其指定wshShell对象的程序ID,即wscript.shell。将创建的对象实例结果存储在名为$wshShell的变量中,请写出对应的代码。

使用

New-Object

命令创建

wshShell

对象实例,指定

-ComObject

参数,程序 ID 为

wscript.shell

,将结果存于

$wshShell

变量,代码为:


$wshShell = New-Object -ComObject "wscript.shell"

24、使用 wshShell 对象的 Popup 方法弹出一个显示域名、用户名和计算机名的对话框。代码为 $wshShell.Popup($userDomain+”$userName on $computerName”),请分析该代码是否正确并说明原因。

此代码存在错误。在许多编程语言里,变量前使用

$

符号通常是 PHP 语言的语法,但

wshShell

是 Windows Script Host(WSH)中使用的对象,WSH 主要使用 VBScript 或 JScript 来编写脚本,并非 PHP。在 VBScript 中,变量前不需要

$

符号,并且字符串拼接使用

&

符号;在 JScript 中,字符串拼接使用

+

符号。

正确的 VBScript 示例代码如下:


Set wshShell = CreateObject("WScript.Shell")
userDomain = "yourDomain"
userName = "yourUserName"
computerName = "yourComputerName"
wshShell.Popup userDomain & " " & userName & " on " & computerName

正确的 JScript 示例代码如下:


var wshShell = new ActiveXObject("WScript.Shell");
var userDomain = "yourDomain";
var userName = "yourUserName";
var computerName = "yourComputerName";
wshShell.Popup(userDomain + " " + userName + " on " + computerName);

25、使用wshShell对象的Popup方法弹出一个对话框,显示$colPrinters变量中保存的打印机集合。判断代码$wshShell.Popup($colPrinters)是否正确,若不正确说明原因。

代码

$wshShell.Popup($colPrinters)


$colPrinters

中只有一个打印机时可以正常显示,但如果

$colPrinters

中有多个打印机,会出现错误。

修复该错误需要:

添加循环遍历打印机集合

然后逐个显示或拼接显示

26、使用 wshShell 对象的 Popup 方法弹出一个对话框,显示 $colDrives 变量中保存的驱动器集合,写出相应代码。

$wshShell.Popup($colDrives)

27、打开 Windows PowerShell 控制台,通过将结果管道传输到 Get – Member cmdlet 来获取可用于 Get – ChildItem cmdlet 的所有属性列表。为了仅筛选出属性,将结果管道传输到 Where – Object cmdlet 并指定成员类型等于属性。(写出命令)


Get-ChildItem | Get-Member | Where-Object { $_.MemberType -eq 'Property' }

28、要确定计算机上是否安装了其他证书,请再次使用 Get – ChildItem cmdlet,但这次要指定 – recurse 参数。(写出命令)

Get-ChildItem -Recurse

29、打开 Windows PowerShell 控制台,使用 New – PSDrive cmdlet 创建一个到别名提供程序的驱动器映射。新的 PS 驱动器名称为 al,-PSProvider 参数为 alias,根目录为点号 (.)。(写出命令)

New-PSDrive -Name al -PSProvider alias -Root .

30、将工作位置更改为名为 al 的新 PS 驱动器。为此,请使用 Set – Location cmdlet 的别名 sl。(写出命令)

sl al:

31、使用Get – ChildItem cmdlet的别名gci,通过使用sort别名将结果对象传递到Sort – Object cmdlet中,并指定按name属性进行排序。(写出命令)

gci | sort -Property name

32、将位置更改回 C 盘。为此,请使用 sl 别名并提供 C: 参数。(写出命令)

sl c:

33、移除“al”的 PS 驱动器映射。为此,请使用 Remove – PSDrive cmdlet 并提供要移除的 PS 驱动器的名称。(写出命令)

Remove-PSDrive al

34、使用Get – Item cmdlet获取所有环境变量的列表。使用 – Path参数并将env:作为值。(写出命令)

Get-Item -Path env:

35、按两次向上箭头键回到 Get-Item -Path env: 命令。使用 Home 键将光标移到行首。添加一个名为 $objEnv 的变量,并用它来保存 Get-Item -Path env: 命令返回的对象。(写出该命令)

$objEnv = Get-Item -Path env:

36、从环境对象的成员列表中找到 count 属性。使用此属性打印出环境变量的总数。(写出命令)

$objEnv.Count

37、要检索环境变量的实际数量,请在方法末尾使用空括号。(写出命令)

$objEnv.Get_count()

38、如果你想确切知道 $objEnv 变量中包含的对象类型,请使用 GetType 方法(写出命令)。

$objEnv.GetType()

39、在使用 Windows PowerShell 远程操作练习中,按步骤完成以下操作:1. 以没有管理员权限的用户账户登录计算机;2. 打开 Windows PowerShell 控制台;3. 注意 Windows PowerShell 控制台提示;4. 使用变量 $cred 存储 Get – Credential cmdlet 的结果,指定管理员凭据存储在 $cred 变量中;5. 使用 Enter – PSSession cmdlet 打开远程 Windows PowerShell 控制台会话,使用 $cred 变量中存储的凭据,以 localhost 作为远程计算机的名称;6. 注意 Windows PowerShell 控制台提示的变化;7. 使用 whoami 命令验证当前上下文;8. 使用 exit 命令退出远程会话,使用 whoami 命令验证用户上下文是否改变;9. 使用 WMI 检索本地计算机的 BIOS 信息,使用 $cred 变量中存储的替代凭据;10. 将 WMI 命令放入 Invoke – Command 的 – ScriptBlock 参数中,指定本地计算机作为 – ComputerName 的值,并使用 $cred 变量中存储的凭据;11. 按向上箭头键检索上一个命令并删除凭据参数;12. 创建一个计算机名数组,存储在变量 $cn 中;13. 使用 Invoke – Command 同时在所有三台计算机上运行 WMI 命令。

手动以无管理员权限的用户账户登录计算机。

手动打开 Windows PowerShell 控制台。

手动注意控制台提示。

$cred = Get-Credential nwtradersadministrator

Enter-PSSession -ComputerName localhost -Credential $cred

手动注意控制台提示变化,如变为

[localhost]: PS C:UsersadministratorDocuments>

[localhost]: PS C:UsersadministratorDocuments> whoami

手动使用

exit

命令退出,再使用

whoami

命令验证。

gwmi -Class win32_bios -cn localhost -Credential $cred

Invoke-Command -cn localhost -script {gwmi -Class win32_bios} -cred $cred

手动按向上箭头键检索上一个命令并删除

-cred $cred

参数,变为

Invoke-Command -cn localhost -script {gwmi -Class win32_bios}

$cn = $env:COMPUTERNAME,"localhost","127.0.0.1"

Invoke-Command -cn $cn -script {gwmi -Class win32_bios} -cred $cred

© 版权声明

相关文章

暂无评论

none
暂无评论...