We rise up for the things we believe in over and over again

Продолжаем разборки с SNMP и Powershell. Выяснилось, что использование сторонних библиотек очень криво работает в том случае, когда эта самая библиотека лежит на каком-нибудь сетевом ресурсе. Попытка дать в скрипте команду
[reflection.assembly]::LoadFrom( (Resolve-Path "$includeDir\SharpSnmpLib.dll") )
в случае $includeDir, равному \\server\share, приведет к фиаско.
Проковыряв советы с ServerFault и им подобных, в итоге не нашлось ничего лучшего, чем решение "в лоб" - берем эту библиотеку и тупо копируем в профиль пользователя. И подключаем ее оттуда. Просто и понятно. Параллельно еще подправили пару косяков с "лишними" слешами в путях.
Еще одна засада поджидала там, где не ждали вообще. Различие в версиях Powershell. На v2 все отрабатывает без проблем, а вот с v3 "косяки стаями пошли". Ну, не то, чтобы стаями, но в одной функции пришлось кое-что подправить. Итак, что у нас получается.
Главный скрипт:


Исправленный Invoke-SNMPGet.ps1:

По хорошему нужно было бы еще исправить и Invoke-SNMPWalk.ps1, но он не используется.

@музыка: Electronic Arts - RAP sheet

@темы: PowerShell, Scripting