I. Quel est l'outil qui permet de créer des fichiers manifestes pour l'assistant de résolution de problèmes de Windows 7 ?

L'assistant de résolution de problème introduit avec Windows 7, permet d'exécuter des scripts Powershell lorsqu'une condition dans le système n'est pas remplie. Par exemple, dans la figure suivante Internet Explorer 9 ne peut atteindre sa destination finale. Grâce à l'assistant de résolution de problème, il est possible de diagnostiquer les erreurs, mais surtout de les réparer automatiquement si possible.

Image non disponible

Si vous souhaitez développer vos propres scripts de résolution de problème pour garantir le bon fonctionnement de votre application, vous pouvez utiliser l'outil TSPDesigner.exe (disponible dans le kit de développement Windows 7) associé à des scripts Powershell.

Image non disponible

Cet outil vous permettra de définir :

  • La cause du problème (Root Cause)
  • Le Script Powershell qui détecte la cause du problème (Troubleshooter)
  • Le Script PowerShell qui tentera de résoudre le problème (Resolver)
  • De vérifier que le problème est résolu (Verifier)
Exemple de script Powershell qui détecte si un serveur SQL est disponible.
Sélectionnez
# TroubleshooterScript - This script checks for the presence of a root cause
# Key Cmdlets:
# -- update-diagrootcause flags the status of a root cause and can be used to pass parameters
# -- get-diaginput invokes an interactions and returns the response
# -- write-diagprogress displays a progress string to the user

$RootCauseID = "DetectionServeurSQL"

# Your detection Logic Here
Write-DiagProgress -Activity "Vérification si le serveur SQL est démarré..."

$RootCauseDetected=$False
$SQlServeur=get-wmiobject win32_service | where-object {$_.Name -like "*MSSQL*SQLEXPRESS*"}
if ($SQlServeur.State -eq "Stopped")
{
    $RootCauseDetected=$True    
}
#The following line notifies Windows Troubleshooting Platform of the status of this root cause
update-diagrootcause -id $RootCauseId -detected $RootCauseDetected
Exemple de script Powershell qui tente de redémarrer le serveur SQL
Sélectionnez
# Resolver Script - This script fixes the root cause. It only runs if the Troubleshooter detects the root cause.
# Key cmdlets: 
# -- get-diaginput invokes an interactions and returns the response
# -- write-diagprogress displays a progress string to the user

# Your logic to fix the root cause here

$SQlServeur=get-wmiobject win32_service | where-object {$_.Name -like "MSSQL`$SQLEXPRESS"}
start-service $SQlServeur.Name
Pour plus d'infos :