![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » CMD/BAT - [решено] скрипт сброса дубля сеанса на других серверах |
|
CMD/BAT - [решено] скрипт сброса дубля сеанса на других серверах
|
Новый участник Сообщения: 4 |
Добрый день всем.
Есть скрипт, суть - при входе на любой сервер после запуска скрипт получает имя сервера и соответственно выполняется нужное условие. Но работает не верно из-за синтаксических ошибок. Прошу помощи. @echo off setlocal if (%hostname%) EQU "SRV-TL-TSD0608" do ((qwinsta /server:SRV-TL-TSD0508 | for /f "tokens=3" %%i in ('findstr /I "%username%"') do logoff /server:SRV-TL-TSD0508 %%i /V qwinsta /server:SRV-TL-TSD0408 | for /f "tokens=3" %%i in ('findstr /I "%username%"') do logoff /server:SRV-TL-TSD0408 %%i /V qwinsta /server:SRV-TL-TSD0308 | for /f "tokens=3" %%i in ('findstr /I "%username%"') do logoff /server:SRV-TL-TSD0308 %%i /V qwinsta /server:SRV-TL-TSD0208 | for /f "tokens=3" %%i in ('findstr /I "%username%"') do logoff /server:SRV-TL-TSD0208 %%i /V qwinsta /server:SRV-TL-TSD0108 | for /f "tokens=3" %%i in ('findstr /I "%username%"') do logoff /server:SRV-TL-TSD0108 %%i /V ) else if (%hostname%) EQU "SRV-TL-TSD0508" do ( qwinsta /server:SRV-TL-TSD0608 | for /f "tokens=3" %%i in ('findstr /I "%username%"') do logoff /server:SRV-TL-TSD0608 %%i /V qwinsta /server:SRV-TL-TSD0408 | for /f "tokens=3" %%i in ('findstr /I "%username%"') do logoff /server:SRV-TL-TSD0408 %%i /V qwinsta /server:SRV-TL-TSD0308 | for /f "tokens=3" %%i in ('findstr /I "%username%"') do logoff /server:SRV-TL-TSD0308 %%i /V qwinsta /server:SRV-TL-TSD0208 | for /f "tokens=3" %%i in ('findstr /I "%username%"') do logoff /server:SRV-TL-TSD0208 %%i /V qwinsta /server:SRV-TL-TSD0108 | for /f "tokens=3" %%i in ('findstr /I "%username%"') do logoff /server:SRV-TL-TSD0108 %%i /V ) else if (%hostname%) EQU "SRV-TL-TSD0408" do ( qwinsta /server:SRV-TL-TSD0608 | for /f "tokens=3" %%i in ('findstr /I "%username%"') do logoff /server:SRV-TL-TSD0608 %%i /V qwinsta /server:SRV-TL-TSD0508 | for /f "tokens=3" %%i in ('findstr /I "%username%"') do logoff /server:SRV-TL-TSD0508 %%i /V qwinsta /server:SRV-TL-TSD0308 | for /f "tokens=3" %%i in ('findstr /I "%username%"') do logoff /server:SRV-TL-TSD0308 %%i /V qwinsta /server:SRV-TL-TSD0208 | for /f "tokens=3" %%i in ('findstr /I "%username%"') do logoff /server:SRV-TL-TSD0208 %%i /V qwinsta /server:SRV-TL-TSD0108 | for /f "tokens=3" %%i in ('findstr /I "%username%"') do logoff /server:SRV-TL-TSD0108 %%i /V ) else if (%hostname%) EQU "SRV-TL-TSD0308" do ( qwinsta /server:SRV-TL-TSD0608 | for /f "tokens=3" %%i in ('findstr /I "%username%"') do logoff /server:SRV-TL-TSD0608 %%i /V qwinsta /server:SRV-TL-TSD0508 | for /f "tokens=3" %%i in ('findstr /I "%username%"') do logoff /server:SRV-TL-TSD0508 %%i /V qwinsta /server:SRV-TL-TSD0408 | for /f "tokens=3" %%i in ('findstr /I "%username%"') do logoff /server:SRV-TL-TSD0408 %%i /V qwinsta /server:SRV-TL-TSD0208 | for /f "tokens=3" %%i in ('findstr /I "%username%"') do logoff /server:SRV-TL-TSD0208 %%i /V qwinsta /server:SRV-TL-TSD0108 | for /f "tokens=3" %%i in ('findstr /I "%username%"') do logoff /server:SRV-TL-TSD0108 %%i /V ) else if (%hostname%) EQU "SRV-TL-TSD0208" do ( qwinsta /server:SRV-TL-TSD0608 | for /f "tokens=3" %%i in ('findstr /I "%username%"') do logoff /server:SRV-TL-TSD0608 %%i /V qwinsta /server:SRV-TL-TSD0508 | for /f "tokens=3" %%i in ('findstr /I "%username%"') do logoff /server:SRV-TL-TSD0508 %%i /V qwinsta /server:SRV-TL-TSD0408 | for /f "tokens=3" %%i in ('findstr /I "%username%"') do logoff /server:SRV-TL-TSD0408 %%i /V qwinsta /server:SRV-TL-TSD0308 | for /f "tokens=3" %%i in ('findstr /I "%username%"') do logoff /server:SRV-TL-TSD0308 %%i /V qwinsta /server:SRV-TL-TSD0108 | for /f "tokens=3" %%i in ('findstr /I "%username%"') do logoff /server:SRV-TL-TSD0108 %%i /V ) else if (%hostname%) EQU "SRV-TL-TSD0108" do ( qwinsta /server:SRV-TL-TSD0608 | for /f "tokens=3" %%i in ('findstr /I "%username%"') do logoff /server:SRV-TL-TSD0608 %%i /V qwinsta /server:SRV-TL-TSD0508 | for /f "tokens=3" %%i in ('findstr /I "%username%"') do logoff /server:SRV-TL-TSD0508 %%i /V qwinsta /server:SRV-TL-TSD0408 | for /f "tokens=3" %%i in ('findstr /I "%username%"') do logoff /server:SRV-TL-TSD0408 %%i /V qwinsta /server:SRV-TL-TSD0308 | for /f "tokens=3" %%i in ('findstr /I "%username%"') do logoff /server:SRV-TL-TSD0308 %%i /V qwinsta /server:SRV-TL-TSD0208 | for /f "tokens=3" %%i in ('findstr /I "%username%"') do logoff /server:SRV-TL-TSD0208 %%i /V )) |
|
Отправлено: 09:18, 13-01-2023 |
fascinating rhythm Сообщения: 6705
|
Профиль | Отправить PM | Цитировать Нам предлагается поискать синтаксические ошибки в вашем скрипте?
Лучше опишите задачу. |
------- Отправлено: 11:06, 13-01-2023 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать задача - при входе в терминальный сервер его старые сеансы на всех других серверах завершались.
|
Отправлено: 11:15, 13-01-2023 | #3 |
fascinating rhythm Сообщения: 6705
|
Профиль | Отправить PM | Цитировать Powershell
$servers = @( "SRV-TL-TSD0108" "SRV-TL-TSD0208" "SRV-TL-TSD0308" "SRV-TL-TSD0408" "SRV-TL-TSD0508" "SRV-TL-TSD0608" ) -ne $env:COMPUTERNAME $servers |% { $users = qwinsta /server:$_ |% {$_.trim() -replace "\s+",","} |ConvertFrom-Csv if ($user = $users |? ПОЛЬЗОВАТЕЛЬ -eq $env:username) { logoff /server:$_ $user.id } } Суть: из списка, где перечислены все терминальные сервера, выбираются все, кроме того, на котором сработал скрипт. Далее для каждого сервера выполняется выборка и выход из сессии, если юзер найден. |
------- Отправлено: 12:47, 13-01-2023 | #4 |
Новый участник Сообщения: 4
|
Профиль | Отправить PM | Цитировать очень благодарен!
|
|
Отправлено: 13:35, 13-01-2023 | #5 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
PowerShell - [решено] Скрипт для удаленного сброса клиента службы Автоматического обновления | TheSt1tch | Скриптовые языки администрирования Windows | 1 | 26-01-2015 10:44 | |
Win32 API - Общие данные сеанса 0 и сеанса 1 в Windows Server 2008 | richdikb | Программирование и базы данных | 0 | 26-10-2011 15:22 | |
VBS/WSH/JS - [решено] скрипт с завершением сеанса определенного пользователя | hse2000 | Скриптовые языки администрирования Windows | 11 | 04-06-2011 08:26 | |
Разное - [решено] Завершение сеанса Windows через некоторое время после сеанса RDP | Romero_Ekb | Microsoft Windows 7 | 1 | 19-11-2010 10:08 |
|