Forum
Aşağıda Bulunan Kodu Kullanarak Ağda Bulunan YAzıcıları Eklemekeyim Bunda Bir sııntım yok ama ben Buna ek olarak Pcde Bulunan Atıl Kullanılmayan Ve fiziksel olrak Bağlı bile olmayan diğer yazıcıların kaldırıla bilmesi için nasıl bir kod ekliye bilirim driver ların kalkmasına gerek yok sadece Kurulu Olmaması yeterli Artı Bu Kodu çalıştırdığım Pc Kendi Pcm Olup Farklı A pc Sinde Bulunan Yazıcıyı B Bilgisayarına Tanımını Yapmam Mümkünmü YArdımlarınızı rica ederim Verilen Her bilgi için Teşekkür ederim İyi çalışmalar
On Error Resume Next
Dim objFs, objShare, objPrintQueue
Dim strServer
Devam = 1
MyOldComputerName = ""
Do while Devam=1
strServer = InputBox("Lütfen eklemek istediginiz printer'in bagli oldugu pc'nin WS numarasini giriniz.."&Chr(13)&"Örnek : 4 , 16 ", "NETWORK")
Kontrol=MakineControl(strServer)
If Kontrol = 0 then
Devam=0
Else
If Kontrol=4 Then
Son=MsgBox("Girdiginiz WS numarasi numerik degildir."&Chr(13)&"WS adini tekrar girmek için 'Retry', programdan çikmak için 'Cancel' butonuna basiniz",5,"NETWORK")
If Son=4 Then
Devam=1
Else
Wscript.Quit(0)
End If
Else
If Kontrol=5 Then
Son=MsgBox("Makinenizin ismi sube standartlarina uygun degildir."&Chr(13)&"WS adini tekrar girmek için 'Retry', programdan çikmak için 'Cancel' butonuna basiniz",5,"NETWORK")
If Son=4 Then
Devam=1
Else
Wscript.Quit(0)
End If
Else
Wscript.Quit(0)
End If
End If
End If
Loop
strServer = MyOldComputerName
set objFs = GetObject("WinNT://" _
& strServer & ",Computer")
If Err.Number<>0 then
Wscript.Echo "Girdiginiz "&strServer& " isimli PC ye ulasilamamistir. "&Chr(13)&"Program kapatiliyor."
Wscript.Quit(0)
End If
' Loops through each share
objFs.Filter =Array("printQueue")
count=0
For Each objShare In objFs
count=count+1
Set ObjPrintQueue = GetObject(objShare.ADsPath)
If Err.Number<>0 then
Wscript.Echo "Girdiginiz "&strServer& " isimli PC ye ulasilamamistir. "&Chr(13)&"Program kapatiliyor."
Wscript.Quit(0)
End If
Son=MsgBox("Girdiginiz makineye bagli \\"&strServer&"\"&objPrintQueue.Name& " yazicisini eklemek istiyor musunuz?"&Chr(13)&"",1,"Network")
''Wscript.Echo Son
If Son=1 Then
var=0
Set objWMIService = GetObject( _
"winmgmts:" & "{impersonationLevel=impersonate}!\\" _
& "." & "\root\cimv2")
Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer")
For Each objPrinter in colInstalledPrinters
If InStr(1,objPrinter.ShareName,objPrintQueue.Name,1)<>0 and objPrinter.Local = TRUE then
var=1
returndef = 1
returndef = objPrinter.SetDefaultPrinter()
If returndef = 0 then
Wscript.Echo "Printer ekleme islemi basari ile tamamlanmistir."
Wscript.Quit(0)
Else
Wscript.Echo "Printer ekleme sirasinda hata alinmistir. "&Chr(13)&"Lutfen Merkezi Destek Yonetiminden yardim aliniz."
Wscript.Quit(0)
End If
End If
Next
If var=0 then
Set objNetw = CreateObject("Wscript.Network")
objNetw.AddWindowsPrinterConnection "\\"&strServer&"\"&objPrintQueue.Name
objNetw.SetDefaultPrinter "\\"&strServer&"\"&objPrintQueue.Name
If Err.Number<>0 then
Wscript.Echo "Printer ekleme sirasinda hata alinmistir. "&Chr(13)&"Lutfen Merkezi Destek Yonetiminden yardim aliniz."
Wscript.Quit(0)
Else
Wscript.Echo "Printer ekleme islemi basari ile tamamlanmistir."
End If
End If
Else
End If
Next
If Count=0 then
Wscript.Echo "Bu makineye bagli network printer bulunamamistir."
End If
Function MakineControl(pMakNo)
If pMakNo="" then
MakineControl=3
Else
If IsNumeric(pMakNo)=false then
MakineControl=4
Else
set wshnetwork=createobject("wscript.network")
scomputername=wshnetwork.computername
set wshnetwork=nothing
If InStr(1,scomputername,"W",1)<>0 then
CompStrName=Split(scomputername,"W",-1,1)
MyOldComputerName = CompStrName(0)&"W"&FormatValue(pMakNo)
MakineControl=0
Else
MakineControl=5
End If
End If
End If
End Function
Function FormatValue(pStrc)
If Len(pStrc)=1 then
FormatValue="0"&pStrc
Else
FormatValue=pStrc
End If
End Function
http://gallery.technet.microsoft.com/658b88e8-012c-4dff-8fc7-a658cb1c6317
burada printer1 ve printer2 adında 2 yazıcıyı kaldırmak için kod var, kendi yazıcınıza göre düzenleyip kodu test edermisiniz.
http://gallery.technet.microsoft.com/658b88e8-012c-4dff-8fc7-a658cb1c6317
burada printer1 ve printer2 adında 2 yazıcıyı kaldırmak için kod var, kendi yazıcınıza göre düzenleyip kodu test edermisiniz.
Davut Hocam Merhaba,
Print Server yapısı içerisinde tanımlı birçok printer'ım mevcut bunlar IP üzerinden tanımlı IP olarak bazen portlar değişebilmekte. Kullanılmayan IP portlarını aşağıdaki script ile kaldırabilir miyim?
' remove un-used ports Set objDictionary = CreateObject("Scripting.Dictionary") strComputer = "." Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colPrinters = objWMIService.ExecQuery _ ("Select * from Win32_Printer") For Each objPrinter in colPrinters objDictionary.Add objPrinter.PortName, objPrinter.PortName Next Set colPorts = objWMIService.ExecQuery _ ("Select * from Win32_TCPIPPrinterPort") For Each objPort in colPorts If objDictionary.Exists(objPort.Name) Then Else ObjPort.Delete_ End If
Next
Teşekkürler.
kodlardan o komutla silinebileceğini düşünüyorum, bir test makinasında denemen faydalı olucaktır. direk canlı ya alma yani 😉
Davut Hocam Bu Yazıcı İsimleri Sürekli değişmekte Ağda Bunu Pcde ne varsa Kaldırması İçin Düzenlene bilirmi
hocam VB.net I iyi olan bir arkadaş yardımcı olabilir belki. Ben programlamaya çok hakim değilim. C# biliyorum lakin VB.net yok yani 🙂
Vb Olarak C# Olarak Bunu Yapmamız Mümkünmü Örnek Kod Olarak Varmı Acaba Ve Dediğim Gibi Ben Bu İşlemi Kendi Pcmden yaparak Diğer İki PC Arasında Silme ve TAnımlama İşlemi Yapıla Bilirmi Şuan burada Takıldım 🙂 En azından Girişi de olsa Çok Çok Teşekkür ederim
Aslında şu şekilde yapılabilinir, yazıcılar silinip vb sicriptle yada powershell ile daha sonrasından yeniden gpo ile Yazıcı tanımlanabilir.
ilgili makale ve scriptleri aşağıda paylaşıyorum incelemeni öneririm
http://www.cozumpark.com/forums/thread/420433.aspx
http://www.cozumpark.com/forums/thread/101276.aspx
https://gallery.technet.microsoft.com/Remove-All-Network-Printers-8b82b324
https://gallery.technet.microsoft.com/How-to-remove-all-network-f3816c96
https://gallery.technet.microsoft.com/85640294-d965-43bc-8ee6-5c1c9daa704d
https://gallery.technet.microsoft.com/94e3de42-13b0-4972-aa5a-87ca6781399e