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

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

Ответить
Настройки темы
PowerShell - ping компьютеров из *.csv

Новый участник


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

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


Привет всем.
Стоит следующая задача: Необходимо отследить компьютеры, которые не выключаются на ночь.
Есть User_Comp.csv следующего содержания:
Код: Выделить весь код
#TYPE Selected.Microsoft.ActiveDirectory.Management.ADUser
"pager","name","title","department"
"IVANOV_PC","Иванов Иван Иванович","Заместитель начальник","Отдел начальников"
"PC_BARANOV","Баранов Михаил Петрович","Главный надзиратель","Отдел надзирателей"
,"Горьков Михаил Денисович","Советник слесаря","Отдел слесарей"
"PETROV","Петров Максим Альбертович","Слесарь","Отдел слесарей"
В поле "pager" содержится имя компьютера (но не всегда. Если нет, то пропускать), которое и необходимо пинговать. Если пингуется, то записывать в новый *.csv-файл:
Код: Выделить весь код
#TYPE Selected.Microsoft.ActiveDirectory.Management.ADUser
"pager","IP","name","title","department"
"PC_BARANOV","IP","Баранов Михаил Петрович","Главный надзиратель","Отдел надзирателей"
"PETROV","IP","Петров Максим Альбертович","Слесарь","Отдел слесарей"
Если не пигуется, то ничего не записывать в новый *.csv-файл (имя **csv-файла должно быть: дата_время.csv).

Ранее пользовался скриптом, который пингует все компьютеры (которые лежат в определенной OU) в домене:
Скрытый текст

# Enter CSV file location
$CurrentDate = Get-Date
$CurrentDate = $CurrentDate.ToString('MM-dd-yyyy_hh-mm-ss')
$csv = "C:\Temp\Ping_$CurrentDate.csv"
# Add the target OU in the SearchBase parameter
$Computers = Get-ADComputer -Filter * -SearchBase "OU=SuperComputers,DC=domain,DC=ru" | Select Name | Sort-Object Name
$Computers = $Computers.Name
$Headers = "ComputerName,IP Address"
$Headers | Out-File -FilePath $csv -Encoding UTF8 -Delimiter ";"
foreach ($computer in $Computers)
{
Write-host "Pinging $Computer"
$Test = Test-Connection -ComputerName $computer -Count 1 -ErrorAction SilentlyContinue -ErrorVariable Err
if ($test -ne $null)
{
$IP = $Test.IPV4Address.IPAddressToString
$Output = "$Computer,$IP"
$Output | Out-File -FilePath $csv -Encoding UTF8 -Append
}
Else
{
$Output = "$Computer,$Err"
$output | Out-File -FilePath $csv -Encoding UTF8 -Append
}
cls
}

Но теперь чуть другая задача.
Подсобите, plz, скриптом.

Отправлено: 08:22, 07-04-2021

 

Новый участник


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

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


Цитата DJ Mogarych:
Интересно. Пингуется, но test-connection выдаёт false? »
Да.

Цитата DJ Mogarych:
Интересно. Пингуется, но test-connection выдаёт false? »
Любой компьютер: хоть пингуется или не пингуется, всё равно выдаёт False.

Отправлено: 17:23, 07-04-2021 | #11



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

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


Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


test-connection это и есть по сути пинг.
А что он выдаёт без ключа -quiet?

-------
Скачать ffmpeg для Windows: https://www.gyan.dev/ffmpeg/builds/


Отправлено: 19:53, 07-04-2021 | #12


Новый участник


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

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


Цитата DJ Mogarych:
Интересно. Пингуется, но test-connection выдаёт false? »
Именно.

Цитата DJ Mogarych:
А что он выдаёт без ключа -quiet? »
Пингуется.

Код: Выделить весь код
S C:\1.System> Test-Connection "test_pc" -Count 1

Source        Destination     IPV4Address      IPV6Address                              Bytes    Time(ms) 
------        -----------             -----------         -----------                              -----    -------- 
my_pc            test_pc           192.168.18.56                                                 32       0        



PS C:\1.System> Test-Connection "test_pc" -Count 1 -Quiet
False

Последний раз редактировалось JimmLight, 08-04-2021 в 06:09.


Отправлено: 06:01, 08-04-2021 | #13


Новый участник


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

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


cmd:
Код: Выделить весь код
C:\>ping test_pc

Обмен пакетами с test_pc.domain.ru [192.168.18.56] с 32 байтами данных:
Ответ от 192.168.18.56: число байт=32 время<1мс TTL=127
Ответ от 192.168.18.56: число байт=32 время<1мс TTL=127
Ответ от 192.168.18.56: число байт=32 время<1мс TTL=127
Ответ от 192.168.18.56: число байт=32 время<1мс TTL=127

Статистика Ping для 192.168.18.56:
    Пакетов: отправлено = 4, получено = 4, потеряно = 0
    (0% потерь)
Приблизительное время приема-передачи в мс:
    Минимальное = 0мсек, Максимальное = 0 мсек, Среднее = 0 мсек
PowerShell:
Код: Выделить весь код
PS C:\1.System> Test-Connection test_pc -Count 1 -Quiet
False
PowerShell:
Код: Выделить весь код
PS C:\1.System> Test-Connection test_pc

Source        Destination     IPV4Address      IPV6Address                              Bytes    Time(ms) 
------        -----------     -----------      -----------                              -----    -------- 
my_pc            test_pc        192.168.18.56                                              32       0        
my_pc            test_pc        192.168.18.56                                              32       0        
my_pc            test_pc        192.168.18.56                                              32       0        
my_pc            test_pc        192.168.18.56                                              32       0

Отправлено: 06:48, 08-04-2021 | #14


Аватара для DJ Mogarych

fascinating rhythm


Moderator


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

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


У вас почему-то неправильно работает эта команда, вот описание той же проблемы, но без решения: https://stackoverflow.com/questions/...ection-mystery

Попробуйте на другом компе.

-------
Скачать ffmpeg для Windows: https://www.gyan.dev/ffmpeg/builds/


Отправлено: 11:00, 08-04-2021 | #15



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

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

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
PowerShell - Экспорт данных из CSV в CFG Lezenford Скриптовые языки администрирования Windows 11 12-10-2016 15:17
PowerShell - [решено] Переименование компьютеров домена netdom+csv nokogerra Скриптовые языки администрирования Windows 5 07-11-2014 10:14
CMD/BAT - [решено] Периеминование файла doc.csv в Документ_дата_время.csv kagorec Скриптовые языки администрирования Windows 2 29-03-2014 18:40
Любой язык - Перенести данные из csv в html OverSense Скриптовые языки администрирования Windows 2 14-02-2014 22:11
CMD/BAT - Из csv в xls с помощью батника OverSense Скриптовые языки администрирования Windows 1 13-02-2014 18:38




 
Переход