community.windows.win_psrepository_copy 模块 – 将注册的 PSRepository 复制到其他用户配置文件

注意

此模块是 community.windows 集合 (版本 2.3.0) 的一部分。

如果您使用的是 ansible 包,您可能已经安装了此集合。它不包含在 ansible-core 中。要检查是否已安装,请运行 ansible-galaxy collection list

要安装它,请使用:ansible-galaxy collection install community.windows

要在 playbook 中使用它,请指定:community.windows.win_psrepository_copy

community.windows 1.3.0 中的新增功能

概要

  • 将指定的已注册 PSRepository 复制到系统上的其他用户配置文件。

  • 可以包括 Default 配置文件,以便新用户从选定的存储库开始。

  • 可以包括像本地 SYSTEM 用户、LocalService、NetworkService 这样的特殊服务帐户。

参数

参数

注释

exclude

列表 / 元素=字符串

要排除的存储库的名称。

名称被解释为通配符。

如果一个名称同时匹配包含 (name) 和排除,它将被排除。

exclude_profiles

列表 / 元素=字符串

要排除的用户配置文件的名称。

如果一个配置文件同时匹配包含 (profiles) 和exclude_profiles,它将被排除。

默认情况下,服务帐户配置文件被排除。

要显式排除任何内容,请设置 exclude_profiles=[]

默认值: ["systemprofile", "LocalService", "NetworkService"]

name

列表 / 元素=字符串

要复制的存储库的名称。

名称被解释为通配符。

默认值: ["*"]

profiles

列表 / 元素=字符串

要使用存储库填充的用户配置文件的名称。

名称被解释为通配符。

也可以匹配 Default 配置文件。

无法以 PublicAll Users 配置文件为目标,因为 PSRepositories 不会从中加载。

默认值: ["*"]

source

path

源存储库 XML 文件的完整路径。

默认为当前用户注册的存储库。

默认值: "%LOCALAPPDATA%\\Microsoft\\Windows\\PowerShell\\PowerShellGet\\PSRepositories.xml"

注意

注意

  • 不需要 PowerShellGet 模块或任何其他外部依赖项。

  • 用户配置文件从注册表加载。如果给定的路径不存在(例如,如果配置文件目录被删除),它将被静默跳过。

  • 如果设置服务帐户配置文件,您可能需要 become=yes。请参阅示例。

  • 当 PowerShellGet 首次设置存储库文件时,它总是添加 PSGallery,但是如果此模块创建一个新的存储库文件并且您选择的存储库不包含 PSGallery,它将不会在您的目标中。

  • profiles(和 exclude_profiles)中搜索的值是配置文件名称,不一定是用户名。当配置文件路径被故意更改或当域用户名与来自本地计算机或另一个域的用户冲突时,可能会发生这种情况。在这种情况下,第二个或多个用户可能会附加域名或本地计算机名称,例如 JoeUser.ContosoJoeUser。如果您打算过滤用户配置文件,请确保您的过滤器捕获正确的名称。

  • 在服务帐户的情况下,特定配置文件是 systemprofile(对于 SYSTEM 用户),以及 LocalServiceNetworkService,分别对应这些帐户。

  • 具有凭据(需要身份验证)或代理信息的存储库将复制,但凭据和代理详细信息不会复制,因为该信息不会与存储库一起存储。

另请参阅

另请参阅

community.windows.win_psrepository

添加、删除或更新 Windows PowerShell 存储库。

community.windows.win_psrepository_info

收集有关 PSRepositories 的信息。

示例

- name: Copy the current user's PSRepositories to all non-service account profiles and Default profile
  community.windows.win_psrepository_copy:

- name: Copy the current user's PSRepositories to all profiles and Default profile
  community.windows.win_psrepository_copy:
    exclude_profiles: []

- name: Copy the current user's PSRepositories to all profiles beginning with A, B, or C
  community.windows.win_psrepository_copy:
    profiles:
      - 'A*'
      - 'B*'
      - 'C*'

- name: Copy the current user's PSRepositories to all profiles beginning B except Brian and Brianna
  community.windows.win_psrepository_copy:
    profiles: 'B*'
    exclude_profiles:
      - Brian
      - Brianna

- name: Copy a specific set of repositories to profiles beginning with 'svc' with exceptions
  community.windows.win_psrepository_copy:
    name:
      - CompanyRepo1
      - CompanyRepo2
      - PSGallery
    profiles: 'svc*'
    exclude_profiles: 'svc-restricted'

- name: Copy repos matching a pattern with exceptions
  community.windows.win_psrepository_copy:
    name: 'CompanyRepo*'
    exclude: 'CompanyRepo*-Beta'

- name: Copy repositories from a custom XML file on the target host
  community.windows.win_psrepository_copy:
    source: 'C:\data\CustomRepostories.xml'

### A sample workflow of seeding a system with a custom repository

# A playbook that does initial host setup or builds system images

- name: Register custom respository
  community.windows.win_psrepository:
    name: PrivateRepo
    source_location: https://example.com/nuget/feed/etc
    installation_policy: trusted

- name: Ensure all current and new users have this repository registered
  community.windows.win_psrepository_copy:
    name: PrivateRepo

# In another playbook, run by other users (who may have been created later)

- name: Install a module
  community.windows.win_psmodule:
    name: CompanyModule
    repository: PrivateRepo
    state: present

作者

  • Brian Scholer (@briantist)