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=""Imagen"" 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.
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
En acción: video de YouTube
Para ver una demostración de la ejecución de estos scripts, consulte este video de YouTube:
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')"
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: