前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Windows PowerShell 实战指南-动手实验-9.8

Windows PowerShell 实战指南-动手实验-9.8

作者头像
BigYoung小站
发布2020-05-05 22:41:55
6970
发布2020-05-05 22:41:55
举报
文章被收录于专栏:BigYoung小站BigYoung小站

任务1:

下面的命令是否可以获取特定域中所有计算机上已经安装的Hotfix的清单?阐述原因

Get-HotFix -ComputerName (Get-ADComputer -Filter * | Select-Object -ExpandProperty name)

解答:

Get-Hotfix 的 -ComputerName 获取管道类型是:String[],通过()传递过来的是类型也是String.所以该命令可以运行,并且结果正确。

-ComputerName <String[]> 指定远程计算机。默认值为本地计算机。 键入远程计算机的 NetBIOS 名称、Internet 协议 (IP) 地址或完全限定的域名。 此参数不依赖于 Windows PowerShell 远程处理。即使你的计算机未配置为运行远程命令,你也可以使用 Get-Hotfix 的 ComputerName 参数。 是否必需? False 位置? named 默认值 Local computer 是否接受管道输入? true (ByPropertyName) 是否接受通配符? False (Get-ADComputer -Filter * | Select-Object -ExpandProperty name) | gm TypeName:System.String

任务2:

下面的命令是否可以从相同的计算机上已经安装的Hotfix的清单?阐述原因

Get-ADComputer -Filter * | Get-HotFix

解答:

Get-Hotfix 命令支持ByPropertyName 参数,并且Get-ADComputer -Filter *传递的参数也是string类型的。所以该命令可以执行。 具体信息查看以下内容:

help Get-Hotfix -full 查看以下信息

-ComputerName <String[]> 指定远程计算机。默认值为本地计算机。 键入远程计算机的 NetBIOS 名称、Internet 协议 (IP) 地址或完全限定的域名。 此参数不依赖于 Windows PowerShell 远程处理。即使你的计算机未配置为运行远程命令,你也可以使用 Get-Hotfix 的 ComputerName 参数。 是否必需? False 位置? named 默认值 Local computer 是否接受管道输入? true (ByPropertyName) 是否接受通配符? False

Get-ADComputer -Filter * | gm 查看以下信息:

TypeName:Microsoft.ActiveDirectory.Management.ADComputer Name MemberType Definition ---- ---------- ---------- Contains Method bool Contains(string propertyName) Equals Method bool Equals(System.Object obj) GetEnumerator Method System.Collections.IDictionaryEnumerator GetEnumerator() GetHashCode Method int GetHashCode() GetType Method type GetType() ToString Method string ToString() Item ParameterizedProperty Microsoft.ActiveDirectory.Management.ADPropertyValueCollection Item(string propertyName) {get;} DistinguishedName Property System.String DistinguishedName {get;set;} DNSHostName Property System.String DNSHostName {get;set;} Enabled Property System.Boolean Enabled {get;set;} Name Property System.String Name {get;} ObjectClass Property System.String ObjectClass {get;set;}

任务3:

下面的命令是否可以获取到域中计算机上已经安装的HotFix清单?阐述原因。

Get-ADComputer -Filter * | Select-Object @{l='ComputerName';e={$_.Name}} | Get-HotFix

解答:

通过Get-ADComputer -Filter * | Select-Object @{l='ComputerName';e={$_.Name}}传递过来的是String类型,正好符合Get-FoxHit的name参数接收要求。所以能正确执行,具体信息如下:

Get-ADComputer -Filter * | Select-Object @{l='ComputerName';e={$_.Name}} | gm 查看以下信息;

TypeName:Selected.Microsoft.ActiveDirectory.Management.ADComputer Name MemberType Definition ---- ---------- ---------- Equals Method bool Equals(System.Object obj) GetHashCode Method int GetHashCode() GetType Method type GetType() ToString Method string ToString() ComputerName NoteProperty System.String ComputerName=WIN-JFDKC82CU4F

任务4:

使用管道参数绑定来写一个命令获取域中每一台计算机正在运行的进程的清单。不要使用括号。

解答:

Get-ADComputer -Filter * | Select-Object @{l='ComputerName';e={$_.name}} | Get-Process

解答思路:

因为Get-ADComputer -Filter * 只能传递一个name属性的ComputerName(域内ad电脑名)的Sting类型,但是Get-Process只能接收ComputerName属性的String类型管道传递,所以我们通过Select-Object @{l='ComputerName';e={$_.name}},把name转换成Get-Process能接收ComputerName属性的String类型管道传递值。

任务5:

可以使用括号而不要使用管道输入方法来获取域中每一台计算机上已经安装的服务清单。

解答:

Get-Service -ComputerName(Get-ADComputer -Filter * | Select-Object name -ExpandProperty name)

任务6:

确认命令是否可以正常运行,并阐述其原因。

Get-ADComputer -Filter * | Select-Object @{l='ComputerName';e={$_.name}} | Get-WmiObject -Class Win32_BIOS

解答:

不能正常执行,因为Get-WmiObject 命令不支持管道输入。具体信息如下:

help Get-WmiObject -full可以查看到以下信息:

输入 None 不能通过管道将输入传递给 Get-WmiObject。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2017-08-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 BigYoung小站 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档