Como desinstalar e instalar remotamente um programa usando o PowerShel

Como desinstalar e instalar remotamente um programa usando o PowerShel

 

Se você não tiver uma ferramenta de implantação de software, como PDQ Deployment, desinstalar programas de um computador remoto pode ser muito doloroso. E mais uma vez, é aqui que o PowerShell brilha.

Em primeiro lugar, vamos ver como obter uma lista de programas instalados em um computador remoto:

Get-WmiObject Win32_Product -ComputerName $ computername | Select-Object -Property IdentifyingNumber, Name
image 5 600x245 - Como desinstalar e instalar remotamente um programa usando o PowerShell

Para encontrar um programa específico instalado em um computador remoto:

Get-WmiObject Win32_Product -ComputerName $ computername | Where-Object {$ _. IdentifyingNumber -eq $ number}

Agora, vamos desinstalar esse programa.

(Get-WmiObject Win32_Product -ComputerName $ computername | Where-Object {$ _. IdentifyingNumber -eq $ number}). Uninstall ()

Para evitar a mensagem de erro ao tentar desinstalar um programa inexistente.

$ComputerName = 'Computer'
$number = '{AC76BA86-1033-FFFF-7760-0E1108756300}' #Adobe Acrobat ID
$adobe = Get-WmiObject Win32_Product -ComputerName $ComputerName | Where-Object {$_.IdentifyingNumber -eq $number}
if ($adobe) {
  $adobe.Uninstall()
}
else {
  $number + ' is not installed on ' + $ComputerName
}

Que tal instalar um programa em um computador remoto? Isso é um pouco mais complicado e depende do pacote de instalação. Se for um pacote MSI ou um pacote com uma opção silenciosa, o PowerShell deve ser capaz de cuidar disso.

Se o pacote de instalação já estiver no computador remoto,

Invoke-Command -ComputerName $ computer -ScriptBlock {
  Iniciar-Processo 'c: \ temp \ setup.exe' -ArgumentList '/ slient' -Aguarde
}

Mas se não, você precisará copiar o pacote primeiro e depois executar o processo de instalação.

Aqui está um exemplo mais completo:

$computer = 'computer1'
$session = New-PSSession -ComputerName $computer
Copy-Item -Path '\server\software\sophosetup.exe' -ToSession $session -Destination 'c:\windows\temp\sophossetup.exe' -Force
Invoke-Command -Session $session -ScriptBlock   {
   Start-Process 'c:\windows\temp\sophosSetup.exe' -ArgumentList '--quiet' -Wait
   Move-Item -Path 'c:\windows\temp\sophossetup.exe'    
}

Tomei o software Sophos como exemplo, mas você deve ter uma ideia.

Por fim, pensei em mencionar que, para fazer com que os scripts do PowerShell funcionem em computadores remotos, há dois pré-requisitos que precisam ser atendidos.

  • WinRM precisa ser habilitado no computador remoto
  • Você precisa de credenciais adequadas para executar o script no computador remoto.




Fonte: https://www.nextofwindows.com/how-to-remotely-uninstall-and-install-a-program-using-powershell