У меня есть 8 кратких сценариев для перезапуска компьютеров в разных комнатах. Один внезапно остановился. Никакие изменения это не исправили

#powershell

#powershell

Вопрос:

Этот скрипт работает нормально:

 $machines = get-content H:PSRestartInventory417.txt
restart-computer -computername $machines -force
  

Этот скрипт работал нормально до этой недели. Я не вносил никаких изменений до сбоя:

 $machines = get-content H:PSRestartInventoryAccom.txt
restart-computer -computername $machines -force
  

С пропуском ‘417’ в первом и ‘Accom’ во втором, в каждом из них есть по 100 дополнительных символов, и они оба выглядят идентично для меня.

Может кто-нибудь увидеть, чего мне не хватает? Информация re: версия Powershell является;

 Name                         Value
----                         -----
PSVersion                    5.1.14409.1018
PSEdition                    Desktop
PSCompatibleVersions         {1.0, 2.0, 3.0, 4.0...}
BuildVersion                 10.0.14409.1018
CLRVersion                   4.0.30319.42000
WSManStackVersion            3.0
PSRemotingProtocolVersion    2.3
SerializationVersion         1.1.0.1
  

Большое спасибо!

Я скопировал рабочие сценарии и просто заменил имя файла инвентаризации и попытался запустить это. Произошел тот же сбой.

В результате примерно за три года компьютеры либо перезапускались, либо сообщали о сбое идентификатора ПК. Все сценарии, кроме указанного выше, все еще делают это.

Ни один из сценариев никогда не возвращал список чего-либо, ЕСЛИ только не было устройств, которые не удалось перезапустить — тогда эти устройства перечислены.

Когда я запускаю сценарий, немедленно возвращается следующее:

PS C:Windowssystem32 > $ machines = get-content H:PSRestartInventoryAccom.txt перезагрузка-компьютер -имя_компьютера $machines -принудительный перезапуск-Компьютер: не удается проверить аргумент для параметра ‘имя_компьютера’. Аргумент равен null или пустой. Укажите аргумент, который не является нулевым или пустым, а затем повторите попытку команды. В строке: 2 символ: 32 перезагрузка-компьютер -имя_компьютера $ machines -force ~~~~~~~~~ CategoryInfo: InvalidData: (:) [Restart-Computer], параметр привязки ValidationException FullyQualifiedErrorId: ошибка параметраargumentvalidation, Microsoft.PowerShell.Команды.Resta rtComputerCommand

PS C:Windowssystem32 >

Извините. Забыл упомянуть, что я МОГУ отключить их через shutdown / i.

Комментарии:

1. Спасибо, boxdog.

2. Какие ошибки (если таковые имеются) вы получаете? что вы пытались решить проблему? Например, нормально ли загружается список компьютеров? Они выглядят правильно? Можете ли вы перезапустить те же машины по отдельности с того же хоста с помощью консоли?

3. Сообщение об ошибке указывает на то, что в -ComputerName скрипте передается null или пустая строка. Я предлагаю записать выходные данные любой переменной, в которую отправляется -ComputerName , чтобы увидеть, когда это происходит, а затем устранить неполадки оттуда.

4. Запустите ((get-content H:PSRestartInventoryAccom.txt ) -notmatch ‘S’).посчитайте и посмотрите, есть ли у вас пустая строка в этом файле.

5. mjolinor — БОЛЬШОЕ СПАСИБО! Каким-то образом я позволил двум пустым строкам проникнуть в inventory.txt файл в конце. Их удаление исправило это. Спасибо всем за вашу помощь!