This commit is contained in:
T0MuX 2021-11-26 22:01:09 +01:00
parent cdc18eb337
commit 546eb90f2f
13 changed files with 483 additions and 0 deletions

BIN
NoSleep/AutoHotkeyU64.exe Normal file

Binary file not shown.

39
NoSleep/NoSleep.SED Normal file
View file

@ -0,0 +1,39 @@
[Version]
Class=IEXPRESS
SEDVersion=3
[Options]
PackagePurpose=InstallApp
ShowInstallProgramWindow=1
HideExtractAnimation=1
UseLongFileName=1
InsideCompressed=0
CAB_FixedSize=0
CAB_ResvCodeSigning=0
RebootMode=N
InstallPrompt=%InstallPrompt%
DisplayLicense=%DisplayLicense%
FinishMessage=%FinishMessage%
TargetName=%TargetName%
FriendlyName=%FriendlyName%
AppLaunched=%AppLaunched%
PostInstallCmd=%PostInstallCmd%
AdminQuietInstCmd=%AdminQuietInstCmd%
UserQuietInstCmd=%UserQuietInstCmd%
SourceFiles=SourceFiles
[Strings]
InstallPrompt=L'ordinateur va rester actif (pas d'écran noir, ni de vérouillage de session, ni de veille) après avoir cliqué sur OUI, jusqu'à que vous fermiez le programme "nosleep.ahk" dans la barre des tâches. Son icone est un carré vert avec un H blanc.
DisplayLicense=
FinishMessage=
TargetName=C:\Users\thomas.hernandez\Desktop\NoSleep\NoSleep.exe
FriendlyName=NoSleep
AppLaunched=AutoHotkeyU64.exe nosleep.ahk
PostInstallCmd=<None>
AdminQuietInstCmd=
UserQuietInstCmd=
FILE0="AutoHotkeyU64.exe"
FILE1="nosleep.ahk"
[SourceFiles]
SourceFiles0=C:\Users\thomas.hernandez\Desktop\NoSleep\
[SourceFiles0]
%FILE0%=
%FILE1%=

BIN
NoSleep/NoSleep.exe Normal file

Binary file not shown.

7
NoSleep/README.md Normal file
View file

@ -0,0 +1,7 @@
NoSleep.exe est en fait une archive auto-extractible créée avec iexpress (outil intégré à Windows).
Elle contient un scrit .ahk, et le binaire AutoHotKeys.exe capable de l'ouvrir (disponibles dans ce dépôt, avec le fichier .SED qui permet la modification avec iexpress).
Cette appli permet d'empecher le système d'entrer dans le mode inactif (idle), en provoquant régulièrement (tous les 60 sec) un mouvement de souris (X+1, X-1). Cela ne perturbe absolument pas l'utilisation du système.
### Cas particulier
Le programme est extrait dans les temporaires windows à son lancement. Si il est en cours d'exécution et qu'un outil de nettoyage des temporaires est lancé, il cessera immédiatement de fonctionner.

15
NoSleep/nosleep.ahk Normal file
View file

@ -0,0 +1,15 @@
CoordMode, Mouse, Screen
MouseGetPos, CurrentX, CurrentY
Loop {
Sleep, 60000
LastX := CurrentX
LastY := CurrentY
MouseGetPos, CurrentX, CurrentY
If (CurrentX = LastX and CurrentY = LastY) {
MouseMove, 1, 1, , R
Sleep, 100
MouseMove, -1, -1, , R
}
}

17
new_user/README.md Normal file
View file

@ -0,0 +1,17 @@
# new_user
Ce script permet la création d'un dossier, du même nom que le username saisi, avec les droits suivants :
-> Désactive l'héritage des droits du dossier parent
-> Défini l'user en tant que propriétaire
- Supprime l'accès à "Tout le monde"
- Supprime l'accès à "Utilisateurs authentifiés"
# create_users
Ce script permet la création des utilisateurs en fonction d'une liste (users_to_create.txt) avec, à chaque utilisateur, l'application de toutes ces étapes :
- création du dossier personnel correspondant ([emplacement script]\Perso\username)
- appliquer les droits (identiques au script new_user)
- définir un quota de 10Go (!! attention le template doit déjà exister !!)
- génération d'un mot de passe aléatoire alphanumérique de 8 caractères
- incrémentation du fichier users_created.txt (contenant users passwords)
- incrémentation d'un log (create_users.log)
ATTENTION : la liste d'utilisateur (users_to_create.txt) doit impérativement être codé en OEM-850 si elle contient des caractères spéciaux... je conseille l'utilisation de Notepad++ pour ça. Si elle ne contient pas de caractères spéciaux, le notepad classique fera l'affaire.

