1

そこで、私が見つけたスクリプトを使用して、4 台の UPS を監視し、約 15 台のサーバーにシャットダウン信号を送信しようとしています。私は PowerShell を初めて使用するので、複数の UPS ユニットにクエリを実行できるように支援したいと思っています。

スクリプトは次のとおりです: (長いので、ペーストビンの方が簡単だと思いました): http://pastebin.com/Uya5Nkwv

私は次のことを試しましたが、役に立ちませんでした。

PS C:\Users\myuser> get-wmiobject win32_battery | select "JS0745012650American P
ower ConversionSmart-UPS 2200 RM FW:665.6.D USB FW:7.3"

JS0745012650American Power ConversionSmart-UPS 2200 RM FW:665.6.D USB FW:7.3
----------------------------------------------------------------------------

PS C:\Users\myuser> get-wmiobject win32_battery | select EstimatedRunTime where
DeviceID like JS07*
Select-Object : A positional parameter cannot be found that accepts argument 'w
here'.
At line:1 char:37
+ get-wmiobject win32_battery | select <<<<  EstimatedRunTime where DeviceID li
ke JS07*
+ CategoryInfo          : InvalidArgument: (:) [Select-Object], ParameterB
indingException
+ FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell
.Commands.SelectObjectCommand

PS C:\Users\myuser>

基本的に5つのUPがあり、私がそうするとき

get-wmiobject win32_battery

一意の識別子を表示できます。

DeviceID                    : JS0748005250American Power ConversionSmart-UPS 30
                          00 RM FW:666.6.D USB FW:7.3

では、上記のスクリプトですべての UPSを照会するにはどうすればよいでしょうか? その方法を理解したら、シャットダウン シグナル/csv ファイルを理解できると確信しています。

4

2 に答える 2

0

そのスクリプトを変更して、コンピューター名のリストを反復処理します。94 行目から foreach ステートメントを挿入し、スクリプトの最後にforeach ($computer in 'pc1','pc2','pc3','pc4') {クロージングを挿入します。}これにより、指定した各コンピューターでスクリプトが循環します。

于 2013-10-15T18:20:34.690 に答える