![]() |
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - инсерт нескольких записей в БД |
|
PowerShell - инсерт нескольких записей в БД
|
Старожил Сообщения: 473 |
Всем привет!!!
Переделываю скрипт, который собирает с раб.станций инфу по общим папкам и сохраняет в MSSQL. Старый скрипт работал через Invoke-Sqlcmd, что требует импорт модуля SQLServer. Решил избавится от импорта и использовать классы .NET. $shares = get-smbshare -Special $false | get-smbshareaccess $Pc = get-wmiobject Win32_ComputerSystemProduct -Property * | Select-Object UUID, "__SERVER" $PcSusID = Get-ItemProperty HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\WindowsUpdate\ | select SusClientId $date=get-date -Format "dd.MM.yyyy HH:mm:ss" $PcName = $Pc.__SERVER $PcUID = $Pc.UUID $CompSusID = $PcSusID.SusClientId #Подключение к базе данных и Insert $dataSource = “sql-server\instance” $database = “name_DB” $auth = “Integrated Security=SSPI;” $connectionString = “Provider=sqloledb; ” + “Data Source=$dataSource; ” + “Initial Catalog=$database; ” + “$auth; “ $connection = New-Object System.Data.OleDb.OleDbConnection $connectionString for ($s=0; $s -lt $shares.Count; $s++) { $PcSharesName = $shares[$s].name $ShareAccName = $shares[$s].AccountName $ShareAccControl = $shares[$s].AccessControlType $ShareAccRight = $shares[$s].AccessRight $sql = "BEGIN IF EXISTS (SELECT * FROM Comp_Data WHERE CompName = N'$PcName' AND CompShareName = '$PcSharesName' AND AccessRight = '$ShareAccRight') BEGIN UPDATE Comp_Data SET CompUID='$PcUID', CompShareName='$PcSharesName', AccountName='$ShareAccName', AccessControlType='$ShareAccControl', AccessRight='$ShareAccRight', CompSusID='$CompSusID',DateRun='$date' WHERE CompName = N'$PcName' AND CompShareName = '$PcSharesName' AND AccessRight = '$ShareAccRight' END ELSE BEGIN INSERT INTO Comp_Data (CompName,CompUID,CompShareName,AccountName,AccessControlType,AccessRight,CompSusID,DateRun) VALUES (N'$PcName',N'$PcUID','$PcSharesName','$ShareAccName','$ShareAccControl','$ShareAccRight','$CompSusID','$date') END END" } $command = New-Object System.Data.OleDb.OleDbCommand $sql,$connection $connection.Open() $command = New-Object data.OleDb.OleDbCommand $sql $command.connection = $connection $rowsAffected = $command.ExecuteNonQuery() $connection.Close() Хотя в переменной shares две записи, видно на скрине. что не так делаю? |
|
Отправлено: 14:47, 28-05-2021 |
![]() |
Участник сейчас на форуме |
![]() |
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
Разное - Паскаль!Проектирование БД.Используя файловый тип данных, создать файл записей | ___Vampir___ | Программирование и базы данных | 1 | 09-05-2011 23:25 | |
.NET - [решено] Добавление записей в таблицу БД | Alex.sys | Программирование и базы данных | 10 | 04-05-2011 03:46 | |
FreeBSD - [решено] Ведение учета (информации, клиентов, и т.д.) в БД + Веб интерфейс к БД для юзеров | ilka | Общий по FreeBSD | 4 | 03-12-2010 00:40 | |
Ошибка при динамической регистрации или удалении одной или нескольких записей DNS | fesenus | Microsoft Windows NT/2000/2003 | 3 | 19-11-2007 11:36 | |
Распределенная БД | MaxFactor | Программирование и базы данных | 5 | 28-01-2003 11:55 |
|