111
new_user/create_users.cmd Normal file
View file

@ -0,0 +1,111 @@
@echo off
REM Attention encodage OEM-850
setlocal enableextensions enabledelayedexpansion
:checkadmin
REM Check ex‚cution du script en tant qu'admin
net session > NUL 2>&1
if %errorlevel% EQU 0 goto start
echo LE SCRIPT N'EST PAS LANC<4E> EN TANT QU'ADMINISTRATEUR !
pause > nul
exit
:start
REM Check si la liste d'users existe
cls
if not exist %~dp0\users_to_create.txt (
echo Le fichier users_to_create.txt n'existe pas.
echo Veuillez le cr‚er, avec un utilisateur par ligne sous cette forme :
echo prenom.nom;Pr‚nom NOM
echo.
echo ATTENTION le fichier doit ˆtre encod‚ en OEM-850
pause > nul
exit
)
rem Comptage du nombre de lignes, et donc d'users
set /a lines=0
for /f "delims=;" %%L in ('type %~dp0\users_to_create.txt') do (set /a lines+=1)
REM Pour chaque ligne, cr‚er un user avec son username, et son fullname
REM incr‚mentation du compteur pour donner une progression
REM d‚finition des quotas
REM /!\ Le modŠle demand‚ par la commande doit exister au pr‚alable /!\
set /a count=0
for /F "delims=; tokens=1,2" %%A in ('type %~dp0\users_to_create.txt') do (
set user=%%A
set fname=%%B
set user=!user:~0,20!
call :create >> %~dp0\new_users.log
set /a count+=1
cls
if !count! EQU 1 echo !count!/%lines% utilisateur cr‚‚.
if !count! GTR 1 echo !count!/%lines% utilisateurs cr‚‚s.
)
REM Fin du script
title Cr‚ation des utilisateurs termin‚e.
pause > nul
exit
:create
title Cr‚ation de l'utilisateur %user% - %fname%
REM check existence user, si oui, v‚rifier existence dossier perso
set exists=0
net user !user! > NUL 2>&1
if %errorlevel% EQU 0 (
set exists=1
goto perso
)
call :pass
net user !user! !password! /add /DOMAIN /FULLNAME:"!fname!"
:perso
REM check si dossier perso existe, si oui d‚finir quota
if exist %~dp0\Perso\!user! goto quota
echo Cr‚ation du dossier ...
mkdir %~dp0\Perso\!user!
echo.
echo D‚finition du propri‚taire ...
icacls %~dp0\Perso\!user! /setowner !user! /T
echo.
echo D‚sactivation de l'h‚ritage ...
icacls %~dp0\Perso\!user! /inheritance:d
echo.
echo Modification des droits ...
icacls %~dp0\Perso\!user! /grant !user!:(OI)(CI)(NP)(F)
icacls %~dp0\Perso\!user! /grant "Administrateurs":(OI)(CI)(F)
icacls %~dp0\Perso\!user! /remove "Tout le monde"
icacls %~dp0\Perso\!user! /remove "Utilisateurs authentifi‚s"
echo.
:quota
echo D‚finition du quota...
dirquota quota add /Path:E:\Perso\!user! /SourceTemplate:"Perso 10 Go"
if %exists% EQU 1 goto :EOF
echo !user! !password!>>%~dp0\users_created.txt
goto :EOF
:pass
REM set /P _length=Password Length: %==%
set _length=8
set /a z = %_length%
set "string=ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz123456789"
set "password="
for /L %%i in (1,1,!z!) do call :_genRand
REM echo Password is: %password%
goto :EOF
:_genRand
set /a x=%random% %% 62
set password=%password%!string:~%x%,1!
goto :eof

46
new_user/new_user.cmd Normal file
View file

