AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / server / 问题

问题[windows](server)

Martin Hope
codechurn
Asked: 2025-04-21 12:03:24 +0800 CST

使用 Windows CA 生成通配符证书

  • 5

我正在尝试使用我的 Windows CA 颁发 *.internal Web 服务器证书,然后将其导入 PFSense 并与 HAProxy 一起使用。

  1. 在 CA 上,我已经打开了本地计算机范围内的证书管理器。
  2. 我导航到Personal,Certificates右键单击,然后Request New Certificate
  3. 在Certificate Enrollment我选择上Active Directory Enrollment Policy并单击下一步。
  4. 我选择Web Server证书模板并设置以下详细信息:
    主题选项卡
    Common Name: *.internal
    DNS Name: *.internal
    私钥选项卡
    Make Private Key Exportable
  5. 然后我点击“注册”。证书出现在我的个人存储中。我导出证书(包含私钥),然后将其导入 PFSense。
  6. 我配置了 HAProxy,使用证书进行 SSL 卸载。当我浏览网站时,收到以下错误:

浏览器证书错误消息

我在证书方面缺少什么/做错了什么?这是浏览网站后从浏览器下载的证书:

-----BEGIN CERTIFICATE-----
MIIFlzCCBH+gAwIBAgITXwAAAFLqU+W8kyBCaAAAAAAAUjANBgkqhkiG9w0BAQsF
ADBWMRMwEQYKCZImiZPyLGQBGRYDb3JnMRwwGgYKCZImiZPyLGQBGRYMdW5rbm93
bnJlYWxtMSEwHwYDVQQDExh1bmtub3ducmVhbG0tQUxERVJBQU4tQ0EwHhcNMjUw
NDIxMDE1MzU0WhcNMjcwNDIxMDE1MzU0WjAVMRMwEQYDVQQDDAoqLmludGVybmFs
MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0EJjEPYpn0SiGf0ww0Sb
mJjZHivy/Jp3XXG7R2aTjM1ppmemLYLwAyDzGTf7kb65IyoTxS9phf4CDgNjHO8L
yo3pShcpJ18OTSKtws/HcZ6aK7cBRcX1uUw3qBi+VVF9HSBSWJeD0W9xvjThnjsM
yjSRhpEz1kiNHLrM8MP7/UYxPLgUgixe3cIMSM3gpHJnavXJAyUQ84qdy3AbAKEd
2Z3TCK5DNcwoKX5t9fhH2HPEK7FPvUr0PMcxzj7qOqP0XnesKvRrIthSr2W80Zwo
hhn/o1Qqm64cI+fLkledUO3DcyeDwpFDZKxVNa55+zZ6FClBQfbPRuGC4XUD7aat
4QIDAQABo4ICnTCCApkwIQYJKwYBBAGCNxQCBBQeEgBXAGUAYgBTAGUAcgB2AGUA
cjATBgNVHSUEDDAKBggrBgEFBQcDATAOBgNVHQ8BAf8EBAMCBaAwHQYDVR0OBBYE
FMFXqU+0hAXEkDgI190PJmbU+FyYMBUGA1UdEQQOMAyCCiouaW50ZXJuYWwwHwYD
VR0jBBgwFoAUXh9BpJsAXE9DJWXlDJC1uE3Mx3kwggEkBgNVHR8EggEbMIIBFzCC
AROgggEPoIIBC4aBxWxkYXA6Ly8vQ049dW5rbm93bnJlYWxtLUFMREVSQUFOLUNB
LENOPWFsZGVyYWFuLENOPUNEUCxDTj1QdWJsaWMlMjBLZXklMjBTZXJ2aWNlcyxD
Tj1TZXJ2aWNlcyxDTj1Db25maWd1cmF0aW9uLERDPXVua25vd25yZWFsbSxEQz1v
cmc/Y2VydGlmaWNhdGVSZXZvY2F0aW9uTGlzdD9iYXNlP29iamVjdENsYXNzPWNS
TERpc3RyaWJ1dGlvblBvaW50hkFodHRwOi8vY3JsLmFsZGVyYWFuLnVua25vd25y
ZWFsbS5vcmcvdW5rbm93bnJlYWxtLUFMREVSQUFOLUNBLmNybDCBzwYIKwYBBQUH
AQEEgcIwgb8wgbwGCCsGAQUFBzAChoGvbGRhcDovLy9DTj11bmtub3ducmVhbG0t
QUxERVJBQU4tQ0EsQ049QUlBLENOPVB1YmxpYyUyMEtleSUyMFNlcnZpY2VzLENO
PVNlcnZpY2VzLENOPUNvbmZpZ3VyYXRpb24sREM9dW5rbm93bnJlYWxtLERDPW9y
Zz9jQUNlcnRpZmljYXRlP2Jhc2U/b2JqZWN0Q2xhc3M9Y2VydGlmaWNhdGlvbkF1
dGhvcml0eTANBgkqhkiG9w0BAQsFAAOCAQEAXAUSsAEV0tbjjJenu7RLtDWJcAvv
OlM86V9pQnJOjRovhImWql0Z/zByCtZrr0YmxVnV/Gnb3WWrKV20nHyaTrMXFD41
niiG58wddBTKo4eVP+GtBmosSpbdZQ09wBMI5b7c9IojlXv7Gt0vhxE25lg/Ie95
Ufi4RCnxIN3Af3EMhHIDcVbi87Mwenthf2KUMQbMTGuYkcFKgUJJgKvHFQE/0cij
R1wpiayy0yzYkNClly3IGCtgHiMOv5pDiFJEhVv9W5KlQNN0wGEdTXkbkwfj+ZwM
hSB1zJILyy6Eg+494qlvA0GMIAYEDCUy9h+xM8lp14Z4WV5a9Z8oTwzepQ==
-----END CERTIFICATE-----
windows
  • 1 个回答
  • 36 Views
