Ошибка Get-ChildItem -path "\\ Servername.net \ FolderName \ SubFolderName \" с UN C путем - PullRequest
0 голосов
/ 03 марта 2020

Я использую Get-ChildItem с путем для перехода к общему файловому ресурсу. Мне удалось без проблем перейти к общему файловому ресурсу с моего локального компьютера, но при развертывании этого кода на сервере PROD я сталкиваюсь с проблемой Не удается найти путь .

Питание Команда оболочки: Get-ChildItem "\ servername.net \ abcd \"

Ошибка: Get-ChildItem: Невозможно найти путь '\ servername.net \ abcd \', так как он не существует. В строке: 2 символа: 1 + Get-ChildItem '\ servername.net \ abcd \' + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~~~~~~~~~~~ + CategoryInfo: ObjectNotFound: (\ servername.net \ abcd: String) [Get-ChildItem], ItemNotFoundException + FullyQualifiedErrorId: PathNotFound, Microsoft.PowerShell.Commands.GetChildItemCommand

Не уверен, что кто-то сталкивался с этой проблемой и как решить эти проблемы с окружающей средой.

Любая помощь очень ценится.

Ошибка Power Shell

Ответы [ 2 ]

0 голосов
/ 10 марта 2020

После оценки окружений выяснилось, что эти проблемы с путями UN C возникают из-за различий в доменах.

Мой портативный компьютер и общий файловый архив находятся в одном домене, и именно так сценарий архивации работал без любые вопросы. Принимая во внимание, что сервер PROD, на котором я развернул сценарий, находится в другом домене.

Устранена проблема путем определения другого сервера PROD с тем же именем домена, что и у общего файла архива, и развертывание сценария с использованием расписания задач.

0 голосов
/ 03 марта 2020

Исходя из вашего скриншота, я считаю, что это ограничение Get-ChildItem доступа к путям UN C, в то время как текущим местоположением является SqlServer поставщик. Я вижу несколько вариантов:

  1. Отобразить PSDrive на путь ООН C, чтобы у Get-ChildItem был поставщик FileSystem, с которым можно работать напрямую.

    New-PSDrive -Name Z -Root "\\servername.net\abcd" -PSProvider FileSystem
    Get-ChildItem Z:
    
  2. Используйте другой метод для извлечения файлов и каталогов.

    [System.IO.Directory]::EnumerateFileSystemEntries("\\servername.net\abcd")
    
  3. Используйте стек расположений для go в FileSystem. Затем вернитесь к предыдущему PSDrive.

    Push-Location C:
    Get-ChildItem "\\servername.net\abcd"
    Pop-Location
    
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...