@ -0,0 +1,46 @@
@echo off
REM Attention encodage OEM-850
:checkadmin
net session > NUL 2>&1
if %errorlevel% EQU 0 goto start
echo LE SCRIPT N'EST PAS LANC<4E> EN TANT QU'ADMINISTRATEUR !
pause > nul
exit
:start
cls
echo Saisir le nom d'utilisateur
set /p user="> "
echo.
rem Controle de l'existence de l'user
net user %user% > NUL 2>&1
if %errorlevel% EQU 0 goto next
echo L'utilisateur %user% n'existe pas.
pause > nul
goto start
:next
echo Creation du dossier ...
mkdir %~dp0\%user%
echo.
echo D‚finition du propri‚taire ...
icacls %~dp0\%user% /setowner %user% /T
echo.
echo D‚sactivation de l'h‚ritage ...
icacls %~dp0\%user% /inheritance:d
echo.
echo Modification des droits ...
icacls %~dp0\%user% /grant %user%:(OI)(CI)(NP)(F)
icacls %~dp0\%user% /grant "Administrateurs":(OI)(CI)(F)
icacls %~dp0\%user% /remove "Tout le monde"
icacls %~dp0\%user% /remove "Utilisateurs authentifi‚s"
echo.
echo Les droits ont bien ‚t‚ appliqu‚ pour l'utilisateur %user%
echo.
pause
exit

View file

@ -0,0 +1,9 @@
user.test;Utilisateur de test
fanta.stick;Fanta Stick
jay.rhum;Jay Rhum
tah.mair;Tah Mair
alice.usse;Alice Usse
anne.halle;Anne Halle
maque.ronpeidet;Maque Ronpeidet
viv.linnuqs;Viv Linnuqs
anne.ulingus;Anne Ulingus

9
passgen/README.md Normal file
View file

@ -0,0 +1,9 @@
PassGen est un script permettant de générer un mot de passe aléatoire alphanumérique en fonction du nombre de caractère donné.
Pour des raisons de lisibilité les caractères suivants ont été retirés :
"O" lettre O majuscule
"0" chiffre zéro
"l" lettre L minuscule
"1" chiffre un
Cependant, vous pouvez les réactiver en les rajoutant dans le script (ligne 23 à ce jour).

33
passgen/passgen.cmd Normal file
View file

@ -0,0 +1,33 @@
@echo off
REM - Attention encodage OEM-850
REM - Options
ver=1.0
setlocal enableextensions enabledelayedexpansion
title PassGen %ver%
:menu
cls
echo Pour des raisons de lisibilit‚, les caractŠres suivants ne seront pas utilis‚s :
echo "O" lettre O majuscule
echo "0" chiffre z‚ro
echo "l" lettre L minuscule
echo "1" chiffre un
echo.
:pass
set /P _length=Password Length: %==%
REM set _length=8
set /a z = %_length%
set "string=ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz123456789"
set "password="
for /L %%i in (1,1,!z!) do call :_genRand
echo Password is: %password%
pause > NUL
goto :menu
:_genRand
set /a x=%random% %% 62
set password=%password%!string:~%x%,1!
goto :eof

107
synczilla/synczilla.cmd Normal file
View file