Martin Hope
Joseph
Asked: 2025-04-16 16:20:15 +0800 CST

服务器显示链中不应该存在的根证书

  • 3

环境:Windows Server 2019,林/域功能级别 - 2016,约 40 个域控制器,约 17 个站点

PKI 结构:我们从第三方获得证书。我们向他们提交 CSR,并从他们那里获得证书。过去和现在,证书链的顺序是:根证书 > 中间证书 > 机器/用户证书

我在一个站点上有服务器1和服务器2-4,它们各自都有证书。如果我从服务器2检查(使用Windows UI)这两台服务器的证书链,证书链看起来与预期一致。如果我从服务器1检查,两台服务器的证书链顶部都莫名其妙地出现了另一个证书。

这使得我的根 CA 证书看起来像是由另一个证书颁发的,但事实并非如此。

我想知道为什么从不同的服务器查看时这些证书在根目录显示不同的证书。

服务器 1 在漏洞报告中显示由不受信任的证书颁发。服务器 2 未出现在此列表中。生成这些报告的服务器是一台 Linux 服务器,并且似乎正在使用 OpenSSL 执行这些检查。

我们采取的另一个故障排除步骤是剪切一个新的证书。在我导入证书之前,它显示了一个预期的证书链。导入之后,那个神秘的证书又出现了,而且又出现在根证书上方。

因此,在我导入它之前,证书链看起来像 Root > Intermediate > Machine 在我导入它之后,它看起来像这样:Mysterious New Root > Previous Root > Intermediate > Machine

windows
  • 1 个回答
  • 135 Views
Martin Hope
PMetal
Asked: 2025-04-16 03:28:21 +0800 CST

尽管区域设置正确,但位于美国的 Windows 10 PC 似乎认为它位于中国

  • 5

我有一台 Windows 10 电脑,原厂产自中国。现在它在美国。Windows 的区域设置最初是中国,但现在已更改为“美国”。

但是,当我浏览网页时,它会将我引导到中文版的网站。例如,Google.com 会部分显示中文。

这感觉就像我连接到了一个中国终端的VPN。但事实并非如此(至少就我所知)。

这台PC非常重要,因为它是工业激光切割机的控制器,并且内置在机器中。所以我无法轻易更换它。

我的互联网设置使用的是 DHCP,没有使用任何自定义 DNS 服务器。Windows 区域设置已设为“美国”。我已清除 Web 浏览器中的缓存。

有什么办法能让这台电脑像“普通”的美国电脑一样运行吗?或者,有没有办法判断这台电脑是否在我不知情的情况下通过VPN将流量路由到中国?

windows
  • 1 个回答
  • 45 Views
Martin Hope
Josh Brunton
Asked: 2025-03-21 18:20:44 +0800 CST

数据库还原后,SQL Server 2022 实例拒绝接受来自 sqlcmd 的命令

  • 5

语境

我有一个 powershell 脚本,用于在测试环境中为应用程序执行一些设置。除其他外,该脚本调用了sqlcmd多次。

