http://www.outlookcode.com
http://www.exchangerus.ru
http://www.danshin.ms
http://www.howto-outlook.com
http://www.outlookcode.com
http://www.exchangerus.ru
http://www.danshin.ms
http://www.howto-outlook.com
Опубликовано в Uncategorized | Оставьте комментарий »
А правил будет даже два. Во-первых, в деле применения GPO по домену следует быть особенно аккуратным, а во-вторых, когда используются reg-файлы настроек, то следует помнить, что:
CURRENT_USER part goes into a logon script
LOCAL_MACHINE part into a startup script
Опубликовано в Active Directory | Помечено GPO | Оставьте комментарий »
Предварительно сформированные файлы htm, rtf и txt сохраняем в каталоге на файл-сервере:
(\\server\Deployments\)
Собственно, сам код:
‘——————————————————————–
Const ForReading = 1
Const ForWriting = 2
Set wshNetwork = CreateObject(«WScript.Network»)
Set FSO = CreateObject(«Scripting.FileSystemObject»)
FSO.CopyFile «\\server\Deployments\signature.htm», «c:\Users\» & WshNetwork.UserName & «\AppData\Roaming\Microsoft\Signatures\», True
Set wshNetwork = CreateObject(«WScript.Network»)
Set FSO = CreateObject(«Scripting.FileSystemObject»)
FSO.CopyFolder «\\server\Deployments\signature_files», «c:\Users\» & WshNetwork.UserName & «\AppData\Roaming\Microsoft\Signatures\», True
Set wshNetwork = CreateObject(«WScript.Network»)
Set FSO = CreateObject(«Scripting.FileSystemObject»)
FSO.CopyFile «\\server\Deployments\signature.txt», «c:\Users\» & WshNetwork.UserName & «\AppData\Roaming\Microsoft\Signatures\», True
Set wshNetwork = CreateObject(«WScript.Network»)
Set FSO = CreateObject(«Scripting.FileSystemObject»)
FSO.CopyFile «\\server\Deployments\signature.rtf», «c:\Users\» & WshNetwork.UserName & «\AppData\Roaming\Microsoft\Signatures\», True
Set objFSO = CreateObject(«Scripting.FileSystemObject»)
Set objFile = objFSO.OpenTextFile(«c:\Users\» & WshNetwork.UserName & «\AppData\Roaming\Microsoft\Signatures\signature.rtf», ForReading)
Set objSysInfo = CreateObject(«ADSystemInfo»)
Set objUser = GetObject(«LDAP://» & objSysInfo.UserName)
strName = objUser.cn
strText = objFile.ReadAll
objFile.Close
strNewText = Replace(strText, «Name», strName)
Set objFile = objFSO.OpenTextFile(«c:\Users\» & WshNetwork.UserName & «\AppData\Roaming\Microsoft\Signatures\signature.rtf», ForWriting)
objFile.WriteLine strNewText
objFile.Close
Set objFSO = CreateObject(«Scripting.FileSystemObject»)
Set objFile = objFSO.OpenTextFile(«c:\Users\» & WshNetwork.UserName & «\AppData\Roaming\Microsoft\Signatures\signature.rtf», ForReading)
Set objSysInfo = CreateObject(«ADSystemInfo»)
Set objUser = GetObject(«LDAP://» & objSysInfo.UserName)
strTitle = objUser.title
strText = objFile.ReadAll
objFile.Close
strNewText = Replace(strText, «Title», strTitle)
Set objFile = objFSO.OpenTextFile(«c:\Users\» & WshNetwork.UserName & «\AppData\Roaming\Microsoft\Signatures\signature.rtf», ForWriting)
objFile.WriteLine strNewText
objFile.Close
Set objFSO = CreateObject(«Scripting.FileSystemObject»)
Set objFile = objFSO.OpenTextFile(«c:\Users\» & WshNetwork.UserName & «\AppData\Roaming\Microsoft\Signatures\signature.htm», ForReading)
Set objSysInfo = CreateObject(«ADSystemInfo»)
Set objUser = GetObject(«LDAP://» & objSysInfo.UserName)
strName = objUser.cn
strText = objFile.ReadAll
objFile.Close
strNewText = Replace(strText, «Name», strName)
Set objFile = objFSO.OpenTextFile(«c:\Users\» & WshNetwork.UserName & «\AppData\Roaming\Microsoft\Signatures\signature.htm», ForWriting)
objFile.WriteLine strNewText
objFile.Close
Set objFSO = CreateObject(«Scripting.FileSystemObject»)
Set objFile = objFSO.OpenTextFile(«c:\Users\» & WshNetwork.UserName & «\AppData\Roaming\Microsoft\Signatures\signature.htm», ForReading)
Set objSysInfo = CreateObject(«ADSystemInfo»)
Set objUser = GetObject(«LDAP://» & objSysInfo.UserName)
strTitle = objUser.title
strText = objFile.ReadAll
objFile.Close
strNewText = Replace(strText, «Title», strTitle)
Set objFile = objFSO.OpenTextFile(«c:\Users\» & WshNetwork.UserName & «\AppData\Roaming\Microsoft\Signatures\signature.htm», ForWriting)
objFile.WriteLine strNewText
objFile.Close
Set objFSO = CreateObject(«Scripting.FileSystemObject»)
Set objFile = objFSO.OpenTextFile(«c:\Users\» & WshNetwork.UserName & «\AppData\Roaming\Microsoft\Signatures\signature.txt», ForReading,,-1)
Set objSysInfo = CreateObject(«ADSystemInfo»)
Set objUser = GetObject(«LDAP://» & objSysInfo.UserName)
strName = objUser.cn
strText = objFile.ReadAll
objFile.Close
strNewText = Replace(strText, «Name», strName)
Set objFile = objFSO.OpenTextFile(«c:\Users\» & WshNetwork.UserName & «\AppData\Roaming\Microsoft\Signatures\signature.txt», ForWriting,,-1)
objFile.WriteLine strNewText
objFile.Close
Set objFSO = CreateObject(«Scripting.FileSystemObject»)
Set objFile = objFSO.OpenTextFile(«c:\Users\» & WshNetwork.UserName & «\AppData\Roaming\Microsoft\Signatures\signature.txt», ForReading,,-1)
Set objSysInfo = CreateObject(«ADSystemInfo»)
Set objUser = GetObject(«LDAP://» & objSysInfo.UserName)
strTitle = objUser.title
strText = objFile.ReadAll
objFile.Close
strNewText = Replace(strText, «Title», strTitle)
Set objFile = objFSO.OpenTextFile(«c:\Users\» & WshNetwork.UserName & «\AppData\Roaming\Microsoft\Signatures\signature.txt», ForWriting,,-1)
objFile.WriteLine strNewText
objFile.Close
Call SetDefaultSignature(«signature»,»")
Sub SetDefaultSignature(strSigName, strProfile)
Const HKEY_CURRENT_USER = &H80000001
strComputer = «.»
Set objreg = GetObject(«winmgmts:» & _
«{impersonationLevel=impersonate}!\\» & _
strComputer & «\root\default:StdRegProv»)
strKeyPath = «Software\Microsoft\Windows NT\» & _
«CurrentVersion\Windows » & _
«Messaging Subsystem\Profiles\»
If strProfile = «» Then
objreg.GetStringValue HKEY_CURRENT_USER, _
strKeyPath, «DefaultProfile», strProfile
End If
myArray = StringToByteArray(strSigName, True)
strKeyPath = strKeyPath & strProfile & _
«\9375CFF0413111d3B88A00104B2A6676″
objreg.EnumKey HKEY_CURRENT_USER, strKeyPath, _
arrProfileKeys
For Each subkey In arrProfileKeys
strsubkeypath = strKeyPath & «\» & subkey
objreg.SetBinaryValue HKEY_CURRENT_USER, _
strsubkeypath, «New Signature», myArray
objreg.SetBinaryValue HKEY_CURRENT_USER, _
strsubkeypath, «Reply-Forward Signature», myArray
Next
End Sub
Public Function StringToByteArray _
(Data, NeedNullTerminator)
Dim strAll
strAll = StringToHex4(Data)
If NeedNullTerminator Then
strAll = strAll & «0000″
End If
intLen = Len(strAll) \ 2
ReDim arr(intLen – 1)
For i = 1 To Len(strAll) \ 2
arr(i – 1) = CByte _
(«&H» & Mid(strAll, (2 * i) – 1, 2))
Next
StringToByteArray = arr
End Function
Public Function StringToHex4(Data)
Dim strAll
For i = 1 To Len(Data)
strChar = Mid(Data, i, 1)
strTemp = Right(«00″ & Hex(AscW(strChar)), 4)
strAll = strAll & Right(strTemp, 2) & Left(strTemp, 2)
Next
StringToHex4 = strAll
End Function
‘—————-end-of-code—————–
Опубликовано в Outlook 2007 | Помечено Outlook | Оставьте комментарий »