<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,如需转载请自行联系原作者




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值