几天前,我对数据库进行了还原。我使用 SQL Server Management Studio 20.2 将 BAK 文件还原到本地 Microsoft SQL Server 2022 实例(以下所有版本信息)。我使用 SSMS 还原数据库向导,使用 、 并关闭与数据库的现有连接来执行此WITH REPLACE操作WITH_RESTRICTED_USER。

然后,我尝试针对这个刚刚恢复的数据库运行配置脚本,就像我之前成功做过一百次一样。脚本首先确保 sqlcmd 已安装且为最新版本:

winget install sqlcmd

接下来,它执行以下格式的命令,其中 $Server 是.\sqlexpress而 $Database 可能有所不同(因此它似乎不是数据库特定的问题):

sqlcmd -S $Server -d $Database -E -Q "ALTER DATABASE..."

我没有指定是否使用 TCP 还是命名管道 - 我只是让它使用默认值。

问题

通常,每个 sqlcmd 都会在一秒内完成并输出类似于Commands completed successfully.或 的内容(7653 rows affected),但是,大约 45 秒后,我得到了每个命令的以下输出(注意:在一次命令调用中同一行会重复两次):

Timed out waiting for pipe '\\.\pipe\SQLLocal\sqlexpress' to come available
Timed out waiting for pipe '\\.\pipe\SQLLocal\sqlexpress' to come available

我尝试过的方法

除了明显的验证(SQL 服务器实例正在运行、连接详细信息正确等)之外,我还尝试过:

  • 再次恢复数据库,并再次关闭所有现有连接,以确保至少有一个连接可用
  • 重新启动 SQL 服务器实例
  • 重新启动整个机器

我尝试在 SSMS 中“手动”运行每个 SQL 查询,并且每个查询都没有报告错误并且观察到具有预期的效果,但是这个过程需要很长时间,必须复制出每个查询并替换变量,并时不时切换回 powershell 来运行非 SQL 命令。

问题)

发生了什么导致 sqlcmd 超时,我可以进行哪些更改以确保它能够按预期/习惯运行?


版本信息

SSMS 版本信息:

SQL Server Management Studio                        20.2.30.0
SQL Server Management Objects (SMO)                     17.100.40.0+f57178c95d4376485d3f597f2b829bbd6f80fd6f
Microsoft T-SQL Parser                      17.2.3.1+46115224c373754fdd41516eaae1386cabc4819e.46115224c373754fdd41516eaae1386cabc4819e
Microsoft Analysis Services Client Tools                        20.0.3.0
Microsoft Data SqlClient (MDS)                      5.1.5
Microsoft SQL Server Data-Tier Application Framework (DacFX)                        162.3.566.1+89d89fe935702c8836ebaf6a03cf61b85118f847.89d89fe935702c8836ebaf6a03cf61b85118f847
Microsoft .NET Framework                        4.0.30319.42000
Operating System                        10.0.22631

SQL 服务器 ( SELECT @@VERSION):

Microsoft SQL Server 2022 (RTM-GDR) (KB5046861) - 16.0.1135.2 (X64)   Oct 18 2024 15:31:58   Copyright (C) 2022 Microsoft Corporation  Express Edition (64-bit) on Windows 10 Enterprise 10.0 <X64> (Build 22631: ) (Hypervisor) 

从 Windows 中提取systeminfo:

OS Name:                   Microsoft Windows 11 Enterprise
OS Version:                10.0.22631 N/A Build 22631
OS Manufacturer:           Microsoft Corporation
OS Configuration:          Standalone Workstation
OS Build Type:             Multiprocessor Free
windows
  • 1 个回答
  • 87 Views
Martin Hope
Moses Mbadi
Asked: 2025-03-20 16:16:16 +0800 CST

挑战 在 Hyper 中管理磁盘

  • 8

我最近被委托管理几台服务器,其中一台特别难。我对在 Hyper-V 上管理服务器还比较陌生,所以我很小心,不会把事情搞砸。我有一个 Hyper-V VM,以下是属性 Hyper-V 虚拟机

当我访问里面的虚拟硬盘文件夹时,我看到以下内容: 虚拟硬盘

我最大的问题是主机磁盘已满,因此暂停虚拟机并显示“磁盘空间不足”警告,但在虚拟机内部我可以看到有足够的空间,如下所示:
Hyper-V VM 内部

