Ho due server di dominio Windows 2012 e clients Windows 7.
E' mia intenzione far eseguire all'avvio dei clients degli script Powershell. Gli script contengono le seguenti istruzioni:
Param(
[string]$password
)
$user = "[nome utente con diritti amministrativi]"
$pass = $password | convertto-securestring -asplaintext -force
$cred = new-object -typename System.Management.Automation.PSCredential -argumentlist $user, $pass
$session = new-pssession -Credential $cred
invoke-command -Session $session -ScriptBlock {Start-Process -FilePath "msiexec.exe" -ArgumentList "/x {[guid]} /q"}
Lo script viene richiamato da GPO, passando come parametro la password dell'utente con diritti amministrativi inserito nella variabile $user e con le sue credenziali viene eseguita la disinstallazione, utilizzando
msiexec, dell'applicazione corrispondente al guid inserito come parametro dell'istruzione. La disinstallazione viene eseguita con un utente con diritti di amministratore, perché gli utenti normalmente non hanno i permessi di installare o disinstallare softwares.
Ho creato una policy collegato alla OU di computers contenente i clients interessati. La policy l'ho configurata come segue:
Computer Configuration\Policies\Windows Settings\Scripts\Startup
- Order: Windows PowerShell scripts will run last
- Elenco scripts powershell
- Nome: script1.ps1 Parametri: -password [password utente con diritti amministrativi]
- Nome: script2.ps1 Parametri: -password [password utente con diritti amministrativi]
Eseguendo gli script via console Powershell, una volta effettuato il login, la disinstallazione viene effettuata correttamente, ma via GPO all'avvio dei clients non funziona. Verificando con
GPResult la policy risulta tra gli oggetti criteri di gurppo applicati. I registri di sistema non mi forniscono errori che sembrano essere riferiti a questa policy.
Vi chiedo se qualcuno sa fornirmo qualche aiuto utile su come risolvere il problema e dove ho sbagliato o dimenticato qualcosa.