Требуется написать скрипт для командной строки или PowerShell, на выходе которого должно быть понятно, находится ли кто-нибудь в базе в данный момент, или нет.
Желательно также вывести список акт...
Подробнее>>
не 1с?
тогда вот
users --help
Использование: users [КЛЮЧ]… [ФАЙЛ]
Выводит список подключенных пользователей в соответствии с ФАЙЛОМ.
Если ФАЙЛ не задан, используется /var/run/utmp. Часто в качестве ФАЙЛА
задают /var/log/wtmp.
--help показать эту справку и выйти
--version показать информацию о версии и выйти
Оперативная справка GNU coreutils: <https://www.gnu.org/software/coreutils/>
Об ошибках в переводе сообщений «users» сообщайте по адресу <gnu@d07.ru>
Полная документация: <https://www.gnu.org/software/coreutils/users>
#В дальнейшем это будут аргументы передаваемые скрипту
$platform1c_obj = "V83.COMConnector"
$service1c_name = "1C:Enterprise 8.3 Server Agent*"
$agent1c_connection = "tcp://localhost"
$checkServices = $true
#Замер времени исполнения скрипта
$watch = [System.Diagnostics.Stopwatch]::StartNew()
$watch.Start() #Запуск таймера
#$output += "Status of the 1C Server:<br>"
$output += "<div class='plsatin-ps-style'>"
if ($checkServices) {
$output += "<table>"
#Проверяем запущены ли необходимые службы, если нет, запускаем.
$mssqlsrv = Get-Service "MSSQLSERVER"
if ($mssqlsrv.Status -ne "Running") {
$output += "<tr><td class='IconErrorEncoded'></td>
<td>The MS SQL Server service was not started</td></tr>"
$output += "<tr><td class='IconInfoEncoded'></td>
<td>Start MS SQL Server service ...</td></tr>"
Start-Service $mssqlsrv
if ($mssqlsrv.Status -ne "Running") {
Write-Host $mssqlsrv
Write-Host $output
[System.Environment]::Exit($returnStateCritical)
} else {
$output += "<tr><td class='IconSuccessEncoded'></td>
<td>The MS SQL Server service is started</td></tr>"
}
} else {
$output += "<tr><td class='IconSuccessEncoded'></td>
<td>The MS SQL Server service is running</td></tr>"
}
$1cagent = Get-Service $service1c_name
if ($1cagent.Status -ne "Running") {
$output += "<tr><td class='IconErrorEncoded'></td>
<td>The 1C Server Agent service was not started</td></tr>"
$output += "<tr><td class='IconInfoEncoded'></td>
<td>Start the service of the 1C Server Agent ...</td></tr>"
Start-Service $1cagent
if ($1cagent.Status -ne "Running") {
Write-Host $1cagent
Write-Host $output
[System.Environment]::Exit($returnStateCritical)
} else {
$output += "<tr><td class='IconSuccessEncoded'></td>
<td>1C Server Agent service is started</td></tr>"
}
} else {
$output += "<tr><td class='IconSuccessEncoded'></td>
<td>The 1C Server Agent service is running</td></tr>"
}
$output += "</table>"
}
#Создаем COM объект 1С
$comobj1c = New-Object -ComObject $platform1c_obj
#Подключаемя к агенту сервера 1С
$connect1c = $comobj1c.ConnectAgent($agent1c_connection)
#Получаем доступные кластеры на данном сервере
$cluster1c = $connect1c.GetClusters()
#Подключаемся к кластеру
#При условии что кластер только один, тоесть выбираем первый - [0]
$connect1c.Authenticate($cluster1c[0],"","")
#Получаем список сессий
$sessions1c = $connect1c.GetSessions($cluster1c[0])