我的想法是,我从虚拟机硬盘中取出一些空间并将其返回到主机。但是虚拟机有检查点,当我访问“检查点”选项卡尝试删除它们时,它告诉我由于有多个检查点,所以无法删除。 检查点警告

请帮助我弄清楚如何解决这个问题,同时也请对此事提供一些进一步的说明。

windows
  • 2 个回答
  • 296 Views
Martin Hope
SeanKilleen
Asked: 2025-03-20 03:56:54 +0800 CST

如何解决跨服务器的 SMB 连接之间的差异?

  • 10

背景

我最近继承了一组 Windows Server 2019 服务器。设置并不理想。它们都是工作组的一部分myworkgroup,但不涉及域。每个都有自己的本地管理员帐户。theadmin所有本地theadmin帐户都有相同的密码。一台服务器启用了共享文件夹。

总体布局如下:

  • 服务器A
    • 文件共享:(C:\Shared名称:“共享”)
    • 本地管理员:(ServerA\theadmin相同密码,例如redactedpw1234)
  • 服务器B
    • 本地管理员:(ServerB\theadmin相同密码,例如redactedpw1234)
  • 服务器C
    • 本地管理员:(ServerC\theadmin相同密码,例如redactedpw1234)
  • 服务器QA
    • 本地管理员:(ServerQA\theadmin相同密码,例如redactedpw1234)

挑战

在某个时候——很难准确指出具体时间——ServerQAtheadmin帐户现在可以读取\\ServerA\Shared,但无法修改或删除文件(看到以此帐户身份运行的计划任务存在问题,然后在以该帐户身份登录时通过 Windows 资源管理器进行验证)。

ServerB 和 ServerC 的theadmin账户似乎没有这个问题。当在这两台机器上登录本地账户时,我可以按预期theadmin查看和修改/创建/删除文件。\\ServerA\Shared

我的挑战可以总结如下:

  • ✅ ServerB、ServerC和ServerQA似乎具有相同的配置
  • ✅ServerB可以在 Windows 资源管理器中访问\\ServerA\Share并创建/修改文件
  • ✅ServerC可以在 Windows 资源管理器中访问\\ServerA\Share并创建/修改文件
  • ❌ServerQA可以在 Windows 资源管理器中读取,\\ServerA\Share但在尝试创建或修改文件时收到权限错误。

我尝试过的事情

  • 重启ServerQA服务器
  • Get-SmbConnection在所有服务器上。
    • ServerB、ServerC 和 ServerQA 上的设置模式似乎相同 - 用户列表[TheMachine]\theadmin与每个情况相同,并且凭证相同。因此,它们都使用本地theadmin凭证。
    • 该方言适用3.1.1于所有机器。
  • Get-SmbMultichannelConnection似乎所有这一切都表现出了同样的情况。
    • Interface index [The Ethernet1 index for the server], RSS: True, RDMA: False
  • 尝试删除并重新建立共享
    • 在 ServerQA 上,net use /delete \\ServerA\Shared
    • 在 ServerA 上,Get-SmbSession然后Close-SmbSession关闭该计算机的所有会话
    • 在 ServerQA 上net use \\ServerA\Shared /user:ServerQA\theadmin redactedpw1234重新建立
    • 在 ServerQA 上,net use确认Get-SmbConnection一切设置均符合预期
  • 在所有服务器上运行whoami /all并验证本地帐户都属于同一本地组。
  • 检查了各个服务器上的 SMBClient 和 SMBServer 事件日志。没有什么特别的。
  • 检查注册表。所有服务器的HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\LanmanWorkstation\Parameters
    • 虽然我可能错过了我应该寻找的其他地方?
  • Get-SmbClientConfiguration在所有服务器上返回相同的结果
  • 安装了NTFSSecurity powershell 模块并Get-NTFSEffectiveAccess -Path \\ServerA\Shared从所有服务器运行。全部返回结果。
  • 在 上ServerA,运行icacls "C:\Shared"。这返回 ServerA\theadmin 具有访问权限,但没有其他计算机的特定管理员帐户。所以我认为这不太相关。
  • 在ServerA,运行Get-SmbShareAccess -Name "Shared"。ServerA\theadmin用户出现在结果中,但没有theadmin具体提及其他机器的用户。
  • 运行并比较结果。权限下存在差异,但据我所知,它们似乎反映了本地 SID。但我对此不太熟悉secedit /export /cfg c:\Windows\temp\secpol.cfg。ServerBServerQA
  • 在每台服务器上运行gpresult /h并比较 HTML 文件。据我所知,没有区别。
  • 根据下面一个很好的答案,我检查了ServerQA服务器的注册表,看是否已正确HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System\LocalAccountTokenFilterPolicy设置。不幸的是,它已经正确设置了。1

