|
Компьютерный форум 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 |
Ветеран Сообщения: 2767
|
Профиль | Отправить 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 |
|