|
Внимание, важное сообщение: Дорогие Друзья!
В ноябре далекого 2001 года мы решили создать сайт и форум, которые смогут помочь как начинающим, так и продвинутым пользователям разобраться в операционных системах. В 2004-2006г наш проект был одним из самых крупных ИТ ресурсов в рунете, на пике нас посещало более 300 000 человек в день! Наша документация по службам Windows и автоматической установке помогла огромному количеству пользователей и сисадминов. Мы с уверенностью можем сказать, что внесли большой вклад в развитие ИТ сообщества рунета. Но... время меняются, приоритеты тоже. И, к сожалению, пришло время сказать До встречи! После долгих дискуссий было принято решение закрыть наш проект. 1 августа форум переводится в режим Только чтение, а в начале сентября мы переведем рубильник в положение Выключен Огромное спасибо за эти 24 года, это было незабываемое приключение. Сказать спасибо и поделиться своей историей можно в данной теме. С уважением, ваш призрачный админ, BigMac... |
|
| Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Скриптовые языки администрирования Windows » PowerShell - [решено] Сбор данных с ПК |
|
|
PowerShell - [решено] Сбор данных с ПК
|
|
Пользователь Сообщения: 51 |
Добрый вечер.
При выполнении данного запроса: get-adcomputer -searchbase "OU=PC,OU=TET,DC=PC,DC=MEM" -filter {(name -like "*") -and (enable -eq "true")} -Properties name, IPv4Address, CanonicalName | select name, IPv4Address, CanonicalName | out-gridview
1) информация находится в двух местах реестра. т.е. необходимо считать информацию в ветках реестра и выдать указанные там значение в разные столбцы в табличке. 2) информация актуальной версии рабочего приложения, данную информацию я смог извлечь WMIC командной: wmic.exe /interactive:off /failfast:on /node:127.0.0.1 datafile where "name='C:\\Offtop\\Top\\Top.exe'" get version Version 1.22.2.8 Но хотелось бы это сделать через PowerShell и получать результат в общей таблице. Есть возможность такое провернуть с помощью PowerShell? |
|
|
Отправлено: 23:45, 20-07-2018 |
|
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Busla, а вот соглашусь, коллега!
![]() |
|
Отправлено: 02:16, 22-07-2018 | #11 |
|
Пользователь Сообщения: 51
|
Профиль | Отправить PM | Цитировать Ну что, сможете помочь?
![]() |
|
Отправлено: 17:20, 22-07-2018 | #12 |
|
Новый участник Сообщения: 31
|
Профиль | Отправить PM | Цитировать Я бы сделал это так:
$Info = @()
Get-AdComputer `
-filter {Enabled -eq $True} `
-SearchBase "OU=PC,OU=TET,DC=PC,DC=MEM" `
-Properties name, IPv4Address, CanonicalName | %{
$CompName = $_.Name
[string]$IPAddresses = ""
Set-Service RemoteRegistry -ComputerName $CompName -Status Running -PassThru | Out-Null
$NIC = Get-WmiObject Win32_NetworkAdapterConfiguration -Filter "IPEnabled='True'" -ComputerName $CompName
$NIC | %{ $_.IPAddress.Split(",") | ?{ $_ -notlike "*:*" }} | %{ $IPAddresses += ($_ + ",") }
$Reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $CompName )
$RegKey1 = $Reg.OpenSubKey("SOFTWARE\RUSSIA\SU\CORE")
$RegKey2 = $Reg.OpenSubKey("SOFTWARE\RUSSIA\SU\FDC\")
$Member = New-Object PSObject -Property @{
CompName = $CompName
CanonicalName = $_.CanonicalName
IPAddresses = $IPAddresses -replace (',$')
RegVersion = $RegKey1.GetValue("SQLver")
Setup = $RegKey2.GetValue("Setup")
FileVersion = (Get-Item $("\\" + $CompName + "\C$\Offtop\Top\Top.exe") ).VersionInfo.ProductVersion
}
$Info += $Member
Set-Service RemoteRegistry -ComputerName $CompName -Status Stopped -PassThru -ErrorAction SilentlyContinue | Out-Null
}
$Info | Out-GridView
|
|
Последний раз редактировалось Wheee111, 22-07-2018 в 23:19. Причина: Добавил тег CODE Отправлено: 22:33, 22-07-2018 | #13 |
|
Пользователь Сообщения: 51
|
Профиль | Отправить PM | Цитировать Вот что выдаёт(см.картинку), и и не формирует табличку...
|
|
Отправлено: 01:06, 23-07-2018 | #14 |
|
Новый участник Сообщения: 31
|
Профиль | Отправить PM | Цитировать В личке добавилось требование обработчика ошибок.
$FilePath = "C$\Core Test\System\Core.exe"
$SearchBase = "OU=OFT,OU=SU,OU=PRM-CN,DC=contoso,DC=com"
$RegPath1 = "SOFTWARE\Soft Practic\RUSSIA"
$RegPath2 = "SOFTWARE\Soft Practic\Ver"
$RegKeyName1 = "System Version"
$RegKeyName2 = "Version"
$Info = @()
Get-AdComputer `
-Filter {Name -like "msk-004*" -and Enabled -eq $True} `
-SearchBase $SearchBase `
-Properties Name, CanonicalName | %{
$CompName = $_.Name
If ( Test-Connection $CompName -Count 1 -Quiet ) {
[string]$IPAddresses = ""
Try {
$RegErr = $False
Set-Service RemoteRegistry -ComputerName $CompName -Status Running -PassThru -EA SilentlyContinue | Out-Null
$Reg = [Microsoft.Win32.RegistryKey]::OpenRemoteBaseKey('LocalMachine', $CompName )
} Catch {
$RegErr = $True
}
Try {
$NICErr = $False
$NIC = Get-WmiObject Win32_NetworkAdapterConfiguration -Filter "IPEnabled='True'" -ComputerName $CompName -EA SilentlyContinue
$NIC | %{ $_.IPAddress.Split(",") | ?{ $_ -notlike "*:*" }} | %{ $IPAddresses += ($_ + ",") }
$IPAddresses = ( $IPAddresses -replace (',$') )
} Catch {
$NICErr = $True
}
If ($RegErr) {
$RegVersion = "Registry connection error"
$Setup = "Registry connection error"
} Else {
$RegKey1 = $Reg.OpenSubKey($RegPath1)
$RegKey2 = $Reg.OpenSubKey($RegPath2)
$RegVersion = $RegKey1.GetValue($RegKeyName1)
$Setup = $RegKey2.GetValue($RegKeyName2)
}
If ($NICErr) {
$IPAddresses = "WMI Connection error"
}
If (Test-Path $("\\" + $CompName + "\" + $FilePath) ) {
$FileVersion = (Get-Item $("\\" + $CompName + "\" + $FilePath) ).VersionInfo.ProductVersion
} Else {
$FileVersion = ""
}
Set-Service RemoteRegistry -ComputerName $CompName -Status Stopped -PassThru -ErrorAction SilentlyContinue | Out-Null
} Else {
$IPAddresses = "Offline"
$RegVersion = ""
$Setup = ""
$FileVersion = ""
}
$Member = New-Object PSObject -Property @{
CompName = $CompName
CanonicalName = $_.CanonicalName
IPAddresses = $IPAddresses
RegVersion = $RegVersion
Setup = $Setup
FileVersion = $FileVersion
}
$Info += $Member
}
$Info | Out-GridView
# $Info | Export-CSV C:\Temp\ScanResult.CSV -Encoding UTF8 -Delimiter ";" -NoTypeInformation
|
|
Отправлено: 10:27, 23-07-2018 | #15 |
|
Пользователь Сообщения: 51
|
Профиль | Отправить PM | Цитировать Великолепно! Скрипт работает как нада!!!
|
|
Отправлено: 11:14, 23-07-2018 | #16 |
|
Пользователь Сообщения: 51
|
Профиль | Отправить PM | Цитировать Столкнулся с такой проблемой, скрипт в некоторых OU не может собрать данные с какой то машины, и зависает. Вчера нашел одну из этих «вещающих скрипт машин» и зарустил скрипт только на неё, в итоге за сутки скрипт не выдал ошибку, но и не собрал данных, что это может быть?
|
|
Отправлено: 14:57, 25-07-2018 | #17 |
|
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать Цитата Armsinglom:
|
|
|
Отправлено: 20:14, 25-07-2018 | #18 |
|
Ветеран Сообщения: 2821
|
Профиль | Отправить PM | Цитировать интересно, а есть ли подобная
Цитата Armsinglom:
Я в принуипе, могу залезть в файл, где лежат юникс даты, но не уверен, что там дата именно апдейта, а не попытки (неизвестно, успешной ли) |
|
|
------- Отправлено: 15:33, 26-07-2018 | #19 |
|
Ветеран Сообщения: 27449
|
Профиль | Отправить PM | Цитировать bredych, не уверен, что а) это возможно и б) что это нужно. Причём акцент здесь на слове «это».
Если указанный антивирус корректно работает с Центром безопасности ОС, попробуйте поиграться с Wbem, а именно с классом AntiVirusProduct пространства SecurityCenter/SecurityCenter2 (до-Vista/Vista+). Вас должно интересовать свойство .productState, его анализ и конечный вывод — антивирус в состоянии Up-to-date или Out-of-date, то есть базы его в актуальном состоянии, або нет. Для PowerShell есть даже готовый код в Галерее: Script Get the status of Antivirus Product on local and Remote Computers.. |
|
Отправлено: 15:58, 26-07-2018 | #20 |
|
|
Участник сейчас на форуме |
|
Участник вне форума |
![]() |
Автор темы |
![]() |
Сообщение прикреплено |
| |||||
| Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
| Франция требует от Microsoft прекратить «чрезмерный» сбор пользовательских данных в W | OSZone News | Новости и события Microsoft | 3 | 23-07-2016 10:28 | |
| Microsoft расширяет сбор данных в Windows 7 и 8 | OSZone News | Новости и события Microsoft | 1 | 29-08-2015 11:08 | |
| 2007 - Excel сбор данных с нескольких файлов | Streamnewal | Microsoft Office (Word, Excel, Outlook и т.д.) | 2 | 15-05-2014 05:39 | |
| Сбор ПК! | Levondk | Выбор отдельных компонентов компьютера и конфигурации в целом | 12 | 09-06-2012 23:25 | |
| [решено] Сбор офисного ПК | ramazanov94@vk | Выбор отдельных компонентов компьютера и конфигурации в целом | 10 | 02-04-2012 20:29 | |
|