问题

考虑到以上所有情况,我如何确定在这种情况下访问与访问ServerQA之间的差异?我是否应该考虑使用其他工具?我是否缺少一个常见的故障排除点来确定服务器之间的差异?我不知所措。ServerBServerC

更新--越来越近了?

ServerA重新启动(托管文件共享的客户端)和(有问题的客户端)后ServerQA,症状似乎消失了大约 10 分钟。我能够修改文件,并看到计划任务按预期运行并修改文件。然后症状又回来了,我没有采取任何行动,并且一直如此。

windows
  • 2 个回答
  • 422 Views
Martin Hope
shodanshok
Asked: 2025-03-19 16:12:58 +0800 CST

NTFS 64k 簇大小

  • 8

由于使用默认 NTFS 簇大小 (4K) 时卷的最大大小为 16T,我将迁移到一个新的 64K 簇大小的卷,并通过 复制所有数据robocopy。我没有使用压缩或重复数据删除。更大的簇大小是否存在已知的兼容性问题?除了小文件会浪费更多空间外,我还有什么需要特别注意的吗?

windows
  • 2 个回答
  • 169 Views
Martin Hope
calqium
Asked: 2025-03-06 01:17:28 +0800 CST

通过 WinGet 更新应用程序的脚本未通过 GPO 运行

  • 5

我在 PowerShell 中编写了以下脚本,通过 WinGet 更新应用程序,如果更新失败则强制卸载并重新安装:

<#
.SYNOPSIS
    Installs the Powershell WinGet client module.
.DESCRIPTION
    Checks to see if the Powershell WinGet client module is installed. If not, attempts to install it.
    If the install fails, exits the program.
.NOTES
    The module can be found here: https://www.powershellgallery.com/packages/Microsoft.WinGet.Client/1.10.320.
#>
function Install-WinGetClientModule {
    # Check if official Powershell WinGet client is installed.
    if (Get-Module -ListAvailable -Name Microsoft.WinGet.Client) {
        Write-Host "Powershell Module for the Windows Package Manager Client is installed."
    } else {
        # Install NuGet package provider, which is a requirement to install the module.
        Write-Host "Installing NuGet..."
        Install-PackageProvider -Name NuGet -MinimumVersion 2.8.5.201 -Force

        # Check if the NuGet installed successfully.
        if ($?) {
            Write-Host "Successfully installed." -ForegroundColor Green
        } else {
            # If install could not be completed, exit script.
            Write-Host "Could not install NuGet." -ForegroundColor Red
            exit
        }

        # Set PSGallery as a trusted repository to install from.
        Set-PSRepository -Name "PSGallery" -InstallationPolicy Trusted

        # Install the module.
        Write-Host "Installing the Powershell Module for the Windows Package Manager Client..."
        Install-Module -Name Microsoft.WinGet.Client

        # Check if the module installed successfully.
        if ($?) {
            Write-Host "Successfully installed." -ForegroundColor Green
        } else {
            # If install could not be completed, exit script.
            Write-Host "Could not install the Powershell Module for the Windows Package Manager Client." -ForegroundColor Red
            exit
        }
    }
}


<#
.SYNOPSIS
    Get WinGet applications that require updates.
#>
function Get-ApplicationsWithUpdates {
    # Store the applications with updates available through WinGet
    $applicationsWithUpdates = Get-WinGetPackage | Where-Object IsUpdateAvailable

    return $applicationsWithUpdates
}

<#
.SYNOPSIS
    Update applications though WinGet.
#>
function Update-Applications {
    param (
        [Parameter(Mandatory = $true)]
        [Array]$applicationsToUpdate
    )
    
    # Update each application provided.
    foreach ($app in $applicationsToUpdate) {
        $appName = $app.Name
        $appId = $app.Id
        Write-Host "Updating $appName..."
        
        # Update the application
        winget upgrade --id $appId --accept-package-agreements --accept-source-agreements
        
        # Check if the application was successfully updated.
        if ($?) {
            Write-Host "$appName updated to the latest version." -ForegroundColor Green
        } else {
            # If the update failed, attempt to reinstall.
            Write-Host "Failed to update $appName. Attempting to reinstall..."
            winget uninstall --id $appId --silent --accept-source-agreements
            winget install --id $appId --accept-package-agreements --accept-source-agreements

            # Check if the application reinstalled successfully.
            if ($?) {
                Write-Host "$appName updated to the latest version." -ForegroundColor Green
            } else {
                Write-Host "Failed to update $appName." -ForegroundColor Red
            }
        }
    }
}


