Удаленное отключение всех пользователей, кроме определенных пользователей

#batch-file

#пакетный файл

Вопрос:

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

 @ECHO off
SETLOCAL
SET "users=USER01 USER02"
SET "servers=SERVER1 SERVER2 SERVER3 SERVER4"
FOR %%s IN (%servers%) DO (
    FOR /f "tokens=1,2" %%a IN ('"Quser /server:%%s"') DO (
        FOR %%n IN (%users%) DO (
            IF /I %%a==%%n rwinsta /server:%%s %%b          
        )
    )
)
 

Мне также удалось поэкспериментировать, и теперь с помощью приведенного ниже сценария я теперь могу убедиться, что из 3 пользователей один конкретный пользователь (USER2) может быть пропущен при выходе из системы. Остальные пользователи, указанные в списке пользователей, будут отключены.

 @ECHO off
SETLOCAL
SET "users=USER1 USER2 USER3"
SET "servers=SERVER1 SERVER2 SERVER3 SERVER4"
FOR %%s IN (%servers%) DO (
    FOR /f "tokens=1,2" %%a IN ('"Quser /server:%%s"') DO (
        FOR %%n IN (%users%) DO (
            IF /I %%a EQU %%n IF /I "%%n" NEQ "USER2" rwinsta /server:%%s %%b   
        )
    )
)
 

Я ищу, как я могу заставить нескольких пользователей пропустить выход из системы? Если я добавлю другое условие If с помощью NEQ «USER3», оно не будет работать в соответствии с логикой.

или

Есть ли какой-либо другой способ, которым мы могли бы отключить всех пользователей, кроме User1, user2 и user3, с упомянутых серверов?

Любые предложения были бы чрезвычайно полезны.

Комментарии:

1. Вы знаете, как определять и перебирать списки, просто создайте еще один и проверьте этот список перед удалением пользователя. Другой вариант — просто удалить пользователей, которых вы не хотите отключать, из списка пользователей.

2. СОВЕТ: Запустите help call , установите проверку исключения в подпрограмму, которая устанавливает переменную среды true, если пользователь найден в списке исключений. Затем проверьте эту переменную на вашем внутреннем most if, где вы проверяете "USER2" .