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.
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.
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).
# 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
# 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 :
- Pour en savoir plus sur l'assistant de résolution de problème : http://msdn.microsoft.com/fr-fr/windows/ff720166.aspx
- Pour en savoir plus sur les commandes Powershell de la plate-forme de résolution de problème : http://msdn.microsoft.com/en-us/library/dd323773(VS.85).aspx
- MSDN : http://msdn.microsoft.com/fr-fr/windows/default.aspx
- Le coach Windows 7 : http://msdn.microsoft.com/fr-fr/windows/msdn.coach.windows7
- Kit de développement pour Windows 7 : http://msdn.microsoft.com/fr-fr/windows/gg398052.aspx