Пакетный пассивный кластерный узел Win2012R2 - PullRequest
0 голосов
/ 13 июня 2018

Я пытаюсь создать пакетный скрипт, который использует утилиту кластера для определения VARIABLE1.

Первый IF дает идеальный результат - если COMPUTERNAME не указан в списке, VARIABLE1 установлен.

Проблема в том, что если ERRORLEVEL = 0. Тогда он должен найти строки, начинающиеся с «WINSV», и исключить% COMPUTERNAME%

cluster node | findstr /r "WINSV*" | findstr /v "%COMPUTERNAME%" 

Возвращает следующее:

WINSV9999         1 Up

Команда «узел кластера» возвращает:

    Node           Node ID Status
-------------- ------- ---------------------
WINSV9999         1 Up
WINSV9998         2 Up

Единственное, чего сейчас не хватает, так это как вывести только первые 8 символов в переменную VARIABLE1.Любая подсказка, чего там не хватает?Спасибо за помощь.

    set CLUSTERGROUP=CLUSTERNAME
cluster group | find /I "%CLUSTERGROUP%" | find /I "%COMPUTERNAME%" 1>nul 2>&1
if %ERRORLEVEL% GTR 0 (
    set VARIABLE1=%COMPUTERNAME%
) 
else ( 
cluster node | findstr /r "WINSV*" | findstr /v "%COMPUTERNAME%" 
)

Редактировать: Теперь работа с этим:

set CLUSTERGROUP=CLUSTERNAME
call cluster group | find /I "%CLUSTERGROUP%" | find /I "%COMPUTERNAME%" 1>nul 2>&1
if %ERRORLEVEL% GTR 0 (
    set VARIABLE1=%COMPUTERNAME%
) else (
    for /F "tokens=1" %%I in ('call cluster node ^| findstr /r "WINSV*" ^| findstr /v "\<%COMPUTERNAME%\>"') do set "VARIABLE1=%%I"
)

Теперь еще одна проблема, так как у меня есть другие уровни ошибок в других сценариях, первая строка неза работой.Как мне его переделать - вывод в VARIABLE1 должен быть% COMPUTERNAME%, если имя узла (значение WINSV9999 в строке, начинающейся с CLUSTERNAME) не совпадает с% COMPUTERNAME%.Любая помощь по этому поводу?Спасибо!

c:>cluster group
Listing status for all available resource groups:

Group                Node            Status
-------------------- --------------- ------
Available Storage    WINSV9999    Offline
Cluster Group        WINSV9999    Online
CLUSTERNAME          WINSV9999    Online
...