Eu preciso de uma maneira de remover o MSFT Security Essentials para que eu possa instalar o Forefront nos clientes. Eu preferiria um script de login que passaria as credenciais de administrador para remover o programa. Se isso não for possível, um script que eu possa executar no momento da inicialização é aceitável.
Eu tenho o seguinte script PS que alguém forneceu das webs, mas recebo um erro ao executá-lo.
$UninstallString = Get-ChildItem "HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall" | ?{$_.GetValue("DisplayName") -like "Microsoft Security Essentials" } | ForEach-Object -Process {$_.GetValue("UninstallString") }
$uninstallCmd=$UninstallString.split('/')[0].Trim()
$uninstallParam='/' + $UninstallString.split('/')[1].Trim()
$uninstallParamSilent="/s"
& $uninstallCmd $uninstallParam $uninstallParamSilent
Quando executado como está (embora eu saiba que parece errado), recebo o seguinte erro:
Method invocation failed because [System.Object[]] doesn't contain a method named 'split'.
At C:\Users\administrator\Desktop\remove Security essentials.ps1:2 char:37
+ $uninstallCmd=$UninstallString.split <<<< ('/')[0].Trim()
+ CategoryInfo : InvalidOperation: (split:String) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound
Method invocation failed because [System.Object[]] doesn't contain a method named 'split'.
At C:\Users\administrator\Desktop\remove Security essentials.ps1:3 char:45
+ $uninstallParam='/' + $UninstallString.split <<<< ('/')[1].Trim()
+ CategoryInfo : InvalidOperation: (split:String) [], RuntimeException
+ FullyQualifiedErrorId : MethodNotFound
The expression after '&' in a pipeline element produced an invalid object. It must result in a command name, script blo
ck or CommandInfo object.
At C:\Users\administrator\Desktop\remove Security essentials.ps1:5 char:2
+ & <<<< $uninstallCmd $uninstallParam $uninstallParamSilent
+ CategoryInfo : InvalidOperation: (:) [], RuntimeException
Mover a última linha para a anterior também gera um erro:
Unexpected token '&' in expression or statement.
At C:\Users\administrator\Desktop\remove Security essentials.ps1:4 char:29
+ $uninstallParamSilent="/s" & <<<< $uninstallCmd $uninstallParam $uninstallParamSilent
+ CategoryInfo : ParserError: (&:String) [], ParseException
+ FullyQualifiedErrorId : UnexpectedToken
Eu não sei o suficiente sobre PS para ver onde o código está errado, mas qualquer ajuda seria apreciada.
Além disso, se alguém tiver algo que funcione nisso tanto no XP quanto no Win7 sem ter que instalar o PS nas máquinas XP, isso também seria ótimo.