Команды PowerShell V6 SmbShare, возвращающие ошибку ... не распознаются как имя командлета, функции, файла сценария или работоспособной программы - PullRequest
0 голосов
/ 24 октября 2018

Я новичок в PowerShell, так что это может быть основной недосмотр.На Windows 10 Pro (для разработки) и Windows Server 2016 (целевая среда) я установил последнюю выпущенную версию PowerShell.

(Get-Host).Version дает Major 6, Minor 1, Build 0, Revision -1.

Моя первая ошибка?как версия PowerShell уже установлена ​​по умолчанию?

Процесс, который я пытаюсь автоматизировать, состоит в том, чтобы предоставить общий доступ к диску резервного картриджа с физических компьютеров хоста и получить к нему доступ в качестве общего сетевого ресурса для виртуальных машин (Hyper-V) для резервного копирования.В разработке я просто использую USB-накопитель, но ошибки одинаковы в обеих средах.

Я получаю ошибки в любой из команд SMBShare:

Get-SmbShare, Remove-SmbShare, New-SMBShare.

Ошибкив формате:

«Термин« Get-SmbShare »не распознается как имя командлета, функции, файла сценария или работоспособной программы»

Iзапускаю Powershell от имени администратора и получаю те же ошибки при наборе текста напрямую или при запуске сценария.

Что-то мне нужно добавить / импортировать, чтобы использовать команды SMBShare?

1 Ответ

0 голосов
/ 24 октября 2018

PowerShell сломался;все до v5.1 было только Windows, затем v6 стал кроссплатформенным, перенеся его на новый фундамент, и это потеряло большую совместимость.

Самый простой способ продвинуться вперед - это использовать PowerShell 5.1, если вам не нужна версия 6 для какой-либо конкретной функции.Или использовать 6 для запуска 5.1 и запуска скрипта, так же, как вы можете запускать движки Python или VBScript для запуска скрипта.

Но если вы остаетесь с 6, то есть другой вариант - Microsoft выпустила Модуль WindowsCompatibility - все еще ранний выпуск, поэтому не подвергался тщательному тестированию.Это дает возможность запускать модули Windows внутри PS v6 (только в Windows, а не на кроссплатформенном).

Вам потребуется установить его с правами администратора:

Install-Module WindowsCompatibility

ЗатемВы можете:

Import-Module WindowsCompatibility
Import-WinModule SmbShare
Get-SmbShare
...