Приветствую, уважаемый читатель!
Сегодня расскажу, как можно с
использованием PowerShell быстро получить из БД сервера управления DrWeb список
программного обеспечения, установленного на компьютере.
Если вы выбрали вариант с интегрированной БД, то сам файл БД (SQLite) находится тут - C:\Program Files\DrWeb Server\var\database.sqlite
1. Получаем список всех компьютеров и уникальные идентификаторы компьютеров (в таблице cat_name_stations хранится доменное имя всех компьютеров, а в таблице station_logins уникальные ID):
add-type -Path "C:\Program
Files\System.Data.SQLite\2010\bin\System.Data.SQLite.dll"
$connect = New-Object -TypeName
System.Data.SQLite.SQLiteConnection
$connect.ConnectionString = "Data
Source='C:\drweb\database.sqlite'"
$connect.Open()
$sql.CommandText = "SELECT
station_logins.id,cat_name_stations.str FROM station_logins INNER JOIN
cat_name_stations ON cat_name_stations.id=station_logins.name;"
$adapter = New-Object -TypeName
System.Data.SQLite.SQLiteDataAdapter $sql
$data1 = New-Object System.Data.DataSet
$adapter.Fill($data1)
$connect.Close()
$id_arm = $ id_arm | select id,str –Unique
2. Получаем описание строковых наименований, которые использует сервер
(название ПО, вендор ПО и т.д.):
$sql1 = $connect.CreateCommand()
$sql1.CommandText = "SELECT * FROM env_strings;"
$adapter_descr = New-Object -TypeName System.Data.SQLite.SQLiteDataAdapter
$sql1
$data_descr = New-Object System.Data.DataSet
$adapter_descr.Fill($data_descr)
$rows_descr = $data_descr.tables.rows
$sql1.Dispose()
3. Получаем полный состав
программного обеспечения на компьютерах (список установленного ПО хранится в
этой таблице - station_env_sw)
$sql =
$connect.CreateCommand()
$sql.CommandText
= "SELECT * FROM station_env_sw;"
$adapter
= New-Object -TypeName System.Data.SQLite.SQLiteDataAdapter $sql
$data1 =
New-Object System.Data.DataSet
$adapter.Fill($data1)
$rows = $data1.tables.rows
foreach($row in $rows) {
foreach($id in $id_arm) {
if($row.id -eq $id.id) {
$name_station = $id.str
}
}
foreach($row_d in $rows_descr) {
if($row.name -eq $row_d.id) {
$name_soft = $row_d.str
}
if($row.version -eq $row_d.id) {
$ver_soft = $row_d.str
}
if($row.vendor -eq $row_d.id) {
$vendor_soft = $row_d.str
}
}
Результат выполнения приведен
ниже:
Всем удачи!
Комментариев нет:
Отправить комментарий