Aujourd’hui mon blog va porter sur l’erreur WINRM : 2147749890 que l’on peut retrouver sur tout les serveurs de : - Windows 2003 SP2 à Windows 2012 R2. Même en regardant dans l’observateur d’évènement ID 4 qui correspond à une solution TechNet qui n’est pas adapter à la situation.
PERIMETRE: Dans le cadre de l’organisation des reboots de serveurs chez un de nos client, j’ai mis en place une vérification Post-démarrage de ces serveurs.
Voici la commande du script powershell qui permet de vérifier si le service MSDTC commun à tout les serveurs de Windows 2003 SP2 à Windows 2012 R2.
MON SCRIPT DE BASE:
######SERVEURS A REDEMARRER################
$Computerdestination = "SRV02"
###SERVICES A ARRETER, REDEMARRER ou VERIFER##
$Servicesname = "MSDTC"
######LOG CREER POUR LA VERIFICATION DES SERVICES SUR CHAQUES SERVEURS + GESTION ERREUR ###
$StatusSvcRebootSRV = $NULL $StatusSvcRebootSRV =
try {
Invoke-Command -ScriptBlock {param($ServicesName) Get-Service $ServicesName -ErrorAction stop | select PScomputerName,Status,Name } -ArgumentList $ServicesName -ComputerName $Computerdestination
}catch{
"error : " + $error[0]
}
#GESTION ERREUR DES SERVICES
$ExitCodeService =
try {
if ($($StatusSvcRebootSRV.Status.value) -eq "Running") {
"success : $Computerdestination or $Servicesname"
} else {
"error : " + $error[0]
}
}catch{
"Error : Syntaxe command ExitCodeService "
}
$ExitCodeService
RESULTAT: malgré winrm activer et enable-psremoting + port 5985 ok
-SessionOption (New-PSSessionOption -NoMachineProfile) qui a permis de résoudre le problème
MON SCRIPT CORRIGE BASE:
######SERVEURS A REDEMARRER################
$Computerdestination = "SRV02"
###SERVICES A ARRETER, REDEMARRER ou VERIFER##
$Servicesname = "MSDTC"
######LOG CREER POUR LA VERIFICATION DES SERVICES SUR CHAQUES SERVEURS + GESTION ERREUR ###
$StatusSvcRebootSRV = $null
$StatusSvcRebootSRV =
try {
Invoke-Command -ScriptBlock {param($ServicesName) Get-Service $ServicesName -ErrorAction stop | select PScomputerName,Status,Name } -ArgumentList $ServicesName -ComputerName $Computerdestination -SessionOption (New-PSSessionOption -NoMachineProfile)
}catch{
"error : " + $error[0]
}
#GESTION ERREUR DES SERVICES
$ExitCodeService =
try {
if ($($StatusSvcRebootSRV.Status.value) -eq "Running") {
"success : $Computerdestination or $Servicesname"
} else {
"error : " + $error[0]
}
}catch{
"Error : Syntaxe command ExitCodeService "
}
$ExitCodeService