Forum
Herkese merhaba,
Arkadaşlar şirketimizde fax server kullanmaktayız fakat çok yaygın değil.Çünkü her kullanıcıya gidip kurmamız lazım.Bu işlemi group policy ile toplu halde yapabilir miyiz ?
Çok teşekkürler....
Rica ederim.
Ek olarak;
Eğer DC R2 değil ise bu makale işinize yaramayacaktır. Bu durumda aşağıdaki scriptleri GPO ile dağıtabilirsinz.
Yazıcı ekleme: http://www.serhatakinci.com/?p=48
Yazıcı silme: http://www.serhatakinci.com/?p=404
Ben bu scripti biraz daha geliştirerek sana mail atmasını sağlayarak eklenen bilgisayarda bir hata olursa görülmesini sağladım. Script şu şekilde.
''''''''''''''''''''''''''''''''''''''''''''''''''''
' '
' Mail göndermek ve yazıcı eklemek için '
' gerekli sabit ve değişkenleri tanımlayalım. '
' '
''''''''''''''''''''''''''''''''''''''''''''''''''''
Const ADMIN_EMAIL = "yö[email protected]"
Const SMTP_SERVER = "smtp_sunucumuz"
Const SMTP_PORT = 25
Const USE_AUTHENTICATION = False
Const SMTP_USER = "smtp_kullanıcı_adımız"
Const SMTP_PASS = "parolamız"
Const SMTP_SSL = False
Const ENABLE_DEBUGGING = False
Set WshNetwork = CreateObject("WScript.Network")
dteTime = FormatDateTime(Time(),4)
dteDate = FormatDateTime(Date(),1)
Dim hataMesajibaslik
Dim hataMesaji
strMessage = "<b>" & ComputerName & "</b> bilgisayarından <b>" & AccountName & "</b> kullanıcı adı ile sisteme giriş yapıldı. Detaylar aşağıdaki şekildedir. :<br><br>" _
& "Oturum açma tarihi: " & dteDate & "<br>" _
& "Oturum açma saati: " & dteTime & "<br>" _
& "IP Adresi: " & LAN_IP & "<br>"
''''''''''''''''''''''''''''''''''''''''''''''''''''
' '
' Server üzerindeki yaziciyi ekle '
' Varsayılan yazıcı yap '
' '
''''''''''''''''''''''''''''''''''''''''''''''''''''
PrinterPath = "\\server\hp2500cs"
PrinterDriver = "HP 2500C Series"
On Error Resume Next
WshNetwork.AddWindowsPrinterConnection PrinterPath, PrinterDriver
If err.Number <> 0 Then
hataMesaji = PrinterPath & " konumundaki " & PrinterDriver & " yazıcısı kurulurken bir hata oluştu. Hatakodu: " & err.Number & " Açıklama: " & err.Description
hataMesajibaslik = ucase(printerDriver) & " yazıcısı eklenirken hata oluştu."
strMessage = strMessage + "<br><br>" _
& hataMesajibaslik & "<br><b>" & hataMesaji & "</b>"
msgbox hataMesaji & " Bu hata sistem yöneticinize bildirilmiştir.", VBOKOnly + VBError , hataMesajibaslik
Else
strMessage = strMessage + "<br><br><br>" _
& "<b>" & PrinterPath & "</b> konumundaki <b>" & PrinterDriver & "</b> yazıcısı başarılı bir şekilde kuruldu ve varsayılan olarak atandı."
WshNetwork.SetDefaultPrinter PrinterPath
End If
''''''''''''''''''''''''''''''''''''''''''''''''''''
' '
' Gateway üzerindeki faxi ekle '
' '
''''''''''''''''''''''''''''''''''''''''''''''''''''
PrinterPath = "\\gateway\fax"
PrinterDriver = "Microsoft Fax Printer"
On Error Resume Next
WshNetwork.AddWindowsPrinterConnection PrinterPath
If err.Number<>0 Then
hataMesaji = PrinterPath & " konumundaki " & PrinterDriver & " yazıcısı kurulurken bir hata oluştu. Hatakodu: " & err.Number & " Açıklama: " & err.Description
hataMesajibaslik = ucase(printerDriver) & " yazıcısı eklenirken hata oluştu."
strMessage = strMessage + "<br><br>" _
& hataMesajibaslik & "<br><b>" & hataMesaji & "</b>"
msgbox hataMesaji & " Bu hata sistem yöneticinize bildirilmiştir.", VBOKOnly + VBError , hataMesajibaslik
Else
strMessage = strMessage + "<br><br><br>" _
& "<b>" & PrinterPath & "</b> yolundaki <b>" & PrinterDriver & "</b> yazıcısı başarılı bir şekilde kuruldu."
End If
result = SendMail(strMessage)
If ENABLE_DEBUGGING Then WScript.Echo result
WScript.Quit
Function AccountName
If IsNull(WshNetwork) Then Set WshNetwork = CreateObject("WScript.Network")
AccountName = WshNetwork.UserName
End Function
Function ComputerName
If IsNull(WshNetwork) Then Set WshNetwork = CreateObject("WScript.Network")
ComputerName = WshNetwork.ComputerName
End Function
Function LAN_IP
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
Set colItems = objWMIService.ExecQuery("Select IPAddress from Win32_NetworkAdapterConfiguration WHERE IPEnabled=TRUE",,48)
For Each objItem In colItems
If Not IsNull(objItem.IPAddress) Then
LAN_IP = objItem.IPAddress(0)
Exit For
End If
Next
End Function
Function SendMail(strBody)
Set objEmail = CreateObject("CDO.Message")
With objEmail
.From = ADMIN_EMAIL
.To = ADMIN_EMAIL
.Subject = "Oturum açma bilgisi"
.HTMLBody = strBody
.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = SMTP_SERVER
.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = SMTP_PORT
If USE_AUTHENTICATION Then
.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1
.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = SMTP_USER
.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = SMTP_PASS
End If
If SMTP_SSL Then
.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = True
End If
.Configuration.Fields.Update
On Error Resume Next
Err.Clear
.Send
If Err.number <> 0 Then
SendMail = Err.Description
Else
SendMail = "Mail gönderirken herhangi bir hata oluşmadı."
End If
On Error Goto 0
End With
End Function
Yazıcı ve fax ekliyor. Herhangi bir sorun olması veya olmaması durumunda size bunu mail atıyor.
Ek olarak;
Eğer DC R2 değil ise bu makale işinize yaramayacaktır. Bu durumda aşağıdaki scriptleri GPO ile dağıtabilirsinz.
Yazıcı ekleme: http://www.serhatakinci.com/?p=48
Yazıcı silme: http://www.serhatakinci.com/?p=404
** Domaindeki bilgisayarlarda "policy kullanmadan - manuel eklenmiş yazıcıları" tespit edip silebilecek bir group policy uygulanabilirmi?