Powershell en mode non-interactif
- Je utiliser le Poulpe pour nos déploiements. J'ai un problème avec l'un des scripts Powershell pour contrôler le déploiement:
# stops running processes
$processes = @("Notepad",
"Firefox")
foreach ($process in $processes)
{
$prc = Get-Process -Name $process -ErrorAction SilentlyContinue
if (-not($prc -eq $null))
{
Write-Host "Stopping " $prc.ProcessName
Stop-Process -InputObject $prc -ErrorAction SilentlyContinue
}
}
Les programmes, j'essaye d'arrêter, ne sont pas ceux que vous voyez dans le script ci-dessus, mais ils représentent ce que je suis en train de faire. Maintenant, le problème que j'ai avec elle, c'est qu'il fonctionne bien sur un serveur, mais pas sur un autre. Où il ne fonctionne pas, j'obtiens le message d'erreur:
Stop-Processus : Windows PowerShell est en mode non interactif. Lire et Invite la fonctionnalité n'est pas disponible.
Le script qui fonctionne fonctionne sur Powershell 3.0, celui qui ne fonctionne pas sur Powershell 2.0. Je ne peux pas mettre à niveau vers Powershell 3.0 partout, pourtant, parce que les vieux serveurs avec Windows Server 2003. Comment puis-je le faire fonctionner sur PS 2.0?
source d'informationauteur tobre
Vous devez vous connecter pour publier un commentaire.
Courir avec
-Force
:Stop-Process -InputObject $prc -ErrorAction SilentlyContinue -Force
Comme C. B. le laisse entendre le commentaire:
-confirm:$false
devrait également fonctionner. Raison pour cela est comme suit:-Confirm
est un paramètre de commutateur. Les paramètres de commutateur ne peut prendre des arguments si vous spécifiez le paramètre avec une fuite du côlon et une valeur.