Модуль PowerShell SqlServer імпортує лише функції та псевдоніми, але ніяких командлетів


3

Я намагаюся використовувати модуль SqlServer PowerShell, доступний у галереї PowerShell .

Після встановлення або до -Scope CurrentUserсеансу адміністратора, виконуючи Import-Module SqlServerлише три імпортування в сеанс трьох команд:

PS C:\Users\nreiling> Get-Command -Module SqlServer

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Alias           Decode-SqlName                                     21.0.17262 sqlserver
Alias           Encode-SqlName                                     21.0.17262 sqlserver
Function        SQLSERVER:                                         21.0.17262 sqlserver

Це незважаючи на той факт, що при виконанні (Get-Module -Name SqlServer -ListAvailable)[0].ExportedCommands.Valuesсписків виводяться всі команди, які повинні бути включені:

CommandType     Name                                               Version    Source
-----------     ----                                               -------    ------
Cmdlet          Add-RoleMember                                     21.0.17262 SqlServer
Cmdlet          Add-SqlAvailabilityDatabase                        21.0.17262 SqlServer
Cmdlet          Add-SqlAvailabilityGroupListenerStaticIp           21.0.17262 SqlServer
Cmdlet          Add-SqlAzureAuthenticationContext                  21.0.17262 SqlServer
Cmdlet          Add-SqlColumnEncryptionKeyValue                    21.0.17262 SqlServer
Cmdlet          Add-SqlFirewallRule                                21.0.17262 SqlServer
Cmdlet          Add-SqlLogin                                       21.0.17262 SqlServer
Cmdlet          Backup-ASDatabase                                  21.0.17262 SqlServer
Cmdlet          Backup-SqlDatabase                                 21.0.17262 SqlServer
                                        ...
Cmdlet          Test-SqlSmartAdmin                                 21.0.17262 SqlServer
Cmdlet          Write-SqlTableData                                 21.0.17262 SqlServer
Function        SQLSERVER:                                         21.0.17262 SqlServer
Alias           Decode-SqlName                                     21.0.17262 SqlServer
Alias           Encode-SqlName                                     21.0.17262 SqlServer

Я спробував встановити старішу версію модуля SqlServer, а також спробував інший обліковий запис користувача на своїй машині. Багато перезавантажень, нових сеансів PS і т. Д. Запуск Import-Moduleу режимі багатослівного / налагодження не призводить до помилок, він лише імпортує лише функцію та псевдоніми; жоден із Cmdlets. Проблемним фактором, здається, є саме ця система Windows, яка є Windows 10 Pro 1803.

Варто також зазначити, що я намагаюся використовувати цей модуль лише тому, що модуль sqlps, який встановлюється разом із SQL Server Management Studio, перестав працювати на цій машині. Я не знаю, чому так було; мої здогадки стосувалися оновлення для Windows або SSMS, але для того, щоб дійти до того, що принаймні модуль SqlServer встановлюється без помилок та попереджень про клобірування, я видалив цей модуль зі свого $ PSModulePath. Щось, здавалося б, одночасно порушилось, це те, що мій список WSMan TrustedHosts був скинутий (порожній), викликаючи проблеми з видаленням PowerShell, які я вирішив раніше (ця машина не приєдналася до домену).

Як у біса я це усуваю?


Ви просто використовуєте цю машину Windows 10 як клієнт для доступу на рівні клієнта тощо? Або ця машина Windows 10 має критичні БД, які використовуються як сервер? Цікаво, що це sqlpsперестало працювати, але, сподіваємось, це просто клієнтська машина, а не використовується як критичний сервер, оскільки це машина Windows 10, а не Windows Server. Це звучить як дузи, хоча, але дуже погано, що ви не могли спробувати отримати sqlpsробочий натомість. Якщо у вас тут не так багато удачі, не забудьте про dba.stackexchange.com, якщо потрібно.
Pimp Juice IT

@PimpJuiceIT Правильно, на цій машині встановлені лише інструменти управління. Поки що це пахне проблемою PowerShell, а не проблемою SQL Server, тому я не публікував у DBA.SE. Я думаю, я хотів би перевірити встановлення / імпорт модуля PS, який також використовує компільовані Cmdlets замість просто функцій, і перевірити, чи це працює, але я не знаю, де це шукати.
NReilingh

Яку версію PowerShell ви запустите до речі? Я припускаю 5.0, але, можливо, це також підтверджує. Ви можете бігти ...$PSVersionTable
Pimp Juice IT

5.1.17134.48 - майже впевнений, що це поточна стабільна версія.
NReilingh

Я просто перевірив це, і я не отримую такого ж результату, як ви. Я запустив PowerShell ISE в якості адміністратора, а потім встановив його через, Install-Module -Name SqlServerале у мене вже був встановлений пакет NuGet або будь-що для інших модулів, які я встановив таким чином, а не завантажував їх вручну тощо, якщо це навіть має значення. Також здається, що мені не довелося до Import-Module SqlServerнаступного, і я просто пішов правильно, Get-Command -Module SqlServerі це відобразило їх усіх.
Pimp Juice IT

Відповіді:


3

Виглядає, що джерелом проблеми є зламана установка .Net 4.7.2, що періодично трапляється при встановленні оновлення 1803 Windows 10.

Єдиний спосіб, який мені вдалося вирішити, це встановлення Windows 10 для відновлення . Це перевстановлює всі основні файли та конфігурацію ОС, але не видаляє ваші програми чи дані. Але перед тим, як зробити це, переконайтесь, що резервне копіювання будь-яких важливих документів.

Інші знайшли успіх у:

Ви можете спробувати виконати ці дії, перш ніж виконати відновлення інсталяції Windows. Вони не працювали для моєї ситуації.


1
Дивовижний. Ремонтна установка працювала просто чудово - велике спасибі за ваші зусилля, щоб це з'ясувати
NReilingh
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.