function Main {
    # Get Powershell WinGet client.
    Install-WinGetClientModule

    # Check for application updates through WinGet.
    $applicationsToUpdate = Get-ApplicationsWithUpdates
    Write-Host $applicationsToUpdate

    # Check that the number of applications to update isn't 0.
    if ($applicationsToUpdate.Count -gt 0) {
        # Update applications.
        Update-Applications -ApplicationsToUpdate $applicationsToUpdate
    } else {
        Write-Host "All applications are up to date."
    } 
}


# Run the script.
Main

当我通过终端手动运行它时,它按预期工作。但是,它不能作为组策略启动脚本工作Computer Configuration\Policies\Windows Settings\Scripts(Startup/Shutdown)。

我通过将执行策略设置为“允许所有脚本”来打开脚本执行Computer Configuration\Policies\Administrative Templates\Windows Components\Windows Powershell(这仅用于测试,并未部署给所有用户)。

我一直在测试该脚本是否有效,方法是通过 WinGet 安装旧版本的程序、强制 gpupdate、重新启动计算机,并等待 5 分钟以上以允许脚本异步运行。到目前为止,我还没有成功让脚本运行。

我是否缺少了什么以使该脚本在启动时运行?

windows
  • 1 个回答
  • 75 Views
Martin Hope
phantom-99w
Asked: 2025-03-05 16:07:43 +0800 CST

如何在公司防火墙后面升级 PowerShellGet?

  • 6

我正在尝试在 Windows Server 2019 上将 PowerShellGet 从 1.0.0.1 版本升级到较新版本。我不是 NuGet 专家,但对包提供程序和包源有基本的了解。我一直在遵循Microsoft Learn 网站上的这个指南和这个指南以及其他指南。我位于公司防火墙后面,无法访问常规互联网。我们有一个Nexus实例,其中配置了以下存储库:

  • Nuget 代理名为 psgallery-proxy,网址为https://www.powershellgallery.com/api/v2/
  • Nuget 代理名为 nugetorg-proxy,网址为https://www.nuget.org/api/v2/

首先,我将 NuGet 提供程序版本 2.8.5.208 从另一台计算机复制到$env:ProgramFiles\PackageManagement\ProviderAssemblies\NuGet\2.8.5.208。然后在 Powershell 中执行了以下步骤:

[Net.ServicePointManager]::SecurityProtocol = [Net.ServicePointManager]::SecurityProtocol -bor [Net.SecurityProtocolType]::Tls12
Import-PackageProvider -Name NuGet -RequiredVersion 2.8.5.208
$cred = Get-Credential
Register-PackageSource -Name NexusNugetOrg -ProviderName Nuget -Location https://example.com/repository/nugetorg-proxy/ -Trusted -Credential $cred
Register-PSRepository -Name NexusPSGallery -SourceLocation https://example.com/repository/psgallery-proxy/ -InstallationPolicy Trusted -Credential $cred

运行这些命令后,我得到以下内容,在我看来这是正确的:

PS C:\Windows\system32> Get-PackageProvider -ListAvailable

Name                     Version          DynamicOptions
----                     -------          --------------
msi                      3.0.0.0          AdditionalArguments
msu                      3.0.0.0
NuGet                    2.8.5.208        Destination, ExcludeVersion, Scope, SkipDependencies, Headers, FilterOnTag, Contains, AllowPrereleaseVersions, ConfigFile, SkipValidate
PowerShellGet            1.0.0.1          PackageManagementProvider, Type, Scope, AllowClobber, SkipPublisherCheck, InstallUpdate, NoPathUpdate, Filter, Tag, Includes, DscResource, RoleCapability, Command, PublishLocation, ScriptSourceLocation, ScriptPublishLocation
Programs                 3.0.0.0          IncludeWindowsInstaller, IncludeSystemComponent
 

PS C:\Windows\system32> Get-PackageSource