@ -0,0 +1,107 @@
@echo off
title Synczilla
REM ATTENTION, encodage OEM 850
SETLOCAL EnableDelayedExpansion
REM Check argument
if "%1" NEQ "login" if "%1" NEQ "logout" (
echo Aucun ou mauvais argument. Veuillez pr‚ciser login ou logout.
pause > nul
exit
)
REM CHECK APPS OUVERTES
:ffloop
timeout 1 >NUL
tasklist | findstr firefox.exe 1>NUL
if %errorlevel% EQU 0 (cls && echo Veuillez fermer Firefox et appuyer sur Entr‚e... && timeout 1>NUL && goto ffloop)
:thloop
timeout 1 >NUL
tasklist | findstr thunderbird.exe 1>NUL
if %errorlevel% EQU 0 (cls && echo Veuillez fermer Thunderbird et appuyer sur Entr‚e... && timeout 1>NUL && goto thloop)
:chloop
timeout 1 >NUL
tasklist | findstr chrome.exe 1>NUL
if %errorlevel% EQU 0 (cls && echo Veuillez fermer Chrome et appuyer sur Entr‚e... && timeout 1>NUL && goto chloop)
REM PARTIE RESTAURATION
if "%1" == "login" (
cls&&echo RESTAURATION......
if exist P: (
REM Check existance profil FF
if not exist %appdata%\Mozilla\Firefox (color 4f&&cls&&echo Aucun profil firefox trouv‚.&&echo Firefox n'est pas install‚, ou n'a jamais ‚t‚ lanc‚ dans cette session sur cet ordinateur.&&pause>nul&&exit)
REM R‚cup du nom du profil de destination
for /f "delims=/ tokens=2" %%a in ('type %appdata%\mozilla\firefox\profiles.ini ^| findstr Default^=Profiles') do set ffprofile=%%a
REM Restauration FF
copy /y P:\sync\ff-roaming\cert9.db %appdata%\Mozilla\Firefox\Profiles\!ffprofile!\
copy /y P:\sync\ff-roaming\cookies.sqlite %appdata%\Mozilla\Firefox\Profiles\!ffprofile!\
copy /y P:\sync\ff-roaming\key4.db %appdata%\Mozilla\Firefox\Profiles\!ffprofile!\
copy /y P:\sync\ff-roaming\permissions.sqlite %appdata%\Mozilla\Firefox\Profiles\!ffprofile!\
copy /y P:\sync\ff-roaming\places.sqlite %appdata%\Mozilla\Firefox\Profiles\!ffprofile!\
copy /y P:\sync\ff-roaming\favicons.sqlite %appdata%\Mozilla\Firefox\Profiles\!ffprofile!\
copy /y P:\sync\ff-roaming\webappsstore.sqlite %appdata%\Mozilla\Firefox\Profiles\!ffprofile!\
REM recup hostname dans variable pour le mettre dans le prefs.js
for /f %%a in ('hostname') do set hostname=%%a
type P:\sync\ff-roaming\prefs.js | findstr /v services.sync.client.name > %appdata%\Mozilla\Firefox\Profiles\!ffprofile!\prefs.js
echo user_pref^("services.sync.client.name", "!hostname!"^); >> %appdata%\Mozilla\Firefox\Profiles\!ffprofile!\prefs.js
if exist P:\sync\ff-roaming\extension-preferences.json copy /y P:\sync\ff-roaming\extension-preferences.json %appdata%\Mozilla\Firefox\Profiles\!ffprofile!\
if exist P:\sync\ff-roaming\extensions.json copy /y P:\sync\ff-roaming\extensions.json %appdata%\Mozilla\Firefox\Profiles\!ffprofile!\
if exist P:\sync\ff-roaming\extensions robocopy P:\sync\ff-roaming\extensions %appdata%\Mozilla\Firefox\Profiles\!ffprofile!\extensions /mir
REM Restauration TH
REM R‚cup nom profil en cours
if exist P:\sync\th-roaming (robocopy /np /mir /xo P:\sync\th-roaming %appdata%\Thunderbird && copy /y P:\sync\th-roaming\profiles.ini %appdata%\Mozilla\Thunderbird)
REM Restauration Chrome
if exist P:\sync\chrome (robocopy /np /mir /xo P:\sync\chrome %localappdata%\Google\Chrome)
)
)
REM PARTIE SAUVEGARDE
if "%1" == "logout" (
cls&&echo SAUVEGARDE.....
if exist P: (
REM Check existance profil FF
if not exist %appdata%\Mozilla\Firefox (color 4f&&cls&&echo Aucun profil firefox trouv‚.&&echo Firefox n'est pas install‚, ou n'a jamais ‚t‚ lanc‚ dans cette session sur cet ordinateur.&&pause>nul&&exit)
REM R‚cup du nom du profil en cours … sauvegarder
for /f "delims=/ tokens=2" %%b in ('type %appdata%\mozilla\firefox\profiles.ini ^| findstr Default^=Profiles') do set ffprofile=%%b
REM Sauvegarde FF
set /a sync=0
type %appdata%\Mozilla\Firefox\Profiles\!ffprofile!\prefs.js | findstr services.sync > NUL
if !errorlevel!==0 set /a sync=1 else set /a sync=0
copy /y %appdata%\Mozilla\Firefox\Profiles\!ffprofile!\cert9.db P:\sync\ff-roaming\
copy /y %appdata%\Mozilla\Firefox\Profiles\!ffprofile!\cookies.sqlite P:\sync\ff-roaming\
copy /y %appdata%\Mozilla\Firefox\Profiles\!ffprofile!\key4.db P:\sync\ff-roaming\
copy /y %appdata%\Mozilla\Firefox\Profiles\!ffprofile!\permissions.sqlite P:\sync\ff-roaming\
copy /y %appdata%\Mozilla\Firefox\Profiles\!ffprofile!\places.sqlite P:\sync\ff-roaming\
copy /y %appdata%\Mozilla\Firefox\Profiles\!ffprofile!\favicons.sqlite P:\sync\ff-roaming\
copy /y %appdata%\Mozilla\Firefox\Profiles\!ffprofile!\webappsstore.sqlite P:\sync\ff-roaming\
copy /y %appdata%\Mozilla\Firefox\Profiles\!ffprofile!\prefs.js P:\sync\ff-roaming\
if !sync!==0 (
copy /y %appdata%\Mozilla\Firefox\Profiles\!ffprofile!\extension-preferences.json P:\sync\ff-roaming\
copy /y %appdata%\Mozilla\Firefox\Profiles\!ffprofile!\extensions.json P:\sync\ff-roaming\
robocopy %appdata%\Mozilla\Firefox\Profiles\!ffprofile!\extensions P:\sync\ff-roaming\extensions /mir
)
if !sync!==1 (
if exist P:\sync\ff-roaming\extension-preferences.json del /q P:\sync\ff-roaming\extension-preferences.json
if exist P:\sync\ff-roaming\extensions.json del /q P:\sync\ff-roaming\extensions.json
if exist P:\sync\ff-roaming\extensions rmdir /q /s P:\sync\ff-roaming\extensions
)
REM Sauvegarde TH
for /f "delims=/ tokens=2" %%a in ('type %appdata%\Thunderbird\profiles.ini ^| findstr "Path"') do set thprofile=%%a
if exist %appdata%\Thunderbird robocopy /np /mir /xo %appdata%\Thunderbird P:\sync\th-roaming /xd %appdata%\Thunderbird\Profiles\!thprofile!\Mail /xd %appdata%\Thunderbird\Profiles\!thprofile!\ImapMail
REM Sauvegarde Chrome
if exist %localappdata%\Google\Chrome robocopy /np /mir /xo %localappdata%\Google\Chrome P:\sync\chrome /xd "%localappdata%\Google\Chrome\User Data\Default\Cache" /xd "%localappdata%\Google\Chrome\User Data\Default\Code Cache"
)
)

