jokemas
Новичок
- Сообщения
- 5
- Репутация
- 0
Добрый день,
Ищу функцию или помощь в создании скрипта, позволяющего с помощью Autoit завершать сессии терминальных пользователей и отключать их учетные записи на время выполнения тех.работ сервера.
До этого использовал батник:
Начал "играться" с autoit, стараясь получить аналогичный эффект, как в батнике вверху, но уперся в то, что не могу с помощью Run(@ComSpec, "") реализовать эти команды.
В файле указываются имена пользователей построчно. Их я выдергиваю в переменную и хочу в цикл запихнуть команду, которая будет отрубать всех пользователей до тех пор, пока не вырубит всех из файла.
Там в коде есть строчка закоментированная, которая должна рубить всех сетевых, но это не подходит, так как франшиза 1С работает так же через RDP и их рубить нельзя.
У меня глаза от количества кавычек уже в не различают иных символов.
Может есть какая функция самого AutoIt способная облегчить эту задачу?
Ищу функцию или помощь в создании скрипта, позволяющего с помощью Autoit завершать сессии терминальных пользователей и отключать их учетные записи на время выполнения тех.работ сервера.
До этого использовал батник:
Код:
@cd c:\BAT-files
@echo off
echo ----STEP 0----
echo Connect into the server for search users
echo ----------------------------------------------
setlocal enabledelayedexpansion
:: Имя сервера
set server=server-1c
:: Имя пользователя, сеанс которого нужно завершить
set user1=oficeman-co
set user2=eksandinova
set user3=operman
set user4=imalinskaya
set user5=ishkirya
set user6=ngornykh
set user7=sbabenkova
set user8=trainee
set user9=flowers-world
set user10=financier-pl-co
set user11=catman1-pl-co
set user12=catman2-pl-co
set user13=logistic-pl-co
set user14=catman3-pl-co
set user15=FirstManPL
set user16=SecondManPL
set user17=ThirdManPL
set user18=skladPL
set user19=BuhPL
set user20=svk-pl
set user21=users
set user22=work_out
set user23=work-out
set user24=receptionPL
set user25=managerPL
set user26=pricer-pl-co
set user27=kassa
set user28=Users
set user29=buhPL
set user30=guru-merchandiser
set user31=st.cashier
set user32=guru-marketing
echo ----------------------------------------------
echo ----Successfully connection----
echo ----------------------------------------------
echo----STEP 1----
echo sending message for all users
echo ----------------------------------------------
echo ----------------------------------------------
echo ----STEP 2----
echo Disconnecting users from the server
echo ----------------------------------------------
:: Поиск ID сеанса и его отключение от сервера
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user1%"') do (
logoff %%i /server:%server% && echo The session "%user1%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user2%"') do (
logoff %%i /server:%server% && echo The session "%user2%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user3%"') do (
logoff %%i /server:%server% && echo The session "%user3%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user4%"') do (
logoff %%i /server:%server% && echo The session "%user4%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user5%"') do (
logoff %%i /server:%server% && echo The session "%user5%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user6%"') do (
logoff %%i /server:%server% && echo The session "%user6%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user7%"') do (
logoff %%i /server:%server% && echo The session "%user7%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user8%"') do (
logoff %%i /server:%server% && echo The session "%user8%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user9%"') do (
logoff %%i /server:%server% && echo The session "%user9%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user10%"') do (
logoff %%i /server:%server% && echo The session "%user10%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user11%"') do (
logoff %%i /server:%server% && echo The session "%user11%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user12%"') do (
logoff %%i /server:%server% && echo The session "%user12%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user13%"') do (
logoff %%i /server:%server% && echo The session "%user13%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user14%"') do (
logoff %%i /server:%server% && echo The session "%user14%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user15%"') do (
logoff %%i /server:%server% && echo The session "%user15%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user16%"') do (
logoff %%i /server:%server% && echo The session "%user16%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user17%"') do (
logoff %%i /server:%server% && echo The session "%user17%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user18%"') do (
logoff %%i /server:%server% && echo The session "%user18%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user19%"') do (
logoff %%i /server:%server% && echo The session "%user19%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user20%"') do (
logoff %%i /server:%server% && echo The session "%user20%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user21%"') do (
logoff %%i /server:%server% && echo The session "%user21%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user22%"') do (
logoff %%i /server:%server% && echo The session "%user22%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user23%"') do (
logoff %%i /server:%server% && echo The session "%user23%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user24%"') do (
logoff %%i /server:%server% && echo The session "%user24%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user25%"') do (
logoff %%i /server:%server% && echo The session "%user25%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user26%"') do (
logoff %%i /server:%server% && echo The session "%user26%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user27%"') do (
logoff %%i /server:%server% && echo The session "%user27%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user28%"') do (
logoff %%i /server:%server% && echo The session "%user28%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user29%"') do (
logoff %%i /server:%server% && echo The session "%user29%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user30%"') do (
logoff %%i /server:%server% && echo The session "%user30%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user31%"') do (
logoff %%i /server:%server% && echo The session "%user31%" was successfully completed
)
for /f "tokens=3,* delims= " %%i in ('qwinsta /server:%server% ^| find "%user32%"') do (
logoff %%i /server:%server% && echo The session "%user32%" was successfully completed
)
echo ----------------------------------------------
echo ----Users successfully disconnected----
echo ----------------------------------------------
echo ----STEP 3----
echo Turning off User Account
echo ----------------------------------------------
net user "%user1%" /active:no && echo The accaunt "%user1%" was successfully disable
net user "%user2%" /active:no && echo The accaunt "%user2%" was successfully disable
net user "%user3%" /active:no && echo The accaunt "%user3%" was successfully disable
net user "%user4%" /active:no && echo The accaunt "%user4%" was successfully disable
net user "%user5%" /active:no && echo The accaunt "%user5%" was successfully disable
net user "%user6%" /active:no && echo The accaunt "%user6%" was successfully disable
net user "%user7%" /active:no && echo The accaunt "%user7%" was successfully disable
net user "%user8%" /active:no && echo The accaunt "%user8%" was successfully disable
net user "%user9%" /active:no && echo The accaunt "%user9%" was successfully disable
net user "%user10%" /active:no && echo The accaunt "%user10%" was successfully disable
net user "%user11%" /active:no && echo The accaunt "%user11%" was successfully disable
net user "%user12%" /active:no && echo The accaunt "%user12%" was successfully disable
net user "%user13%" /active:no && echo The accaunt "%user13%" was successfully disable
net user "%user14%" /active:no && echo The accaunt "%user14%" was successfully disable
net user "%user15%" /active:no && echo The accaunt "%user15%" was successfully disable
net user "%user16%" /active:no && echo The accaunt "%user16%" was successfully disable
net user "%user17%" /active:no && echo The accaunt "%user17%" was successfully disable
net user "%user18%" /active:no && echo The accaunt "%user18%" was successfully disable
net user "%user19%" /active:no && echo The accaunt "%user19%" was successfully disable
net user "%user20%" /active:no && echo The accaunt "%user20%" was successfully disable
net user "%user21%" /active:no && echo The accaunt "%user21%" was successfully disable
net user "%user22%" /active:no && echo The accaunt "%user22%" was successfully disable
net user "%user23%" /active:no && echo The accaunt "%user23%" was successfully disable
net user "%user24%" /active:no && echo The accaunt "%user24%" was successfully disable
net user "%user25%" /active:no && echo The accaunt "%user25%" was successfully disable
net user "%user26%" /active:no && echo The accaunt "%user26%" was successfully disable
net user "%user27%" /active:no && echo The accaunt "%user27%" was successfully disable
net user "%user28%" /active:no && echo The accaunt "%user28%" was successfully disable
net user "%user29%" /active:no && echo The accaunt "%user29%" was successfully disable
net user "%user30%" /active:no && echo The accaunt "%user30%" was successfully disable
net user "%user31%" /active:no && echo The accaunt "%user31%" was successfully disable
net user "%user32%" /active:no && echo The accaunt "%user32%" was successfully disable
echo ----------------------------------------------
echo ----Successfully disable all users----
echo ----------------------------------------------
exit
Начал "играться" с autoit, стараясь получить аналогичный эффект, как в батнике вверху, но уперся в то, что не могу с помощью Run(@ComSpec, "") реализовать эти команды.
В файле указываются имена пользователей построчно. Их я выдергиваю в переменную и хочу в цикл запихнуть команду, которая будет отрубать всех пользователей до тех пор, пока не вырубит всех из файла.
Там в коде есть строчка закоментированная, которая должна рубить всех сетевых, но это не подходит, так как франшиза 1С работает так же через RDP и их рубить нельзя.
Код:
;Подключаем необходимые модули
#include <file.au3>
;Открываем файы и присваиваем их переменным
$hClient = FileOpen(@ScriptDir & '\сlients.txt', 0)
$hServer = FileOpen(@ScriptDir & '\Server.txt', 0)
;получаем количество строк в файлах
$hClientCount = _FileCountLines(@ScriptDir & '\сlients.txt')
$hServerCount = _FileCountLines(@ScriptDir & '\server.txt')
;Проверяет, является ли файлы открытым, перед тем как использовать функции чтения/записи в файл
If $hClient = -1 Then
MsgBox(4096, "Ошибка", "Не могу открыть Файл clients.txt.")
Exit
EndIf
If $hServer = -1 Then
MsgBox(4096, "Ошибка", "Не могу открыть Файл server.txt.")
Exit
EndIf
;Запускаем цикл отключающий пользователей, используя переменные полученые выше.
For $i = 1 to $hClientCount Step 1
$ServerName = FileReadLine(@ScriptDir & '\Server.txt', 1)
MsgBox(0, "Сеанс пользователя завершен", FileReadLine(@ScriptDir & '\сlients.txt', $i), 0.5)
;Run(@ComSpec & " /c " & 'net session \\' & $ServerName & ' /delete', "", @SW_HIDE)
Next
;Закрываем ранее открытые файлы
FileClose($hClient)
FileClose($hServer)
MsgBox(0, "Обработано пользователей", $hClientCount,10)
;Проверочные сообщения
;MsgBox(0, "Содержимое 1-ой строки 1 файл", FileReadLine(@ScriptDir & '\сlients.txt', 1), 1)
;MsgBox(0, "Содержимое 1-ой строки 2 файл", FileReadLine(@ScriptDir & '\server.txt', 1), 1)
;MsgBox(0, "во 2 файле количество строк", $hServerCount,1)
У меня глаза от количества кавычек уже в не различают иных символов.
Может есть какая функция самого AutoIt способная облегчить эту задачу?