Проверьте, находится ли компьютер в сети, если это так, echo & ldquo; $ Computername is online & rdquo; скрипт [дубликат]

Указатель NULL - это тот, который указывает на никуда. Когда вы разыскиваете указатель p, вы говорите «дайте мне данные в месте, хранящемся в« p ». Когда p является нулевым указателем, местоположение, хранящееся в p, является nowhere, вы говорите «Дайте мне данные в месте« нигде ». Очевидно, он не может этого сделать, поэтому он выбрасывает NULL pointer exception.

В общем, это потому, что что-то не было правильно инициализировано.

3
задан Harry Singh 7 April 2015 в 13:58
поделиться

2 ответа

Вместо этого вы можете использовать следующий код (я просто изменил вызовы записи-записи на форматирование CSV) и выполнил его с помощью «PowerShell.exe script.ps> output.csv». Обратите внимание, что вы должны выполнить его из папки, содержащей hnames.txt или просто измените «hnames.txt» на полный путь.

$names = Get-content "hnames.txt"

foreach ($name in $names){
  if (Test-Connection -ComputerName $name -Count 1 -ErrorAction SilentlyContinue){
    Write-Host "$name,up"
  }
  else{
    Write-Host "$name,down"
  }
}

PS Вы также можете использовать командную команду Out-File для создания файла CSV

7
ответ дан Erez breiman 20 August 2018 в 10:16
поделиться
  • 1
    Милая! Это работает! Есть ли способ заставить сам сценарий печатать в CSV-файл вместо того, чтобы конвейер? Мне нужно передать это моему коллеге, который скорее всего запустит сценарий. – Harry Singh 7 April 2015 в 14:28
  • 2
    – Erez breiman 8 April 2015 в 05:51

Я полный новичок в Powershell, поэтому я принял это как учебную задачу, так как мне нужен был быстрый и простой способ проверить список ПК для статуса вверх / вниз. Эти настройки были необходимы, чтобы заставить его выводить чисто на экран и в txt-файл

$Output= @()
$names = Get-content "hnames.txt"
foreach ($name in $names){
  if (Test-Connection -ComputerName $name -Count 1 -ErrorAction SilentlyContinue){
   $Output+= "$name,up"
   Write-Host "$Name,up"
  }
  else{
    $Output+= "$name,down"
    Write-Host "$Name,down"
  }
}
$Output | Out-file "C:\support\result.csv"
1
ответ дан Mitch 20 August 2018 в 10:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: