<Power Shell>21 如何从远程客户端快速提取信息

简介:

我们可以通过提供的cmdlet来帮助快速提取信息从远程客户端。
然后,我们可以拥有的PowerShell的标志值将被视为一个可接受的范围内。


下面的代码是一个小例子,我将展示给大家如何提取客户端的硬盘可用空间。
这个简单的例子将展示使用颜色标记潜在的问题。

这有一个开关参数cmdlet - passthru。
因为这个代码是用于不是特别喜欢PowerShell用户,默认的行为是显示彩色信息。

使用passthru参数抑制使用写主机和允许对象被传递到管道。

在这种情况下,我们有对象。通过这样做,我们有能力继续通过我们的对象进入管道。下面是一些例子:



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
Function  Get-DiskInfo
{
     Param (
         $ComputerName  $env:COMPUTERNAME ,
         [Switch] $PassThru
     )
                                                                                                                                                    
     Function  Get-ColorSplat
     {
         # Create color Splats
         $C1  = @{ForegroundColor= "Green" ;BackgroundColor= "DarkGreen" }
         $C2  = @{ForegroundColor= "Yellow" ;BackgroundColor= "DarkYellow" }
         $C3  = @{ForegroundColor= "White" ;BackgroundColor= "DarkRed" }
         $C4  = @{ForegroundColor= "Blue" ;BackgroundColor= "Gray" }
                                                                                                                                                    
         # Create color constants in the previous scope.
         New-Variable  -Name  "Good"  -Value  $C1  -Scope  1
         New-Variable  -Name  "Problem"  -Value  $C2  -Scope  1
         New-Variable  -Name  "Bad"  -Value  $C3  -Scope  1
         New-Variable  -Name  "Header"  -Value  $C4  -Scope  1
     # End: Get-ColorSplat
                                                                                                                                                    
     Function  Write-ColorOutput
     {
                                                                                                                                                    
         Param ( $DiskInfo )
                                                                                                                                                    
         # Display the headers.
         Write-host  "DiskInfo | FreeSpaceGB | PercentFreeSpace"
                                                                                                                                                    
         # Display the data.
         ForEach  ( $D  in  $DiskInfo )
         {
             $DeviceID  $D .DeviceID.PadRight(6)
             $FSGB  $D .FreeSpaceGB.ToString().PadRight(6).Remove(5)
             $PFS  $D .PercentFS.ToString().PadRight(6).Remove(5)
                                                                                                                                                    
             If  ( $D .PercentFS  -ge  80)
             Write-Host  "$($DeviceID)   | $($FSGB)       | $($PFS)"  @Good  }
             ElseIf  (( $D .PercentFS  -lt  80)  -and  ( $D .PercentFS  -GE  60))
             Write-Host  "$($DeviceID)   | $($FSGB)       | $($PFS)"  @Problem  }
             Else
             Write-Host  "$($DeviceID)   | $($FSGB)       | $($PFS)"  @Bad  }
                                                                                                                                                    
         }
     }
                                                                                                                                                    
     # Get the color splats
     Get-ColorSplat
                                                                                                                                                    
     $DiskInfo  Get-WmiObject  Win32_LogicalDisk  -ComputerName  $ComputerName  |
      Select-Object  -Property  DeviceID,
      @{Name= "FreeSpaceGB" ;Expression={ $_ .Freespace/1GB}},
      @{Name= "PercentFS" ;Expression={( $_ .FreeSpace/ $_ .Size)*100}}
                                                                                                                                                    
      If  (! $PassThru ) { Write-ColorOutput  -DiskInfo  $DiskInfo }
      Else  { Write-Output  $DiskInfo }
}




在这个示例中,我们看到默认的输出不同颜色的信息绘制技术员到硬盘,需要注意

150718281.png


在这个示例中,使用passthru参数和我们再次处理的对象。记得代码和显示信息,是相关的和适合他们的技能水平。


1
2
3
4
5
6
7
8
PS>  Get-DiskInfo  -ComputerName  CantgisPC2  -PassThru  Format-Table  -AutoSize
                                                      
DeviceID      FreeSpaceGB        PercentFS
--------      -----------        ---------
C:       34.6056213378906 31.7261065852248
D:       202.438598632813 84.9355612944946
E:       79.9115943908691 33.5278754613268
Z:       83.1089553833008 8.95466512825099



这几种方法将允许PowerShell的工作人员把重点放在什么需要他们的注意的地方,从而忽略那些不过滤cmdlet的输出。






     本文转自cantgis 51CTO博客,原文链接:http://blog.51cto.com/cantgis/1302108,如需转载请自行联系原作者




相关文章
|
8月前
|
域名解析 网络协议 Linux
【Shell 命令集合 网络通讯 】Linux 设置和管理网络接口配置信息 netconfig命令 使用指南
【Shell 命令集合 网络通讯 】Linux 设置和管理网络接口配置信息 netconfig命令 使用指南
264 1
|
8月前
|
存储 Shell Linux
【Shell 命令集合 文件传输 FTP客户端工具】Linux ncftp 命令使用指南
【Shell 命令集合 文件传输 FTP客户端工具】Linux ncftp 命令使用指南
164 0
|
8月前
|
存储 监控 Linux
【Shell 命令集合 系统管理 】⭐⭐⭐Linux 查看当前正在运行的进程信息 ps命令 使用指南
【Shell 命令集合 系统管理 】⭐⭐⭐Linux 查看当前正在运行的进程信息 ps命令 使用指南
142 0
|
8月前
|
Shell Linux 编译器
【Shell 命令集合 备份压缩 】Linux 提取zip压缩文件的详细信息 zipinfo命令 使用指南
【Shell 命令集合 备份压缩 】Linux 提取zip压缩文件的详细信息 zipinfo命令 使用指南
128 0
|
8月前
|
存储 Shell Linux
【Shell 命令集合 网络通讯 】Linux 显示Unix-to-Unix Copy (UUCP) 系统的状态信息 uustat命令 使用指南
【Shell 命令集合 网络通讯 】Linux 显示Unix-to-Unix Copy (UUCP) 系统的状态信息 uustat命令 使用指南
91 0
|
8月前
|
存储 Unix Shell
【Shell 命令集合 系统管理 】⭐⭐Linux 显示系统的基本信息 uname命令 使用指南
【Shell 命令集合 系统管理 】⭐⭐Linux 显示系统的基本信息 uname命令 使用指南
134 1
|
8月前
|
存储 Linux Shell
【Shell 命令集合 系统设置 】Linux 获取指定模块的元信息 minfo命令 使用指南
【Shell 命令集合 系统设置 】Linux 获取指定模块的元信息 minfo命令 使用指南
75 0
|
8月前
|
监控 网络协议 Linux
【Shell 命令集合 网络通讯 】Linux 显示网络 连接、路由表和网络接口信息 netstat命令 使用指南
【Shell 命令集合 网络通讯 】Linux 显示网络 连接、路由表和网络接口信息 netstat命令 使用指南
224 1
|
8月前
|
JSON Ubuntu Shell
Shell脚本中查询天气信息
Shell脚本中查询天气信息,
153 1
|
8月前
|
存储 弹性计算 运维
自动化收集员工信息的Shell脚本
【4月更文挑战第30天】
75 0