Я работаю над расширением сценария Powershell здесь:скрипт сломался после обновления до Powershell 3
http://gallery.technet.microsoft.com/scriptcenter/Get-LocalGroupMembership-87d10dd8
Я добавил следующее в нижней части, чтобы иметь его проходное машины в текстовом файле и вызова функция.
$machines = get-content -LiteralPath C:\scripts\hosts.txt
foreach ($ComputerName in $machines) {
get-localgroupmembership -ComputerName $ComputerName
}
Он работает нормально, но потом я повышен до Powershell 3, так что я мог бы использовать флаг -Append для экспорта-CSV. Теперь он сломан.
Я продолжаю получать сообщение об ошибке при звонке Invoke
по телефону $members = @($group.psbase.Invoke("Members"))
, говоря, что The network path was not found
. Тем не менее, комментируя цикл for внизу и вручную указывая один компьютер, сценарий может работать правильно. Добавление цикла for и добавление строки для печати значения $ComputerName
перед вызовом строки Invoke
выше приводит к правильной печати каждого имени машины с hosts.txt
должным образом перед каждой ошибкой.
Все машины в hosts.txt являются pingable и работают нормально, если они указаны вручную в вызове функции вместо использования цикла foreach.
Любые идеи, почему это продолжает умирать от меня или как его исправить?
Спасибо!
Возможно, это глупый вопрос, но вы определили, к какой строке он относится, и проверить правописание и, возможно, попробуйте альтернативную спецификацию? –
Ошибка ссылается на указанную выше строку. Правильность написания. Как я уже упоминал, он работал отлично (за исключением желаемого добавления). Тогда изменилось только обновление до версии 3.0. После этого он больше не работал. Кроме того, ручное задание одной машины, а не циклизация текстового файла, по-прежнему работает правильно. Альтернативные спецификации, такие как? Я совершенно новый для powershell. – vidkun
Я имею в виду, у вас есть попугай powershell для вас, что он думает о сетевом пути.Поскольку вы обновили язык и поддерживающие системы, вполне вероятно, что он * может * интерпретировать ваш ввод иначе, чем раньше, и не так, как вы предполагаете. –