PowerShell安装-找不到与指定的搜索条件和模块名称匹配的匹配项

vxf3dgd4  于 2023-06-23  发布在  Shell
关注(0)|答案(7)|浏览(223)

我有一个困难的时间安装/更新我的powershell模块。我在安装DBA Tools模块时注意到了这一点。参考链接是https://dbatools.io/download/https://github.com/sqlcollaborative/dbatools
这是一台公司电脑。但我知道我已经安装了其他模块之前在过去。有人知道发生了什么吗

    • PS(Admin)>**

Install-Module DBATools

    • 注意:Install-Module命令在返回警告消息之前会暂停数分钟。*

警告:无法解析软件包源“https://www.powershellgallery.com/api/v2”。错误:"PackageManagement\Install-Package:未找到与指定的搜索条件和模块名称“PowerShellGet”匹配的项。
Update-Module PowerShellGet
错误:"更新模块:模块'PowerShellGet'未使用Install-Module安装,因此无法更新。"。
Update-Module PowerShellGet -Force
错误:"更新模块:模块'PowerShellGet'未使用Install-Module安装,因此无法更新。"。
Find-Module dbatools

    • 注意:Find-Module命令在返回错误消息之前会暂停数分钟。*

错误:"未找到指定搜索条件和模块名称'dbatools'的匹配项。尝试Get-PSRepository查看所有可用的已注册模块存储库。"
Get-PSRepository | fl *
Name:zhang cheng
来源位置:https://www.powershellgallery.com/api/v2
信任:假
注册:真的
安装政策:不可信
PackageManagementProvider:NuGet
发布位置:https://www.powershellgallery.com/api/v2/package/
ScriptSourceLocation:https://www.powershellgallery.com/api/v2/items/psscript
ScriptPublishLocation:https://www.powershellgallery.com/api/v2/package/
提供商选项:{}
Get-Module PackageManagement -ListAvailable
目录:C:\Program Files\WindowsPowerShell\Modules
ModuleType版本名ExportedCommands
二进制www.example.com PackageManagement {Find-Package,Get-Package,Get-PackageProvider,Get-Packa... 1.0.0.1 PackageManagement {Find-Package, Get-Package, Get-PackageProvider, Get-Packa...
二进制www.example.com PackageManagement {Find-Package,Get-Package,Get-PackageProvider,Get-Packa... 1.0.0.1 PackageManagement {Find-Package, Get-Package, Get-PackageProvider, Get-Packa...

Get-Module -ListAvailable |
 Where-Object ModuleBase -like $env:ProgramFiles\WindowsPowerShell\Modules\* |
 Sort-Object -Property Name, Version -Descending |
 Get-Unique -PipelineVariable Module |
 ForEach-Object {
     if (-not(Test-Path -Path "$($_.ModuleBase)\PSGetModuleInfo.xml")) {
         Find-Module -Name $_.Name -OutVariable Repo -ErrorAction SilentlyContinue |
         Compare-Object -ReferenceObject $_ -Property Name, Version |
         Where-Object SideIndicator -eq '=>' |
         Select-Object -Property Name,
                                 Version,
                                 @{label='Repository';expression={$Repo.Repository}},
                                 @{label='InstalledVersion';expression={$Module.Version}}
     }

 }

警告:无法解析软件包源“https://www.powershellgallery.com/api/v2”。警告:无法解析软件包源“https://www.powershellgallery.com/api/v2”。警告:无法解析软件包源“https://www.powershellgallery.com/api/v2”。警告:无法解析软件包源“https://www.powershellgallery.com/api/v2”。警告:无法解析软件包源“https://www.powershellgallery.com/api/v2”。

$webclient=New-Object System.Net.WebClient
$webclient.Proxy.Credentials = [System.Net.CredentialCache]::DefaultNetworkCredentials
[Net.ServicePointManager]::SecurityProtocol = "tls12"
Find-Module dbatools

警告:无法解析软件包源“https://www.powershellgallery.com/api/v2”。
PackageManagement\Find-Package:未找到与指定的搜索条件和模块名称“dbatools”匹配的项。尝试Get-PSRepository查看所有可用的已注册模块存储库。
Invoke-WebRequest https://www.powershellgallery.com/api/v2
Invoke-WebRequest:基础连接已关闭:连接意外关闭。

    • 我试过的一些参考资料**

Windows 10-Powershell不会使用install-module-Stack Overflow Powershell won't install almost any module using install-module安装几乎任何模块
有一个脚本:安装模块-无法解析软件包源'https//www.powershellgallery.com/api/v2/'https://vanbrenk.blogspot.com/2017/09/install-module-unable-to-resolve.html
从PowerShell库更新手动安装的PowerShell模块-Mike F Robbins https://mikefrobbins.com/2016/06/09/update-manually-installed-powershell-modules-from-the-powershell-gallery/
更新模块:模块“PowershellGet”未使用Install-Module安装,因此无法更新。- Evotec https://evotec.xyz/update-module-module-powershellget-was-not-installed-by-using-install-module-so-it-cannot-be-updated/

khbbv19g

khbbv19g1#

我遇到了同样的错误安装不同的模块。我的修正是为.net安全协议指定TLS1.2。

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
rpppsulh

rpppsulh2#

尝试运行Register-PSRepository -Default

lyfkaqu1

lyfkaqu13#

感谢斯蒂芬,rouxquasar它与下面的顺序为我Windows 2016数据中心,KB4598243,执行策略设置正确,所以没有处理.
1.启用TLS 1.2
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
1.注册默认PS Gallery Repo(可能会检查Get-PSRepository | fl*以防万一)
Register-PSRepository -Default

  1. Install-Module dbatools(在验证之前检查Find-Module
    如果存在旧版本的dbatools,请使用-Force开关。
qq24tv8q

qq24tv8q4#

为我修复了将PS默认存储库重新注册为管理员的问题:

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
  Unregister-PSRepository -Name PSGallery
  Register-PSRepository -Default
  Find-Module dbatools
relj7zay

relj7zay5#

我尝试了register-psrepository,它执行时没有任何错误,但当我尝试get-psrepository后,它仍然给出相同的错误消息“警告:无法找到模块存储库。",我尝试了不同的选项下面的步骤为我工作:
1.用不同的名称注册ps仓库,并使用相同的psgallery API作为源位置。Register-PSRepositoryPSGallery1-SourceLocation“https://www.powershellgallery.com/api/v2“-InstallationPolicy Trusted
1.设置存储库Set-PSRepository PSGallery 1
1.现在,当我检查仓库时,它的工作方式就像charm PSGAllery1 is the Name I have used

f3temu5u

f3temu5u6#

已启用组策略以允许脚本并将执行策略设置为绕过。我现在可以安装模块了。但是,我必须运行安装与范围当前用户,我仍然无法安装与作为管理员powershell。
模块安装

Install-Module DBATools -Scope CurrentUser

组策略(修复)

#*****************
FIX ...
#*****************

## PS (As Admin)
gpedit.msc
# Navigate to: Computer Configuration > Administrative Templates > Windows Components > Windows PowerShell. Change the “Turn on Script Execution”
# Turn on Script Execution > Enabled, Policy "Allow all scripts"

## PS (As Admin)
Set-ItemProperty -Path HKLM:\Software\Policies\Microsoft\Windows\PowerShell -Name ExecutionPolicy -Value ByPass

<# 
#*****************
REFERENCE ...
#*****************
 Windows PowerShell - the setting is overridden by a policy defined at a more specific scope
 https://vladtalkstech.com/2015/03/windows-powershell-updated-execution-policy-successfully-setting-overridden-policy-defined-specific-scope.html

 Change the PowerShell MachinePolicy Execution Policy in WS 2012R2
 https://vladtalkstech.com/2014/03/change-powershell-machinepolicy-execution-policy-windows-server-2012r2.html
#>

#*****************
CAUSE ...
#*****************

Get-ExecutionPolicy –List

Set-ExecutionPolicy -Scope MachinePolicy Unrestricted

## However, you might have an error saying it can only be done via Group Policy.
## “Set-ExecutionPolicy : Cannot set execution policy. Execution policies at the MachinePolicy or UserPolicy scopes mustbe set through Group Policy
mwngjboj

mwngjboj7#

尝试以管理员身份运行powerShellWindowsTerminal**,然后在尝试任何复杂的解决方案之前重新输入命令,这在大多数情况下都有帮助。

相关问题