Forum

Yazıcı Tanımı Ve Si...
 
Bildirimler
Hepsini Temizle

Yazıcı Tanımı Ve Silme

8 Yazılar
3 Üyeler
0 Likes
1,041 Görüntüleme
(@ilkerErbay)
Gönderiler: 6
Active Member
Konu başlatıcı
 

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

 
Gönderildi : 05/10/2014 12:25

(@davuteren)
Gönderiler: 1584
Noble Member
 

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.

 
Gönderildi : 06/10/2014 21:24

(@OmerUcler)
Gönderiler: 506
Prominent Member
 

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.

 

 
Gönderildi : 07/10/2014 12:11

(@davuteren)
Gönderiler: 1584
Noble Member
 

kodlardan o komutla silinebileceğini düşünüyorum, bir test makinasında denemen faydalı olucaktır. direk canlı ya alma yani 😉 

 
Gönderildi : 07/10/2014 13:52

(@ilkerErbay)
Gönderiler: 6
Active Member
Konu başlatıcı
 

Davut Hocam Bu Yazıcı İsimleri Sürekli değişmekte Ağda Bunu Pcde ne varsa Kaldırması İçin Düzenlene bilirmi

 

 
Gönderildi : 09/10/2014 14:46

(@davuteren)
Gönderiler: 1584
Noble Member
 

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 🙂

 
Gönderildi : 09/10/2014 17:50

(@ilkerErbay)
Gönderiler: 6
Active Member
Konu başlatıcı
 

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 

 
Gönderildi : 09/10/2014 21:00

(@davuteren)
Gönderiler: 1584
Noble Member

Paylaş: