"JF" a écrit dans le message de
news:%Bonjour
Bonjour,
Les disques externes ont tendance revenir en mode surveillance
(restauration système). La désactivation via les propriétés du système
n'est pas pratique. RestorWIN rend l'opération un peu plus facile,
mais il n'y a pas de commande.
Est-il possible de désactiver la surveillance
d'un disque amovible par script ?
Avec la méthode Disable de la classe WMI SystemRestore.
Par exemple, pour désactiver la surveillance du disque D
--- Coupez ici : DisableSystemRestore.vbs ---
Set oSR=GetObject("winmgmts:/root/default:SystemRestore")
oSR.Disable("D:")
--- Coupez ici : DisableSystemRestore.vbs ---
"JF" <JF@-> a écrit dans le message de
news:%23LmVoogIJHA.728@TK2MSFTNGP03.phx.gbl
Bonjour
Bonjour,
Les disques externes ont tendance revenir en mode surveillance
(restauration système). La désactivation via les propriétés du système
n'est pas pratique. RestorWIN rend l'opération un peu plus facile,
mais il n'y a pas de commande.
Est-il possible de désactiver la surveillance
d'un disque amovible par script ?
Avec la méthode Disable de la classe WMI SystemRestore.
Par exemple, pour désactiver la surveillance du disque D
--- Coupez ici : DisableSystemRestore.vbs ---
Set oSR=GetObject("winmgmts:/root/default:SystemRestore")
oSR.Disable("D:")
--- Coupez ici : DisableSystemRestore.vbs ---
"JF" a écrit dans le message de
news:%Bonjour
Bonjour,
Les disques externes ont tendance revenir en mode surveillance
(restauration système). La désactivation via les propriétés du système
n'est pas pratique. RestorWIN rend l'opération un peu plus facile,
mais il n'y a pas de commande.
Est-il possible de désactiver la surveillance
d'un disque amovible par script ?
Avec la méthode Disable de la classe WMI SystemRestore.
Par exemple, pour désactiver la surveillance du disque D
--- Coupez ici : DisableSystemRestore.vbs ---
Set oSR=GetObject("winmgmts:/root/default:SystemRestore")
oSR.Disable("D:")
--- Coupez ici : DisableSystemRestore.vbs ---
"JF" a écrit dans le message de
news:Merci beaucoup !
J'ai modifié ainsi pour que le script désactive le disque amovible sur
lequel il est enregistré ==>
Set oSR=GetObject("winmgmts:/root/default:SystemRestore")
Set oFSO=CreateObject("Scripting.FileSystemObject")
Set oShell=CreateObject("Wscript.Shell")
strPath=oShell.CurrentDirectory
strDrive=oFSO.GetDriveName(strPath)
oSR.Disable(strDrive&"")
Une remarque ?
Super !
"JF" <JF@-> a écrit dans le message de
news:uq3hjKiIJHA.696@TK2MSFTNGP02.phx.gbl
Merci beaucoup !
J'ai modifié ainsi pour que le script désactive le disque amovible sur
lequel il est enregistré ==>
Set oSR=GetObject("winmgmts:/root/default:SystemRestore")
Set oFSO=CreateObject("Scripting.FileSystemObject")
Set oShell=CreateObject("Wscript.Shell")
strPath=oShell.CurrentDirectory
strDrive=oFSO.GetDriveName(strPath)
oSR.Disable(strDrive&"")
Une remarque ?
Super !
"JF" a écrit dans le message de
news:Merci beaucoup !
J'ai modifié ainsi pour que le script désactive le disque amovible sur
lequel il est enregistré ==>
Set oSR=GetObject("winmgmts:/root/default:SystemRestore")
Set oFSO=CreateObject("Scripting.FileSystemObject")
Set oShell=CreateObject("Wscript.Shell")
strPath=oShell.CurrentDirectory
strDrive=oFSO.GetDriveName(strPath)
oSR.Disable(strDrive&"")
Une remarque ?
Super !
"JF" a écrit dans le message de
news:e$Ça va aller très bien avec ce que j'ai fait en batch pour changer
rapidement la lettre d'un volume amovible. Je ne suis pas sûr
d'arriver à le réécrire en VBS. Ça t'inspire ?
[...]
Ci-dessous le portage de votre script batch en VBScript. Les
vérifications essentielles sont implémentées. L'utilisateur est prompté
tant que les vérifications échouent. Le script s'interrompt lorsque
l'utilisateur clique sur le bouton "Annuler" ou alors s'il entre la même
lettre de lecteur que celle actuellement utilisée par le périphérique
amovible.
Note: J'utilise également l'outil mountvol pour la manipulation des
volumes. Il est toutefois à noter que depuis Windows 2003 / Vista, les
méthodes de la classe WMI Win32_Volume permettent d'effectuer ces
opérations.
Win32_Volume Class :
http://msdn.microsoft.com/en-us/library/aa394515(VS.85).aspx
--- Coupez ici : ChangeDriveLetter.vbs ---
Set oSh=CreateObject("WScript.Shell")
Set oFs=CreateObject("Scripting.FileSystemObject")
If WScript.Arguments.Count=0 Then
Set oRe=New RegExp: oRe.Pattern="^([aA-zZ]:)$"
sTempFolder=oFs.GetSpecialFolder(2) & ""
sCurrentDrive=oFs.GetDriveName(oSh.CurrentDirectory)
Set oExec=oSh.Exec("mountvol " & sCurrentDrive & " /l")
sCurrentVolume=Replace(oExec.StdOut.ReadLine()," ", "")
Do While True
sNewDrive=InputBox( _
"The volume is currently mounted on drive " & sCurrentDrive & _
VBCrLf & VBCrLf & _
"Please enter a new drive letter :", "Change drive letter")
If sNewDrive = "" Or sNewDrive=sCurrentDrive Then WScript.Quit()
"JF" <JF@-> a écrit dans le message de
news:e$y9rdjIJHA.1060@TK2MSFTNGP03.phx.gbl
Ça va aller très bien avec ce que j'ai fait en batch pour changer
rapidement la lettre d'un volume amovible. Je ne suis pas sûr
d'arriver à le réécrire en VBS. Ça t'inspire ?
[...]
Ci-dessous le portage de votre script batch en VBScript. Les
vérifications essentielles sont implémentées. L'utilisateur est prompté
tant que les vérifications échouent. Le script s'interrompt lorsque
l'utilisateur clique sur le bouton "Annuler" ou alors s'il entre la même
lettre de lecteur que celle actuellement utilisée par le périphérique
amovible.
Note: J'utilise également l'outil mountvol pour la manipulation des
volumes. Il est toutefois à noter que depuis Windows 2003 / Vista, les
méthodes de la classe WMI Win32_Volume permettent d'effectuer ces
opérations.
Win32_Volume Class :
http://msdn.microsoft.com/en-us/library/aa394515(VS.85).aspx
--- Coupez ici : ChangeDriveLetter.vbs ---
Set oSh=CreateObject("WScript.Shell")
Set oFs=CreateObject("Scripting.FileSystemObject")
If WScript.Arguments.Count=0 Then
Set oRe=New RegExp: oRe.Pattern="^([aA-zZ]:)$"
sTempFolder=oFs.GetSpecialFolder(2) & ""
sCurrentDrive=oFs.GetDriveName(oSh.CurrentDirectory)
Set oExec=oSh.Exec("mountvol " & sCurrentDrive & " /l")
sCurrentVolume=Replace(oExec.StdOut.ReadLine()," ", "")
Do While True
sNewDrive=InputBox( _
"The volume is currently mounted on drive " & sCurrentDrive & _
VBCrLf & VBCrLf & _
"Please enter a new drive letter :", "Change drive letter")
If sNewDrive = "" Or sNewDrive=sCurrentDrive Then WScript.Quit()
"JF" a écrit dans le message de
news:e$Ça va aller très bien avec ce que j'ai fait en batch pour changer
rapidement la lettre d'un volume amovible. Je ne suis pas sûr
d'arriver à le réécrire en VBS. Ça t'inspire ?
[...]
Ci-dessous le portage de votre script batch en VBScript. Les
vérifications essentielles sont implémentées. L'utilisateur est prompté
tant que les vérifications échouent. Le script s'interrompt lorsque
l'utilisateur clique sur le bouton "Annuler" ou alors s'il entre la même
lettre de lecteur que celle actuellement utilisée par le périphérique
amovible.
Note: J'utilise également l'outil mountvol pour la manipulation des
volumes. Il est toutefois à noter que depuis Windows 2003 / Vista, les
méthodes de la classe WMI Win32_Volume permettent d'effectuer ces
opérations.
Win32_Volume Class :
http://msdn.microsoft.com/en-us/library/aa394515(VS.85).aspx
--- Coupez ici : ChangeDriveLetter.vbs ---
Set oSh=CreateObject("WScript.Shell")
Set oFs=CreateObject("Scripting.FileSystemObject")
If WScript.Arguments.Count=0 Then
Set oRe=New RegExp: oRe.Pattern="^([aA-zZ]:)$"
sTempFolder=oFs.GetSpecialFolder(2) & ""
sCurrentDrive=oFs.GetDriveName(oSh.CurrentDirectory)
Set oExec=oSh.Exec("mountvol " & sCurrentDrive & " /l")
sCurrentVolume=Replace(oExec.StdOut.ReadLine()," ", "")
Do While True
sNewDrive=InputBox( _
"The volume is currently mounted on drive " & sCurrentDrive & _
VBCrLf & VBCrLf & _
"Please enter a new drive letter :", "Change drive letter")
If sNewDrive = "" Or sNewDrive=sCurrentDrive Then WScript.Quit()
"JF" a écrit dans le message de
news:
[...]Ça ne marchait pas, j'ai donc modifié ainsi :
If sNewDrive="" Then WScript.Quit()
sNewDrive=UCase(sNewDrive)
sNewDrive=sNewDrive&":"
If sNewDrive=sCurrentDrive Then WScript.Quit()
Si la lettre de lecteur est entrée dans l'InputBox en respectant la
convention de nommage "X:" alors cela ne marche pas non plus car du coup
on se retrouve ici avec sNewDrive="X::" ;-). En fait je pense que la
condition ci-dessous est suffisante :
If sNewDrive="" Then WScript.Quit()
Car juste après nous avons :
If oRe.Test(sNewDrive) And Not oFs.DriveExists(sNewDrive) Then
- La casse n'a aucune importance
- La lettre de lecteur doit respecter la convention de nommage "X:"
- La lettre de lecteur ne doit pas être déjà montée
Merci pour ce retour.
"JF" <JF@-> a écrit dans le message de
news:eEqP253IJHA.4512@TK2MSFTNGP02.phx.gbl
[...]
Ça ne marchait pas, j'ai donc modifié ainsi :
If sNewDrive="" Then WScript.Quit()
sNewDrive=UCase(sNewDrive)
sNewDrive=sNewDrive&":"
If sNewDrive=sCurrentDrive Then WScript.Quit()
Si la lettre de lecteur est entrée dans l'InputBox en respectant la
convention de nommage "X:" alors cela ne marche pas non plus car du coup
on se retrouve ici avec sNewDrive="X::" ;-). En fait je pense que la
condition ci-dessous est suffisante :
If sNewDrive="" Then WScript.Quit()
Car juste après nous avons :
If oRe.Test(sNewDrive) And Not oFs.DriveExists(sNewDrive) Then
- La casse n'a aucune importance
- La lettre de lecteur doit respecter la convention de nommage "X:"
- La lettre de lecteur ne doit pas être déjà montée
Merci pour ce retour.
"JF" a écrit dans le message de
news:
[...]Ça ne marchait pas, j'ai donc modifié ainsi :
If sNewDrive="" Then WScript.Quit()
sNewDrive=UCase(sNewDrive)
sNewDrive=sNewDrive&":"
If sNewDrive=sCurrentDrive Then WScript.Quit()
Si la lettre de lecteur est entrée dans l'InputBox en respectant la
convention de nommage "X:" alors cela ne marche pas non plus car du coup
on se retrouve ici avec sNewDrive="X::" ;-). En fait je pense que la
condition ci-dessous est suffisante :
If sNewDrive="" Then WScript.Quit()
Car juste après nous avons :
If oRe.Test(sNewDrive) And Not oFs.DriveExists(sNewDrive) Then
- La casse n'a aucune importance
- La lettre de lecteur doit respecter la convention de nommage "X:"
- La lettre de lecteur ne doit pas être déjà montée
Merci pour ce retour.