Цитата:
Цитата iccup.platoon@vk
А не могли бы Вы конкретно по моему примеру написать? (имена машин А1, А2, ..., А52.) »
|
Код:
wmic.exe /node:А1,А2,…,А52 LogicalDisk where "DriveType=3" get SystemName, Name, FreeSpace
Цитата:
Цитата iccup.platoon@vk
ах да - wmic.exe у меня отсутствует »
|
Ни одной машины с Professional-версией нетути? Тогда держите WSH (само собой — не проверялось):
читать дальше »
Код:
Option Explicit
Const TristateFalse = 0
Const TristateTrue = -1
Const TristateUseDefault = -2
Dim i
Dim strComputer
Dim objSWbemLocator
Dim objSWbemServicesEx
Dim collSWbemObjectSet
Dim objSWbemObjectEx
Set objSWbemLocator = WScript.CreateObject("WbemScripting.SWbemLocator")
For i = 1 To 52
strComputer = "А" & CStr(i)
WScript.Echo String(5 + Len(CStr(20 * 2^40)) + 4, "=")
WScript.Echo "System: " & strComputer
WScript.Echo
If IsEnable(strComputer) Then
Set objSWbemServicesEx = objSWbemLocator.ConnectServer(strComputer, "root\cimv2")
Set collSWbemObjectSet = objSWbemServicesEx.ExecQuery("SELECT Name, FreeSpace FROM Win32_LogicalDisk WHERE DriveType=3")
WScript.Echo String(5 + Len(CStr(20 * 2^40)) + 4, "=")
WScript.Echo "System: " & strComputer
WScript.Echo
WScript.Echo PadLeft("Drive", 5), PadLeft("Free space", Len(CStr(20 * 2^40)) + 4)
WScript.Echo String(5, "-"), String(Len(CStr(20 * 2^40)) + 4, "-")
For Each objSWbemObjectEx In collSWbemObjectSet
With objSWbemObjectEx
WScript.Echo PadLeft(.Name, 5), PadRight(FormatNumber(.FreeSpace, 0, TristateFalse, TristateFalse, TristateTrue), Len(CStr(20 * 2^40)) + 4)
End With
Next
WScript.Echo String(5, "-"), String(Len(CStr(20 * 2^40)) + 4, "-")
WScript.Echo
Set collSWbemObjectSet = Nothing
Set objSWbemServicesEx = Nothing
Else
WScript.Echo "Can't ping machine [" & strComputer & "]."
WScript.Echo
End If
Next
Set objSWbemLocator = Nothing
WScript.Quit 0
'=============================================================================
'=============================================================================
Function PadLeft(anyValue, intSize)
PadLeft = Left(CStr(anyValue) & Space(intSize), intSize)
End Function
'=============================================================================
'=============================================================================
Function PadRight(anyValue, intSize)
PadRight = Right(Space(intSize) & CStr(anyValue), intSize)
End Function
'=============================================================================
'=============================================================================
Function IsEnable(strAddress)
Dim objSWbemObjectEx
IsEnable = False
For Each objSWbemObjectEx In objSWbemLocator.ConnectServer(".", "root\cimv2").ExecQuery("SELECT * FROM Win32_PingStatus WHERE Address = '" & strAddress & "'")
With objSWbemObjectEx
If Not IsNull(.StatusCode) Then
If .StatusCode = 0 Then
IsEnable = True
End If
End If
End With
Next
End Function
'=============================================================================
Запускать, разумеется, под консольной версией — «cscript.exe».
|