Plus de problèmes
Comme l'a souligné @Lectrode, si vous essayez d'exécuter l'option net session
alors que le service du serveur est arrêté, vous recevez le message d'erreur suivant :
The Server service is not started.
More help is available by typing NET HELPMSG 2114
Dans ce cas, le %errorLevel%
La variable sera définie comme suit 2
.
Nota Le service Serveur n'est pas démarré en mode sans échec (avec ou sans réseau).
A la recherche d'une alternative
Quelque chose qui :
- peut être exécuté tel quel sur Windows XP et les versions ultérieures (32 et 64 bits) ;
- ne touche pas le registre ni aucun fichier/dossier du système ;
- fonctionne indépendamment de la locale du système ;
- donne des résultats corrects même en mode sans échec.
J'ai donc démarré une machine virtuelle Windows XP de type vanille et j'ai commencé à faire défiler la liste des applications dans la fenêtre de l'ordinateur. C:\Windows\System32
dossier, j'essaie de trouver des idées. Après des essais et des erreurs, voici le sale (jeu de mots) que j'ai trouvée :
fsutil dirty query %systemdrive% >nul
El fsutil dirty
nécessite des droits d'administrateur pour être exécutée, et échouera sinon. %systemdrive%
est un variable d'environnement qui renvoie la lettre du lecteur où le système d'exploitation est installé. La sortie est redirigée vers nul
et donc ignorée. Le site %errorlevel%
La variable sera définie comme suit 0
uniquement en cas d'exécution réussie.
Voici ce que dit la documentation :
Interroge ou définit le dirty bit d'un volume. Lorsque le bit sale d'un volume est activé, autochk vérifie automatiquement l'absence d'erreurs dans le volume lors du prochain redémarrage de l'ordinateur.
Syntaxe
fsutil dirty {query | set} <VolumePath>
Paramètres
query Queries the specified volume's dirty bit.
set Sets the specified volume's dirty bit.
<VolumePath> Specifies the drive name followed by a colon or GUID.
Remarques
Le bit sale d'un volume indique que le système de fichiers peut être dans un état incohérent. Le bit sale peut être activé parce que :
- Le volume est en ligne et il comporte des modifications en suspens.
- Des modifications ont été apportées au volume et l'ordinateur a été éteint avant que les modifications ne soient enregistrées sur le disque.
- Une corruption a été détectée sur le volume.
Si le bit sale est activé lorsque l'ordinateur redémarre, chkdsk s'exécute pour vérifier l'intégrité du système de fichiers et pour tenter de résoudre tout problème lié au volume.
Exemples
Pour interroger le bit sale du lecteur C, tapez :
fsutil dirty query C:
Recherches complémentaires
Bien que la solution ci-dessus fonctionne à partir de Windows XP, il convient d'ajouter que Windows 2000 et Windows PE (environnement préinstallé) ne sont pas livrés avec le système d'exploitation. fsutil.exe
donc nous devons recourir à autre chose.
Lors de mes précédents tests, j'ai remarqué que l'exécution de la sfc
sans aucun paramètre aurait pour résultat soit :
- une erreur, si vous n'aviez pas assez de privilèges ;
- une liste des paramètres disponibles et leur utilisation.
C'est-à-dire : aucun paramètre, pas de fête . L'idée est que nous pouvons analyser la sortie et vérifier si nous avons obtenu autre chose qu'une erreur :
sfc 2>&1 | find /i "/SCANNOW" >nul
La sortie d'erreur est d'abord redirigée vers la sortie standard, qui est ensuite acheminée vers l'interface de l'utilisateur. find
commandement. A ce stade, nous devons chercher le sólo qui est supporté dans toutes les versions de Windows depuis Windows 2000 : /SCANNOW
. La recherche est insensible à la casse, et la sortie est rejetée en la redirigeant vers nul
.
Voici un extrait de la documentation :
Analyse et vérifie l'intégrité de tous les fichiers système protégés et remplace les versions incorrectes par des versions correctes.
Remarques
Vous devez être connecté en tant que membre du groupe Administrateurs pour exécuter le programme sfc.exe .
Exemple d'utilisation
Voici quelques exemples de collage :
Windows XP et ultérieur
@echo off
call :isAdmin
if %errorlevel% == 0 (
echo Running with admin rights.
) else (
echo Error: Access denied.
)
pause >nul
exit /b
:isAdmin
fsutil dirty query %systemdrive% >nul
exit /b
Windows 2000 / Windows PE
@echo off
call :isAdmin
if %errorlevel% == 0 (
echo Running with admin rights.
) else (
echo Error: Access denied.
)
pause >nul
exit /b
:isAdmin
sfc 2>&1 | find /i "/SCANNOW" >nul
exit /b
S'applique à
-
Windows 2000
-
Windows XP
-
Windows Vista
-
Windows 7
-
Windows 8
-
Windows 8.1
---
-
Windows PE
2 votes
Après avoir changé le droit : [Comment demander un accès Administrateur dans un fichier batch][1] [1] : stackoverflow.com/questions/1894967/
0 votes
Regardez ici : " Comment puis-je élever automatiquement mon script ou vérifier les droits d'administrateur ? "
0 votes
[ stackoverflow.com/questions/4051883/ [1] : stackoverflow.com/questions/4051883/
0 votes
Voir aussi : superuser.com/questions/667607/