Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Powershell и Access

Ответить
Настройки темы
PowerShell - Powershell и Access

Старожил


Сообщения: 173
Благодарности: 4

Профиль | Отправить PM | Цитировать


Добрый день,

Задача, получать актуальный список залогированных сотрудников на компьютерах. Т.е. нужно соответствие Имя компьютера - Сотрудник
Есть база данных с одной таблицей и четырьмя столбцами: HostName, UserName,Data, Time
Есть скрипт, который работает не полностью. Данные по пользователям помещаются в таблицу, а имя компьютера нет.
Вот ошибка:
читать дальше »

Исключение при чтении "Item" : "Item cannot be found in the collection corresponding to the requested name or ordinal."
В C:\PoSH\Access_Username_tes1.ps1:16 знак:20
+ $objRec.Fields.Item <<<< ("HostName").Value = "$PC"
+ CategoryInfo : NotSpecified: ( [], GetValueInvocationException
+ FullyQualifiedErrorId : CatchFromBaseAdapterParameterizedPropertyGetValueTI


Вот скрипт:
Код: Выделить весь код
$PCs = Get-Content -Path "c:\PoSH\PCs.txt"
$path = "C:\FSO\Test2.accdb"
$adOpenStatic = 3
$adLockOptimistic = 3
$objCon = New-Object -com "ADODB.Connection"
$objRec = New-Object -com "ADODB.Recordset"

$objCon.Open("Provider = Microsoft.ACE.OLEDB.12.0; Data Source = $path")
$objRec.Open("Select * From Host", $objCon,$adOpenStatic,$adLockOptimistic)
Foreach($PC in $PCs)
{
$ShortUser = Get-WmiObject -class Win32_ComputerSystem -ComputerName $PC | ForEach-Object {[regex]::replace($_.UserName,".*\\","")}
$objRec.AddNew()
$objRec.Fields.Item("HostName").Value = "$PC"
$objRec.Fields.Item("UserName").Value = "$ShortUser"
}
$objRec.Update()

$objRec.Close()
$objCon.Close()

$adOpenStatic = 3
$adLockOptimistic = 3
Не понятно почему имя компьютера не добавляется.
И второе,Как можно сделать проверку - если такой компьютер уже есть, то обновить страницу, а если нет то добавить?


Евгений

Отправлено: 14:17, 08-06-2011

 

Старожил


Сообщения: 173
Благодарности: 4

Профиль | Отправить PM | Цитировать


Добрый день,

Вот так работает, но как сделать проверку по условию пока не понятно.
Код: Выделить весь код
$PCs = Get-QADComputer -Name *ru*
$path = "C:\FSO\Test2.accdb"
$adOpenStatic = 3
$adLockOptimistic = 3
$objCon = New-Object -com "ADODB.Connection"
$objRec = New-Object -com "ADODB.Recordset"

$objCon.Open("Provider = Microsoft.ACE.OLEDB.12.0; Data Source = $path")
$objRec.Open("Select * From Host", $objCon,$adOpenStatic,$adLockOptimistic)
Foreach($1 in $PCs)
{
$CompName = $1.Name
$ShortUser = Get-WmiObject -class Win32_ComputerSystem -ComputerName $1.Name | ForEach-Object {[regex]::replace($_.UserName,".*\\","")}
$objRec.AddNew()
$objRec.Fields.Item("HostName").Value = "$CompName"
$objRec.Fields.Item("UserName").Value = "$ShortUser"
}
$objRec.Update()

$objRec.Close()
$objCon.Close()

$adOpenStatic = 3
$adLockOptimistic = 3

Евгений.
Чтобы работало, необходимо установить дополнительную оснастку для работы с AD.

Отправлено: 16:05, 09-06-2011 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Butunin Klim

Ветеран


Сообщения: 1482
Благодарности: 117

Профиль | Отправить PM | Цитировать


Дай базу глянуть

-------
Сообщение помогло? В знак благодарности НАЖМИТЕ ПОЛЕЗНОЕ СООБЩЕНИЕ

Мы зрим не то, что есть вокруг,
А то, что можем видеть зримо.
А то, что зреть не достижимо
Нам не узреть во век веков.

Мой веб-магазин товары Amway http://butunina.ru


Отправлено: 17:06, 09-06-2011 | #3



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - Powershell и Access

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Система - Windows PowerShell shoot Программное обеспечение Windows 13 27-11-2011 02:23
Вопрос - applocker powershell extorhost Защита компьютерных систем 0 12-08-2010 17:16
Интернет - Как изменить Access Lokal на Access Lokal and Internet? amilo Microsoft Windows Vista 1 23-07-2009 00:00
Разное - PowerShell Butunin Klim Программирование и базы данных 1 31-07-2008 18:39
Unable to access the computer. Access is denied Maf1a Microsoft Windows NT/2000/2003 2 13-07-2007 15:42




 
Переход