Ativar suporte PSGallery

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

Adicionando módulos do PowerShell | Suporte PSGallery para WinPE

Obrigado a David Segura por descobrir isso e criar um módulo para atualizar seu WinPE WIM, link na parte inferior da página. Se você estiver usando o processo dele, não precisará de nada disso. 🙂

Aqui, abordaremos a adição dessa capacidade sem modificar sua imagem de inicialização e habilitando o PSGallery durante o WinPE em uma sequência de tarefas. Isso cobrirá dois métodos diferentes para habilitar o PSGallery

Requisitos básicos

  • Adicionar Variável de Ambiente LOCALAPPDATA
  • Adicionar Módulos: PowerShellGet & PackageManagement

Adicionando Variável LOCALAPPDATA

Usando este método, a variável só dura a sessão em que foi criada, então você precisa executá-la em cada script que deseja chamar de PSGallery

[System.Environment]::SetEnvironmentVariable('LOCALAPPDATA',"$env:SystemDriveWindowssystem32configsystemprofileAppDataLocal")

Puxando requisitos da Internet

Com esse processo, temos um único script do PowerShell que fará o download dos módulos necessários da Internet e os instalará.

Eu peguei as URLs para os arquivos nupkg dos módulos que eu queria do Galeria PowerShell, em seguida, usando Invoke-WebRequest, faço o download, extraio e movo para o lugar.

Para obter um passo a passo, verifique este Postagem do blog


param ( [string]$ModuleName ) #Setup LOCALAPPDATA Variável [System.Environment]::SetEnvironmentVariable('LOCALAPPDATA',"$env:SystemDriveWindowssystem32configsystemprofileAppDataLocal") $WorkingDir = $env:TEMP #PowerShellGet from 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 = Novo -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 = New-Item -Path "$WorkingDir1.4.7" -ItemType Directory -Force Expand-Archive -Path "$WorkingDirpackagemanagement.1.4.7.zip" -DestinationPath "$WorkingDir1.4.7" $Null = New- Item -Caminho "$env:ProgramFilesWindowsPowerShellModulesPackageManagement" -ItemType Directory -ErrorAction SilentlyContinue Move-Item -Path "$WorkingDir1.4.7" -Destination "$env:ProgramFilesWindowsPowerShellModulesPackageManagement1.4.7" } #Import PowerShellGet Import-Module PowerShellGet #Install Module from PS4TInstall Module from PS4TInstall Module -Force -AcceptLicense -SkipPublisherCheck Import-Module -Name $ModuleName -Force

Agora o Script aproveita um parâmetro para você passar o nome de um módulo que deseja instalar.

PSGallery

Extração de requisitos do pacote ConfigMgr

Neste método, você já baixou os arquivos do módulo nupkg e os colocou em um pacote. É essencialmente a mesma coisa, mas puxa de seus próprios servidores e oferece controle total.

O script é muito semelhante, mas é mantido no pacote com o código-fonte e copia o código-fonte do pacote em vez da internet.

Script também disponível em GitHub

param ( [string]$ModuleName ) #Setup LOCALAPPDATA Variável [System.Environment]::SetEnvironmentVariable('LOCALAPPDATA',"$env:SystemDriveWindowssystem32configsystemprofileAppDataLocal") $WorkingDir = $env:TEMP #PowerShellGet if (!(Get-Module -Name PowerShellGet)){ Copiar- Item "$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 "$PS. 1.4.7.nupkg" -Destino "$WorkingDirpackagemanagement.1.4.7.zip" Expand-Archive -Caminho "$WorkingDirpackagemanagement.1.4. 7.zip" -DestinationPath "$WorkingDir1.4.7" $Null = New-Item -Path "$env:ProgramFilesWindowsPowerShellModulesPackageManagement" -ItemType Directory -ErrorAction SilentlyContinue Move-Item -Path "$WorkingDir1.4.7" -Destination "$env:ProgramFilesWindowsPowerShellModulesPackageManagement1.4.7" PowerShellGet Import-Module PowerShellGet #Install Module from PSGallery Install-Module -Name $ModuleName -Force -AcceptLicense -SkipPublisherCheck Import-Module -Name $ModuleName -Force

PSGallery
PSGallery

Em ação - vídeo do YouTube

Para ver uma demonstração da execução desses scripts, confira este vídeo do YouTube:
PSGallery

Super Simples

David Segura fez todo o trabalho duro para você, e se você quiser aproveitar seus scripts online, você pode transformar isso em uma simples etapa com uma linha de comando que configurará a PS Gallery para você, além de adicionar seu módulo OSD e alguns outros itens bacanas.

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

PSGallery

Eu recomendo verificá-lo, eu mudei meus processos OSD de laboratório para usar isso.

Links da comunidade

Sobre Recast Software
1 em cada 3 organizações que usam Microsoft Configuration Manager confia no Right Click Tools para detectar vulnerabilidades e remediar mais rápido do que nunca.
Baixe ferramentas grátis
Solicitar preços

Veja como Right Click Tools está mudando a forma como os sistemas são gerenciados.

Aumente imediatamente a produtividade com o nosso limitado e gratuito, Community Edition.

Comece com Right Click Tools hoje:

Compartilhar isso:

Suporte

  • Este campo é para fins de validação e não deve ser alterado.

Contato

  • Este campo é para fins de validação e não deve ser alterado.
pt_BRPortuguese