Habilitar el soporte de PSGallery

<img style="”float:" right;” src="”https://www.recastsoftware.com/wp-content/uploads/2021/10/Recast-Logo-Dark_Horizontal.svg”" alt="&quot;Imagen&quot;" height="”43″" width="”150″">

Adición de módulos de PowerShell | Soporte de PSGallery para WinPE

Gracias a David Segura por resolver esto y crear un módulo para actualizar su WinPE WIM, enlace en la parte inferior de la página. Si está utilizando su proceso, entonces no necesitará nada de esto. 🙂

Aquí cubriremos la adición de esta capacidad sin modificar su imagen de arranque y la activación de PSGallery durante WinPE en una secuencia de tareas. Esto cubrirá dos métodos diferentes para habilitar PSGallery

Requerimientos básicos

  • Agregar variable de entorno LOCALAPPDATA
  • Agregar módulos: PowerShellGet y PackageManagement

Adición de variable LOCALAPPDATA

Con este método, la variable solo dura la sesión en la que se creó, por lo que deberá ejecutar esto en cada script que desee llamar a PSGallery

[Sistema.Entorno]::SetEnvironmentVariable('LOCALAPPDATA',"$env:SystemDriveWindowssystem32configsystemprofileAppDataLocal")

Extracción de requisitos de Internet

Con este proceso, tenemos un único script de PowerShell que descargará los módulos requeridos de Internet y los instalará.

Tomé las URL de los archivos nupkg de los módulos que quería del Galería de PowerShell, luego, usando Invoke-WebRequest, los descargo, los extraigo y los coloco en su lugar.

Para un paso a través, mira este Entrada en el blog


param ( [string]$ModuleName ) #Setup LOCALAPPDATA Variable [System.Environment]::SetEnvironmentVariable('LOCALAPPDATA',"$env:SystemDriveWindowssystem32configsystemprofileAppDataLocal") $WorkingDir = $env:TEMP #PowerShellGet de PSGallery URL if (!(Get-Module -Name PowerShellGet)) { $PowerShellGetURL = "https://psg-prod-eastus.azureedge.net/packages/powershellget.2.2.5.nupkg" Invoke-WebRequest -UseBasicParsing -Uri $PowerShellGetURL -OutFile "$WorkingDirpowershellget.2.2.5.zip" $Null = Nuevo -Item -Path "$WorkingDir2.2.5" -ItemType Directory -Force Expand-Archive -Path "$WorkingDirpowershellget.2.2.5.zip" -DestinationPath "$WorkingDir2.2.5" $Null = New-Item -Path "$env:ProgramFilesWindowsPowerShellModulesPowerShellGet" -ItemType Directory -ErrorAction SilentlyContinue Move-Item -Path "$WorkingDir2.2.5" -Destination "$env:ProgramFilesWindowsPowerShellModulesPowerShellGet2.2.5" } #PackageManagement from PSGallery URL if (!(Get-Module -Name PackageManagement)){ $PackageManagementURL = "https://psg-prod-eastus.azureedge.net/packages/packagemanagement.1.4.7.nupkg" Invoke-WebRequest -UseBasicParsing -Uri $PackageManagementURL -OutFile " $WorkingDirpackagemanagement.1.4.7.zip" $Null = Nuevo elemento -Path "$WorkingDir1.4.7" -ItemType Directory -Force Expand-Archive -Path "$WorkingDirpackagemanagement.1.4.7.zip" -DestinationPath "$WorkingDir1.4.7" $Null = Nuevo- Item -Path "$env:ProgramFilesWindowsPowerShellModulesPackageManagement" -ItemType Directory -ErrorAction SilentlyContinue Move-Item -Path "$WorkingDir1.4.7" -Destination "$env:ProgramFilesWindowsPowerShellModulesPackageManagement1.4.7" } #Import PowerShellGet Import-Module PowerShellGet #Install -Force -AcceptLicense -SkipPublisherCheck Import-Module -Name $ModuleName -Force

Ahora el script aprovecha un parámetro para que le pase el nombre de un módulo que desea instalar.

PSGallery

Extracción de requisitos del paquete ConfigMgr

En este método, ya descargó los archivos nupkg del módulo y los colocó en un paquete. Es esencialmente lo mismo, pero se extrae de sus propios servidores y le da control total.

El script es muy similar, pero se guarda en el paquete con la fuente y copia la fuente del paquete en lugar de Internet.

Script también disponible en GitHub

param ([string]$ModuleName) #Setup LOCALAPPDATA Variable [System.Environment]::SetEnvironmentVariable('LOCALAPPDATA',"$env:SystemDriveWindowssystem32configsystemprofileAppDataLocal") $WorkingDir = $env:TEMP #PowerShellGet if (!(Get-Module -Name PowerShellGet)){ Copy- Elemento "$PSScriptRootpowershellget.2.2.5.nupkg" -Destination "$WorkingDirpowershellget.2.2.5.zip" Expand-Archive -Path "$WorkingDirpowershellget.2.2.5.zip" -DestinationPath "$WorkingDir2.2.5" $Null = New-Item -Path " $env:ProgramFilesWindowsPowerShellModulesPowerShellGet" -ItemType Directory -ErrorAction SilentlyContinue Move-Item -Path "$WorkingDir2.2.5" -Destination "$env:ProgramFilesWindowsPowerShellModulesPowerShellGet2.2.5" } #PackageManagement if (!(Get-Module -Name PackageManagement)){ Copy-Item "" 1.4.7.nupkg" -Destino "$WorkingDirpackagemanagement.1.4.7.zip" Expand-Archive -Path "$WorkingDirpackagemanagement.1.4. 7.zip" -DestinationPath "$WorkingDir1.4.7" $Nul = New-Item -Path "$env:ProgramFilesWindowsPowerShellModulesPackageManagement" -ItemType Directory -ErrorAction SilentlyContinue Move-Item -Path "$WorkingDir1.4.7" -Destination "$env:ProgramFilesWindowsPowerShellModulesPackageManagement" -ItemType Directory -ErrorAction SilentlyContinue Move-Item -Path "$WorkingDir1.4.7" -Destination "$env:ProgramFilesWindowsPowerShellModulesPackageManagement4TIm4". PowerShellGet Import-Module PowerShellGet #Install Module from PSGallery Install-Module -Name $ModuleName -Force -AcceptLicense -SkipPublisherCheck Import-Module -Name $ModuleName -Force

PSGallery
PSGallery

En acción: video de YouTube

Para ver una demostración de la ejecución de estos scripts, consulte este video de YouTube:
PSGallery

Súper Sencillo

David Segura hizo todo el trabajo duro por usted, y si desea aprovechar sus scripts en línea, puede convertir esto en un simple paso con una línea de comando que configurará PS Gallery para usted, junto con agregar su módulo OSD y algunos otros artículos ingeniosos.

powershell.exe -executionpolicy bypass -command "Invoke-Expression (Invoke-RestMethod 'sandbox.osdcloud.com')"

PSGallery

Recomiendo encarecidamente comprobarlo, he movido mis procesos OSD de laboratorio para usar eso.

Enlaces de la comunidad

Acerca de Recast Software
1 de cada 3 organizaciones que utilizan Microsoft Configuration Manager confían en Right Click Tools para detectar vulnerabilidades y remediarlas más rápido que nunca.
Descargar herramientas gratuitas
Solicitar precio

Vea cómo Right Click Tools está cambiando la forma en que se administran los sistemas.

Aumente la productividad de inmediato con nuestra versión limitada y gratuita de la edición Community.

Comience con Right Click Tools hoy:

Compartir este:

Ayuda

  • Este campo es para fines de validación y no debe modificarse.

Contacto

  • Este campo es para fines de validación y no debe modificarse.
es_MXSpanish