Name                             ProviderName     IsTrusted  Location
----                             ------------     ---------  --------
NexusNugetOrg                    NuGet            True       https://example.com/repository/nugetorg-proxy/
NexusPSGallery                   PowerShellGet    True       https://example.com/repository/psgallery-proxy/

PS C:\Windows\system32> (Get-ItemPropertyValue -LiteralPath 'HKLM:SOFTWARE\Microsoft\NET Framework Setup\NDP\v4\Full' -Name Release) -ge 394802
True

我可以安装普通软件包。如果我运行以下命令,模块安装成功,并且我可以dbatools在 Nexus 中看到它:

Install-Module -Name dbatools -Force -Credential $cred -Repository NexusPSGallery

但是,我无法升级 PowerShellGet。我得到以下输出:

PS C:\Windows\system32> Install-Module -Name PowerShellGet -Force -AllowClobber -Credential $cred -Repository NexusNugetOrg
PackageManagement\Get-PackageSource : Unable to find repository 'NexusNugetOrg'. Use Get-PSRepository to see all available repositories.
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:4489 char:35
+ ... ckageSources = PackageManagement\Get-PackageSource @PSBoundParameters
+                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Microsoft.Power...etPackageSource:GetPackageSource) [Get-PackageSource], Exception
    + FullyQualifiedErrorId : SourceNotFound,Microsoft.PowerShell.PackageManagement.Cmdlets.GetPackageSource
 
PS C:\Windows\system32> Install-Module -Name PowerShellGet -Force -AllowClobber -Credential $cred -Repository NexusPSGallery
PackageManagement\Install-Package : No match was found for the specified search criteria and module name 'PowerShellGet'. Try Get-PSRepository to see all available registered module repositories.
At C:\Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:1809 char:21
+ ...          $null = PackageManagement\Install-Package @PSBoundParameters
+                      ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (Microsoft.Power....InstallPackage:InstallPackage) [Install-Package], Exception
    + FullyQualifiedErrorId : NoMatchFoundForCriteria,Microsoft.PowerShell.PackageManagement.Cmdlets.InstallPackage

我缺少什么才能成功运行 Install-Module PowerShellGet?

windows
  • 1 个回答
  • 78 Views
Martin Hope
Pacs31
Asked: 2025-02-19 16:54:49 +0800 CST

本地进程之间的镜像/反向 TCP 连接

  • 5

我有一个带有 SignarR 客户端的 Web 服务器。拓扑如下:

客户端--Caddy--IIS

客户端——只是 JS SignalR 客户端。

Caddy——作为反向代理。

通用 exe 文件或 WSL 1 服务。(我尝试了这两个选项,它们在我的问题中是相同的)。端口 8811 到 8082。IIS - 基于 .Net 8 的 Api 应用程序。

我注意到每个客户端都创建了三个 TCP 连接,1 个到 Caddy + 2 个“镜像”,尽管我预计是两个,客户端 -- Caddy + Caddy -- IIS。

netstat 输出(8811 - caddy,客户端在此处连接。8082 - IIS 站点绑定):

TCP    192.168.21.42:8811     CLIENT:57803         ESTABLISHED
TCP    127.0.0.1:8082         SERVER:50121         ESTABLISHED
TCP    127.0.0.1:50121        SERVER:8082          ESTABLISHED

第 2 行和第 3 行是什么意思?

为什么是同时呢?

windows
  • 1 个回答
  • 72 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    新安装后 postgres 的默认超级用户用户名/密码是什么?

    • 5 个回答
  • Marko Smith

    SFTP 使用什么端口?

    • 6 个回答
  • Marko Smith

    命令行列出 Windows Active Directory 组中的用户?

    • 9 个回答
  • Marko Smith

    什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同?

    • 3 个回答
  • Marko Smith

    如何确定bash变量是否为空?

    • 15 个回答
  • Martin Hope
    Tom Feiner 如何按大小对 du -h 输出进行排序 2009-02-26 05:42:42 +0800 CST
  • Martin Hope
    Noah Goodrich 什么是 Pem 文件,它与其他 OpenSSL 生成的密钥文件格式有何不同? 2009-05-19 18:24:42 +0800 CST
  • Martin Hope
    Brent 如何确定bash变量是否为空? 2009-05-13 09:54:48 +0800 CST
  • Martin Hope
    cletus 您如何找到在 Windows 中打开文件的进程? 2009-05-01 16:47:16 +0800 CST

热门标签

linux nginx windows networking ubuntu domain-name-system amazon-web-services active-directory apache-2.4 ssh

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve