Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Скриптовые языки администрирования Windows (http://forum.oszone.net/forumdisplay.php?f=102)
-   -   Получение статуса компьютера через батник по сети. (http://forum.oszone.net/showthread.php?t=141593)

Serjione 01-06-2009 18:05 1132424

Получение статуса компьютера через батник по сети.
 
Как я могу узнать через батник по сети выключен ли комп или нет, чтобы в соответствии с полученным результатом выполнить те или иные действия. Спасибо.

Petya V4sechkin 01-06-2009 18:14 1132431

Serjione, если ICMP разрешен (пинг):
Код:

Ping -n 1 -w 1 имя_или_IP_компа >nul
If %ErrorLevel%==0 (
  Echo Пинг есть - комп включен.
) Else (
  Echo Пинга нет - комп выключен.
)

Или пример в теме:
[решено] Быстрое выключение удаленных компов через shutdown

Serjione 01-06-2009 18:37 1132447

Petya V4sechkin, по сети через батник можно узнать сколько свободного места на флешке и узнать дан ему шаринг или нет, и если нет то дать ?

Serjione 02-06-2009 13:43 1133006

Petya V4sechkin, запрос насчет флешки может через WMI возможно сделать ?

Petya V4sechkin 02-06-2009 17:01 1133177

Цитата:

Цитата Serjione
по сети через батник можно узнать сколько свободного места на флешке

В общем случае для любых съемных дисков:
Код:

WMIC /Node:"имя_компа" LogicalDisk Where "DriveType = 2 And (MediaType = 0 Or MediaType = 11 Or MediaType Is Null)" Get Caption, Description, FreeSpace, Size, VolumeName

Serjione 03-06-2009 10:30 1133709

Petya V4sechkin, в батнике паузу на опреденненное время задавать можно ? Насчет приведенного выше вами кода WMI, батник полученные данные может прочесть, чтобы исходя из размера свободного места на флешке выпонить те или иные действия ? Может определить WMI дан ли общий доступ флешке или нет ?

Medic84 03-06-2009 16:14 1134035

Цитата:

Цитата Serjione
в батнике паузу на опреденненное время задавать можно ? »

Помоему пауза делается командой Pause

Petya V4sechkin 03-06-2009 16:14 1134036

Цитата:

Цитата Serjione
в батнике паузу на опреденненное время задавать можно ?

Пауза в пакетном файле

Цитата:

Цитата Serjione
Насчет приведенного выше вами кода WMI, батник полученные данные может прочесть, чтобы исходя из размера свободного места на флешке выпонить те или иные действия ? Может определить WMI дан ли общий доступ флешке или нет ?

Пример:
Код:

@Echo Off
SetLocal EnableExtensions

For /F "Skip=1 Tokens=2,3 Delims=," %%I In ('WMIC /Node:"имя_компа" LogicalDisk Where "DriveType = 2 And (MediaType = 0 Or MediaType = 11 Or MediaType Is Null)" Get Caption^, FreeSpace^, Size /Format:CSV ^| Find ","') Do (
  Echo На диске %%I свободно %%J байт
  WMIC /Node:"имя_компа" Share Where "Path Like '%%I%%'" Get Name, Path
)

Внутри цикла переменная %%I содержит букву диска, %%J - свободное место (с помощью оператора If можно выполнить действия по условию). Команда WMIC Share выводит список шар, у которых путь начинается с заданной буквы диска.

Serjione 03-06-2009 21:01 1134253

Petya V4sechkin, спасибо за предыдущий ответ, можно по сети дать шаринг флешке и в Sharing permissions пользователю Everyone дать разрешение на change ?

Medic84, команда Pause есть верно, только через нее конкретное время ожидания задать не возможно.

Petya V4sechkin 04-06-2009 13:38 1134827

Цитата:

Цитата Serjione
можно по сети дать шаринг флешке и в Sharing permissions пользователю Everyone дать разрешение на change ?

[решено] Создание сетевой папки

Serjione 04-06-2009 21:15 1135245

Petya V4sechkin, этот код

For /F "Skip=1 Tokens=2,3 Delims=," %%I In ('WMIC /Node:"Sergey" LogicalDisk Where "DriveType = 2 And (MediaType = 0 Or MediaType = 11 Or MediaType Is Null)" Get Caption, FreeSpace, Size /Format:CSV | Find ","')

выдает:
was unexpected at this time

хотя отдельно этот код

WMIC /Node:"Sergey" LogicalDisk Where "DriveType = 2 And (MediaType = 0 Or MediaType = 11 Or MediaType Is Null)" Get Caption, FreeSpace, Size /Format:CSV | Find "," работает.

Petya V4sechkin 05-06-2009 11:09 1135617

Serjione, символы ^ куда у вас делись? Решили, что они не нужны?

Serjione 05-06-2009 19:59 1136045

Petya V4sechkin, с символами ругается что синтаксис некорректен.

Petya V4sechkin 08-06-2009 09:58 1138023

Serjione, код из 8-го поста работает в XP, 2003 и Vista.
В Win 7 Beta опция /Format:CSV выдает ошибку.

Вот еще вариант (добавил условие FreeSpace Is Not Null для исключения пустых кардридеров):
Код:

@Echo Off
SetLocal EnableExtensions

For /F "Tokens=1,2 Delims= " %%I In ('WMIC /Node:"имя_компа" LogicalDisk Where "DriveType = 2 And (MediaType = 0 Or MediaType = 11 Or MediaType Is Null) And FreeSpace Is Not Null" Get Caption^, FreeSpace^, Size ^| Find ":"') Do (
  Echo На диске %%I свободно %%J байт
  WMIC /Node:"имя_компа" Share Where "Path Like '%%I%%'" Get Name, Path
)


Serjione 08-06-2009 10:53 1138058

Не знаю я как этот код работает, у меня не прокатило, запустив отдельно

WMIC /Node:"Sergey" LogicalDisk Where "DriveType = 2 And (MediaType = 0 Or MediaType = 11 Or MediaType Is Null) And FreeSpace Is Not Null" Get Caption^, FreeSpace^, Size ^| Find ":"

получаю Invalid Get Expression

Petya V4sechkin 08-06-2009 10:55 1138062

Serjione, работает целиком в .cmd файле, а не отдельно.

Serjione 08-06-2009 12:58 1138187

Petya V4sechkin, батник выпоняется в целом без ошибок, только до этой строки

WMIC /Node:"имя_компа" Share Where "Path Like '%%I%%'" Get Name, Path

не доходит, хотя флешка вставлена, и свободное место на ней есть.

Serjione 11-06-2009 22:18 1141290

Petya V4sechkin , разобрался что к чему, еще один момент остался, этот запрос

WMIC /Node:"имя компа" Share Where "Path Like '%%I%%'" Get Name, Path на true в случае если имеется шаринг и false в обратном случае можно переиначить ?

Petya V4sechkin 12-06-2009 11:24 1141546

Serjione, можно так (перепишу батник полностью):
Код:

@Echo Off
SetLocal EnableExtensions EnableDelayedExpansion

For /F "Tokens=1,2 Delims= " %%I In ('WMIC /Node:"имя_компа" LogicalDisk Where "DriveType = 2 And (MediaType = 0 Or MediaType = 11 Or MediaType Is Null) And FreeSpace Is Not Null" Get Caption^, FreeSpace^, Size ^| Find ":"') Do (
  Echo На диске %%I свободно %%J байт
  WMIC /Node:"имя_компа" Share Where "Path Like '%%I%%'" Get Path 2>nul | Find ":" >nul
  If !ErrorLevel!==0 (
    Echo Есть шара на %%I
  ) Else (
    Echo Нет шары на %%I
  )
)

Опция EnableDelayedExpansion нужна, чтобы внутри цикла использовать переменную ErrorLevel. В конструкции 2>nul | Find ":" >nul результат выполнения WMIC по каналу передается команде Find (с полным скрытием вывода на экран), а она возвращает значение в ErrorLevel (нашла/не нашла).

Serjione 14-06-2009 03:47 1142728

Petya V4sechkin, спасибо за предыдущий ответ. WMI позволяет определить через батник размер файла на диске ?

Petya V4sechkin 14-06-2009 11:39 1142845

Цитата:

Цитата Serjione
WMI позволяет определить через батник размер файла на диске ?

Команда Dir позволяет:
Код:

@Echo Off

Set FPath=путь_к_файлу
Set FName=имя_файла

If Not Exist "%FPath%\%FName%\*" (
  For /F "Tokens=3 Delims= " %%K In ('Dir /-C "%FPath%\%FName%" ^| Find /I "%FName%"') Do (
    Echo Размер файла %FPath%\%FName% %%K байт
  )
)

Путь к файлу может быть и сетевым: \\имя_компа\имя_шары

Serjione 18-12-2009 18:29 1298727

По сети дать шаринг флешке через VBScript используя WMI можно ?
Этот код пока не проходит.

Sub CreateRemoteShare (strComp, strFolder, strShare, strInfo)
Set objWMI = GetObject("winmgmts:{impersonationLevel=impersonate}!\\имя компа\root\cimv2")


Время: 03:02.

Время: 03:02.
© OSzone.net 2001-