В некоторых случаях при работе в домене, если используется vpn подключение windows начинает использовать данные подключения для попыток аутентификации в домене, в том числе сетевых дисков, что приводит к их неработоспособности.
Способ для исправления очень прост.
В файлах с раcширением pbk.
Находящихся здесь
C:\Users\All Users\Microsoft\Network\Connections\Pbk\
И здесь.
AppData\Roaming\Microsoft\Network\Connections\Pbk
Поменять UseRasCredentials=1 на UseRasCredentials=0
Ну и в догонку скрипт для автоматизации
strComputer = "."
Set oFSO = WScript.CreateObject("Scripting.FileSystemObject")
'AppData\Roaming\Microsoft\Network\Connections\Pbk
Set WshShell = WScript.CreateObject("Wscript.Shell")
Set oWMI = GetObject("winmgmts://" & strComputer & "\root\cimv2")
vAppData=WshShell.ExpandEnvironmentStrings("%APPDATA%")
Function GetCurrentUser()
Dim uUsername
Set colComputerSystem = oWMI.execquery("Select username from Win32_ComputerSystem")
For Each objitem In colComputerSystem
If Not IsNull(objitem.username) Then
uUsername = objitem.username
End If
Next
GetCurrentUser=Right(uUsername,Len(uUsername)-InStr(uUsername,"\"))
End Function
'spawning test constants
Sub replacepbk(pathtofile,allusers)
Const alluserspath = "C:\Users\All Users\Microsoft\Network\Connections\Pbk\"
Const stringforfind = "UseRasCredentials=1"
Const stringforreplace = "UseRasCredentials=0"
'Const pathtofile = "\Microsoft\Network\Connections\Pbk\"
Const extension = ".pbk"
'open folder and search for target extension
If ( allusers = 1 ) Then
Set oFolder = oFSO.GetFolder(alluserspath)
Else
Set oFolder = oFSO.GetFolder(vAppData & pathtofile)
End If
For Each objfile In oFolder.Files
If (InStr(objfile.name, extension) = 0 ) Then
Else
'open file and search for target expression
MsgBox(oFolder & "\" & objfile.name)
Set foredit = oFSO.GetFile(oFolder & "\" & objfile.name)
strideting = foredit.OpenAsTextStream(1).ReadAll
If ( allusers = 1 ) Then
foredit.OpenAsTextStream(2).WriteLine(stringforreplace)
foredit.OpenAsTextStream.Close
Exit Sub
End if
'vars for loop
b=0
z=1
step1 = Len(stringforfind)
Do While i<>1
tochka = InStr(z, strideting, stringforfind)
If ( tochka = 0 ) Then
i=1
Else
b = b + 1
z = tochka + step1
End If
Loop
i=0
Do While i<>b
strideting = Replace(strideting, stringforfind, stringforreplace)
i = i + 1
Loop
foredit.OpenAsTextStream.Close
foredit.OpenAsTextStream(2).Write(strideting)
foredit.OpenAsTextStream.Close
End If
Next
End Sub
replacepbk "\Microsoft\Network\Connections\Pbk\", 0
replacepbk "",1
MsgBox("Job is done (c) reZon 2011")
1 комментарий:
Спасибо! Помогло!
Отправить комментарий