90
wmicsum/wmicsum.cmd Normal file
View file

@ -0,0 +1,90 @@
@echo off
SETLOCAL EnableDelayedExpansion
set ver=0.1beta
title WMIC Summary v%ver%
set cols=80
mode con cols=%cols% lines=40
color 0a
cls
echo R‚cup‚ration des informations mat‚rielles...
REM skip saute 1 ligne, tokens=* r‚cupŠre toute la ligne, /v "^$" supprime les lignes vide
for /f "skip=1 tokens=*" %%A in ('%WINDIR%\System32\wbem\wmic.exe bios get serialnumber^| findstr /v "^$"') do set hard_sn1=%%A
for /f "skip=1 tokens=*" %%A in ('%WINDIR%\System32\wbem\wmic.exe baseboard get serialnumber^| findstr /v "^$"') do set hard_sn2=%%A
set hard_sn_both=0
if "%hard_sn1%" neq "" if "%hard_sn2%" neq "" set hard_sn_both=1
for /f "skip=1 tokens=*" %%A in ('%WINDIR%\System32\wbem\wmic.exe computersystem get model^| findstr /v "^$"') do set hard_model=%%A
for /f "skip=1 tokens=*" %%A in ('%WINDIR%\System32\wbem\wmic.exe computersystem get systemfamily^| findstr /v "^$"') do set hard_family=%%A
for /f "skip=1 tokens=*" %%A in ('%WINDIR%\System32\wbem\wmic.exe cpu get name ^| findstr /v "^$"') do set hard_cpu=%%A
for /f "skip=1 tokens=*" %%A in ('%WINDIR%\System32\wbem\wmic.exe computersystem get numberoflogicalprocessors ^| findstr /v "^$"') do set hard_cpunum=%%A
set hard_cpunum=%hard_cpunum: =%
for /f "skip=1 tokens=*" %%A in ('%WINDIR%\System32\wbem\wmic.exe os get totalvisiblememorysize ^| findstr /v "^$"') do set ram_total=%%A
set /a ram_total=%ram_total% / 1024
REM DISKDRIVE
set /a "hddnum=1"
for /f "skip=1 tokens=*" %%A in ('%WINDIR%\System32\wbem\wmic.exe diskdrive get caption ^| findstr /v "^$"') do (
set hdd!hddnum!name=%%A
set /a "hddnum+=1"
)
set /a "hddnum=1"
for /f "skip=1 tokens=*" %%A in ('%WINDIR%\System32\wbem\wmic.exe diskdrive get size ^| findstr /v "^$"') do (
set hdd!hddnum!size=%%A
set /a "hddnum+=1"
)
REM PRINTERS
for /f "skip=1 tokens=*" %%A in ('%WINDIR%\System32\wbem\wmic.exe printer where "default=True" get name^,portname ^| findstr /v "^$"') do set hard_print=%%A
echo %hard_print% (Par d‚faut)> %temp%\wmicsum_printers.txt
for /f "skip=1 tokens=*" %%A in ('%WINDIR%\System32\wbem\wmic.exe printer where "default=False" get name^,portname ^| findstr /v "^$"') do (
set hard_print=%%A
echo !hard_print:~0,%cols%!>> %temp%\wmicsum_printers.txt
)
echo R‚cup‚ration des informations systŠme...
for /f "tokens=1 delims=|" %%A in ('%WINDIR%\System32\wbem\wmic.exe os get name ^| findstr Windows') do set os_name=%%A
for /f "skip=1 tokens=1 delims=|" %%A in ('%WINDIR%\System32\wbem\wmic.exe os get Version ^| findstr .') do set os_version=%%A
if "%CommonProgramW6432%"=="" (set os_arch=32 bits) else (set os_arch=64 bits)
for /f "skip=1 tokens=*" %%A in ('%WINDIR%\System32\wbem\wmic.exe computersystem get name ^| findstr /v "^$"') do set hostname=%%A
for /f "skip=1 tokens=*" %%A in ('%WINDIR%\System32\wbem\wmic.exe computersystem get domain ^| findstr /v "^$"') do set domain=%%A
cls
echo Mat‚riel
echo îîîîîîîî
if %hard_sn_both%==1 echo Num‚ro de s‚rie (Bios) : %hard_sn1% && echo Num‚ro de s‚rie (Carte mŠre) : %hard_sn2%
if %hard_sn_both%==0 if "%hard_sn1%" neq "" echo Num‚ro de s‚rie : %hard_sn1%
if %hard_sn_both%==0 if "%hard_sn2%" neq "" echo Num‚ro de s‚rie : %hard_sn2%
echo ModŠle : %hard_model%
if "%hard_family%" neq "" echo Famille : %hard_family%
echo Processeur : %hard_cpu% (x%hard_cpunum%)
echo M‚moire vive totale : %ram_total% Mo
REM … l'‚tape d'avant une ligne fantome est g‚n‚r‚e... je compense en diminuant de 1 la valeur de %hddnum%
set /a "hddnummax=hddnum-1"
set /a "hddnum=1"
:hddoutput
set name=!hdd%hddnum%name!
set size=!hdd%hddnum%size: =!
REM set /a size=%size% / ?1024
REM je ne peux pas utiliser set /a car le nombre que je divise est trop grand pour set ...
echo Disque %hddnum% : %name% %size:~0,-10% Go
if %hddnum% EQU %hddnummax% goto hddend
set /a "hddnum+=1"
goto hddoutput
:hddend
echo.
echo SystŠme
echo îîîîîîî
echo Version : %os_name% %os_version%%os_arch%
echo Hostname : %hostname%
echo Domaine : %domain%
echo.
echo # Disques logiques locaux
for /f "skip=1 tokens=*" %%A in ('wmic logicaldisk get VolumeName^,Name^,Description^ ^| findstr /v "^$" ^| findstr /v "r‚seau"') do echo %%A
echo.
echo # Disques r‚seaux
for /f "skip=1 tokens=*" %%A in ('wmic logicaldisk get ProviderName^,Name^,Description^ ^| findstr /v "^$" ^| findstr /v "Disque"') do echo %%A
echo.
echo # Imprimantes
type %temp%\wmicsum_printers.txt
pause > nul
REM suppression des fichiers temporaires avant fermeture
del /q %temp%\wmicsum_printers.txt