顯示具有 網路印表機 標籤的文章。 顯示所有文章
顯示具有 網路印表機 標籤的文章。 顯示所有文章

2016年1月26日 星期二

AD網域 依部門安裝網路印表機


轉自 http://tomliu888.blogspot.tw/2010/10/blog-post.html

以往公司透過 Group Policy 安裝印表機,都是在Windows 啟動時,執行一支 printer.exe 的小程式來連接印表機,但是它會把 Active Directory 裡的印表機全數安裝上去。
對於所有的公司同仁都覺得有點困擾,因為使用者每次列印都要從一大堆印表機選擇其中某一台。
同仁希望能減少印表機的清單數量。
所以我寫了以下的 Script,透過讀取使用者OU來決定安裝哪些印表機
這樣只要設定一條Group Policy 就可以套用全公司,也不用設定好幾條 Group Policy去分別套用 OU

On Error Resume Next
' 讀取使用者名稱(CN)、所屬組織單位(OU)、網域(DC)
Set objSysInfo = CreateObject("ADSystemInfo")
strName = objSysInfo.UserName
' PS. strUserName = objSysInfo.UserName
' 格式:CN=User Name, OU=XXX,OU=XXX,DC=XXX,DC=XXX,DC=XXX
' 例:CN=UserName,OU=資訊室,OU=管理部,OU=管理處,OU=Company,DC=Company,DC=com,DC=tw
' 將字串拆解成陣列,依「逗號」拆開
arrUserName = Split(strName, ",")
' 陣列註標從 0 開始
' 陣列 0 是使用者名稱(CN=xxx)
' 陣列 1 是最底層 (OU=xxxx)
' 將陣列 1 的資料,依「等號」拆開
arrOU = Split(arrUserName(1), "=")
' 陣列 0 = "OU"
' 陣列 1 是使用者的組織單位名稱
strUserOU = arrOU(1)
Set objNetwork = CreateObject("WScript.Network")
Select Case strUserOU
    Case "ITDept"
        ' 建立印表機連線
        objNetwork.AddWindowsPrinterConnection "\\DFS1\HP3600"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\HP3600"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\Konica事務機"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\Konica事務機"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\FAXPrinter"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\FAXPrinter"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\PrtQ1_at_SaleDept"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\PrtQ1_at_SaleDept"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\PrtQ2_at_SaleDept"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\PrtQ2_at_SaleDept"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\SHARP影印機"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\SHARP影印機"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\SHIPPING"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\SHIPPING"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\P1006"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\P1006"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\R1800"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\R1800"
        ' 設定預設印表機
        objNetwork.SetDefaultPrinter "\\DFS1\HP3600"
    Case "SalesDept"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\HP3600"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\HP3600"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\Konica事務機"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\Konica事務機"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\FAXPrinter"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\FAXPrinter"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\PrtQ1_at_SaleDept"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\PrtQ1_at_SaleDept"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\PrtQ2_at_SaleDept"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\PrtQ2_at_SaleDept"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\SHARP影印機"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\SHARP影印機"
        objNetwork.SetDefaultPrinter "\\DFS1\Konica事務機"
    Case "ProDept"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\HP3600"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\HP3600"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\Konica事務機"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\Konica事務機"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\FAXPrinter"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\FAXPrinter"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\PrtQ1_at_SaleDept"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\PrtQ1_at_SaleDept"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\PrtQ2_at_SaleDept"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\PrtQ2_at_SaleDept"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\SHARP影印機"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\SHARP影印機"
        objNetwork.SetDefaultPrinter "\\DFS1\Konica事務機"
    Case "ShipDept"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\HP3600"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\HP3600"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\Konica事務機"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\Konica事務機"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\FAXPrinter"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\FAXPrinter"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\PrtQ1_at_SaleDept"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\PrtQ1_at_SaleDept"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\PrtQ2_at_SaleDept"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\PrtQ2_at_SaleDept"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\SHARP影印機"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\SHARP影印機"
        objNetwork.SetDefaultPrinter "\\DFS1\Konica事務機"
    Case "MarketDept"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\HP3600"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\HP3600"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\Konica事務機"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\Konica事務機"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\FAXPrinter"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\FAXPrinter"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\P1006"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\P1006"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\R1800"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\R1800"
        objNetwork.SetDefaultPrinter "\\DFS1\P1006"
    Case "ManDept"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\HP3600"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\HP3600"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\Konica事務機"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\Konica事務機"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\FAXPrinter"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\FAXPrinter"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\SHARP影印機"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\SHARP影印機"
        objNetwork.SetDefaultPrinter "\\DFS1\Konica事務機"
    Case "GMDept"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\HP3600"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\HP3600"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\Konica事務機"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\Konica事務機"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\FAXPrinter"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\FAXPrinter"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\SHARP影印機"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\SHARP影印機"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\P1006"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\P1006"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\R1800"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\R1800"
        objNetwork.SetDefaultPrinter "\\DFS1\SHARP影印機"
    Case "BOD"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\HP3600"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\HP3600"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\Konica事務機"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\Konica事務機"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\FAXPrinter"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\FAXPrinter"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\SHARP影印機"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\SHARP影印機"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\SHIPPING"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\SHIPPING"
        objNetwork.SetDefaultPrinter "\\DFS1\Konica事務機"
    Case "Finance"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\HP3600"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\HP3600"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\Konica事務機"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\Konica事務機"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\FAXPrinter"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\FAXPrinter"
        objNetwork.AddWindowsPrinterConnection "\\DFS1\SHARP影印機"
        objNetwork.AddWindowsPrinterConnection "\\DFS2\SHARP影印機"
        objNetwork.AddWindowsPrinterConnection "\\FANNY-PC\EPSONSty"
        objNetwork.AddWindowsPrinterConnection "\\JOYCE-PC\EpsonLQ1170C"
        objNetwork.SetDefaultPrinter "\\DFS1\Konica事務機"
    Case Else
        ' 移除印表機連線
        objNetwork.RemovePrinterConnection "\\DFS1\HP3600彩雷"
        objNetwork.RemovePrinterConnection "\\DFS1\Konica Minolta事務機"
        objNetwork.RemovePrinterConnection "\\DFS1\FX DocuPrint 203A"
        objNetwork.RemovePrinterConnection "\\DFS1\Q1"
        objNetwork.RemovePrinterConnection "\\DFS1\Q2"
        objNetwork.RemovePrinterConnection "\\DFS1\SHARP影印機"
        objNetwork.RemovePrinterConnection "\\DFS1\SHIPPING"
        objNetwork.RemovePrinterConnection "\\DFS2\FX DocuPrint 203A"
        objNetwork.RemovePrinterConnection "\\DFS2\Q1"
        objNetwork.RemovePrinterConnection "\\DFS2\Q2"
        objNetwork.RemovePrinterConnection "\\DFS2\SHARP影印機"
        objNetwork.RemovePrinterConnection "\\DFS2\SHIPPING"
        objNetwork.RemovePrinterConnection "\\DFS2\HP3600彩雷"
        objNetwork.RemovePrinterConnection "\\DFS2\Konica Minolta事務機"
End Select

2015年11月21日 星期六

使用GPO規則幫使用者自動安裝印表機


轉自  http://lms.twivs.tnc.edu.tw/t2710/doc/496
大概的指令:
  • 新增網路印表機:
    rundll32 printui.dll,PrintUIEntry /in /q /n \\(伺服器名稱)\(印表機分享名稱)
  • 將網路印表機設定為「預設印表機」:
    rundll32 printui.dll,PrintUIEntry /y /q /n \\(伺服器名稱)\(印表機分享名稱)
  • 刪除網路印表機:
    rundll32 printui.dll,PrintUIEntry /dn /n \\(伺服器名稱)\(印表機分享名稱)

開啟群組原則管理MMC,啥?!還沒安裝這個好用的工具?!  請到這邊下載安裝 http://www.microsoft.com/downloads/details.aspx?FamilyID=0a6d4c24-8cbd-4b35-9272-dd3cbfc81887&displaylang=zh-tw ,直接安裝在XP下即可管理DC的GPO,安裝完後在程式集 => 系統管理工具 底下就會出現 群組原則管理
1.建立新的GPO規則 自動新增印表機
1 
2
2.對該GPO關閉電腦組態
3
3.開始設定 自動新增印表機 GPO
4

4.使用者 => 指令碼 => 登入 => 滑鼠右鍵選內容
5
5.選 顯示檔案
6
6.建立  ModifyPrinter.bat 批次檔,並編輯輸入新增印表機的指令後存檔
8
7
7.新增剛剛建立好的 批次檔 ,這樣使用者就可以在登入網域時,背景自動安裝對應印表機。
9
10

若不想每次使用者都重覆新增印表機的動作,可在ModifyPrinter.bat 內做判斷:
請先在24h開機的機器上建立分享資料夾,權限要設定好讓使用者能寫入(通常開authenticated users權限即可),在此目錄下建立個空白 *.txt 檔案記錄使用者或電腦明稱。
===============================================================
@echo off
if not exist \\filesrv-vm\gpowork\InstallPrinter-test.txt goto End  <==判斷目錄與檔案是否存在,若不存在就跳離批次檔
@type \\filesrv-vm\gpowork\InstallPrinter-test.txt |find/I "[%COMPUTERNAME%][%USERNAME%]" > nul 2>&1  <==查詢 txt 檔內容是否有對應的電腦名稱與使用者名稱,若有則不再執行新增印表機動作,若沒有則開始新增印表機的動作  if %errorlevel% == 0 goto End
rundll32 printui.dll,PrintUIEntry /in /q /n \\prtsrv-vm\HP2015
rundll32 printui.dll,PrintUIEntry /in /q /n \\prtsrv-vm\HP2015PS
rundll32 printui.dll,PrintUIEntry /in /q /n \\prtsrv-vm\RICOH1045
rundll32 printui.dll,PrintUIEntry /in /q /n \\prtsrv-vm\RICOH1045紙夾四
rundll32 printui.dll,PrintUIEntry /in /q /n \\prtsrv-vm\支票
rundll32 printui.dll,PrintUIEntry /in /q /n \\prtsrv-vm\派車單
rundll32 printui.dll,PrintUIEntry /in /q /n \\prtsrv-vm\帳冊
rundll32 printui.dll,PrintUIEntry /in /q /n \\prtsrv-vm\報單倉單2
rundll32 printui.dll,PrintUIEntry /in /q /n \\prtsrv-vm\報單倉單3
rundll32 printui.dll,PrintUIEntry /in /q /n \\prtsrv-vm\發票
rundll32 printui.dll,PrintUIEntry /in /q /n \\prtsrv-vm\傳票
echo [%COMPUTERNAME%][%USERNAME%] >> \\filesrv-vm\gpowork\InstallPrinter-test.txt  <==新增完印表機則將電腦名稱與使用者名稱寫入txt檔案內
exit
:End
==================================================================
txt檔案成功寫入後大概會是長這樣:
========================================
[ROGER-AMD][roger] 
[ROGER-DELPHI-VM][roger] 
[FILESRV-VM][administrator] 
[PC005][gina] 
[PC013][kevin] 
[PC008][kevin] 
[PC009][kate] 
[PC010][rich] 
[PC016][op] 
[PC007][david] 
[PC004][eric] 
=======================================
這樣不同的使用者在相同的電腦上也可以確認使用者能夠新增到印表機。

2015年10月27日 星期二

AD使用者登錄自動連線網路磁碟機與印表機

轉自 http://blog.xuite.net/stua810654/twblog/111667068-AD使用者登錄自動連線網路磁碟機與印表機

問題描述 :
ㄧ般公司都會有需要共用網路資源的需求
比如說是共用網路磁碟機 印表機…..等等

但是如果每次設定都要到現場設 以我公司80多台為例的話保證會走死
如果公司使用者手殘把設定弄掉的話……那就更慘了 

因此建議利用AD的設定 AD的使用者登錄後系統會自動進行連線網路資源的動作
省去MIS的麻煩

目標:
1.      撰寫 批次檔 AD登入時自動執行批次檔達到自動連線的功能

第一步 撰寫 批次檔
以我自寫的 MIS.bat 為例

******MIS.bat程式內容******
echo off
net use s: /d
net use s: \\nas1\公共區
mkdir \\NAS1\users$\%username%
net use h: /d
net use h: \\NAS1\users$\%username%
cacls h: /e /r everyone
cacls h: /e /g %username%:c

call \\dc2\netlogon\prt1_NEW.vbs

在這裡針對上述程式作解釋
echo off    => 這裡指的是將批次檔的指令內容隱藏出來
net use s: /d => 中斷網路磁碟機S槽的連線
net use s: \\nas1\公共區 => 建立網路磁碟機S槽的連線 對應位置為 \\nas1\公共區
mkdir \\NAS1\users$\%username% => 建立資料夾 資料夾位置在\\NAS1\users$\%username% %username%代表AD登錄的帳號
net use h: /d => 中斷網路磁碟機H槽的連線
net use h: \\NAS1\users$\%username% => 建立網路磁碟機H槽的連線 對應位置為\\NAS1\users$\%username% %username%代表AD登錄的帳號
cacls h: /e /r everyone => 修改網路磁碟機H槽的權限拿掉everyone的權限
cacls h: /e /g %username%:c => 修改網路磁碟機H槽的權限新增%username%的使用權限%username%代表AD登錄的帳號

call \\dc2\netlogon\prt1_NEW.vbs => 呼叫 別的程式執行 位置\\dc2\netlogon\prt1_NEW.vbs

****** prt1_NEW.vbs程式內容******
Set WshNetwork1 = CreateObject("WScript.Network")
WshNetwork1.AddWindowsPrinterConnection "\\esvr2.jt.com.tw\SHARP AR-M258_三樓辦公室(前面)雷射印表機"

Set WshNetwork2 = CreateObject("WScript.Network")
WshNetwork2.AddWindowsPrinterConnection "\\esvr2.jt.com.tw\SHARP MX-2300N_三樓辦公室(後面)雷射印表機"
上述內容就是說直接指定網路印表機進行連線動作
完成上述動作就完成了批次檔的撰寫了

第二步 AD伺服器能讀取伺服器並執行內容
撰寫完 MIS.bat prt1_NEW.vbs 兩個檔案後
連線到你的AD伺服器
開啟資料夾 C:\WINDOWS\SYSVOL\domain\scripts
講兩個檔案都放上去

執行 Active Directory 使用者及電腦 程式

找到你希望它自動連線的帳號這裡以misadmin 帳號為例 選擇misadmin帳號後按右鍵 選擇內容
將分頁移到設定檔分頁 其中的登入指令檔輸入 mis.bat 儲存即可
之後不管再哪一台電腦 只要他在公司網域內的電腦登錄
程式就會自動執行mis.bat的指令內容 就可完成自動連線網路磁碟機與網路印表機的動作


以上教學歡迎轉載但是請註明源頭來自


胖雀鳥的妄想天地  http://tw.myblog.yahoo.com/big-suzume

2015年10月25日 星期日

如何設定 64&32 位元環境安裝網路印表機連線說明

轉自 http://dl.mfpcharging.com/doc/
         http://dl.mfpcharging.com/doc/mFPCharging-HowSet-sys64-sys32-Printer_cht.pdf


某些印表機驅動程式可能無法不透過安裝而解壓縮。若是這樣的情況,登入與您要新增至列印伺服器的印表機驅動程式使用相同處理器結構的用戶端電腦,並安裝那些印表機驅動程式。接著,從用戶端電腦使用 [列印管理] 連接至列印伺服器,並從 [其他驅動程式] 對話方塊新增其他驅動程式。Windows 會從用戶端電腦將驅動程式自動上傳至列印伺服器。

經由GPO自動安裝Client網路印表機並先判斷是否已安裝過


轉自 http://kuenhourg.blogspot.tw/2013/11/gpoclient.html

1. 將下列命令存成batch批次檔。
※ 新增網路印表機:
    rundll32 printui.dll,PrintUIEntry /in /q /n "\\(伺服器名稱)\(印表機分享名稱)"

※ 將網路印表機設定為「預設印表機」:
    rundll32 printui.dll,PrintUIEntry /y /q /n "\\(伺服器名稱)\(印表機分享名稱)"
※ 刪除網路印表機:
    rundll32 printui.dll,PrintUIEntry /dn /n "\\(伺服器名稱)\(印表機分享名稱) "

2. 開啟GPO群組原則:
使用者設定 => 指令碼 => 登入 => 滑鼠右鍵選內容 <新增該batch檔>

















3. 進階需求,批次判斷行為與記錄留存:
@echo off
if not exist \\dc\work\PrinterUser.txt goto End  
^== 判斷檔案是否存在,否則跳離

type \\dc\work\PrinterUser.txt |find/I "[%COMPUTERNAME%][%USERNAME%]" > nul 2>&1
^== 查詢對應的電腦名稱與使用者名稱,若有則不再執行新增印表機動作
if %errorlevel% == 0 goto End
rundll32 printui.dll,PrintUIEntry /in /q /n "\\dc\印表機"

echo [%COMPUTERNAME%][%USERNAME%] >> \\dc\work\PrinterUser.txt
^== 新增完印表機則將電腦名稱與使用者名稱寫入txt檔案內
exit
:End
===================================================================
成功寫入後,該txt文字檔案內容如下所示:
[PC24][frank]
[PC36][kate]  

使用GPO規則幫使用者自動安裝網路印表機並先判斷是否已安裝過

轉自 http://lms.twivs.tnc.edu.tw/t2710/doc/496

大概的指令:
  • 新增網路印表機:
    rundll32 printui.dll,PrintUIEntry /in /q /n \\(伺服器名稱)\(印表機分享名稱)
  • 將網路印表機設定為「預設印表機」:
    rundll32 printui.dll,PrintUIEntry /y /q /n \\(伺服器名稱)\(印表機分享名稱)
  • 刪除網路印表機:
    rundll32 printui.dll,PrintUIEntry /dn /n \\(伺服器名稱)\(印表機分享名稱)

開啟群組原則管理MMC,啥?!還沒安裝這個好用的工具?!  請到這邊下載安裝 http://www.microsoft.com/downloads/details.aspx?FamilyID=0a6d4c24-8cbd-4b35-9272-dd3cbfc81887&displaylang=zh-tw ,直接安裝在XP下即可管理DC的GPO,安裝完後在程式集 => 系統管理工具 底下就會出現 群組原則管理
1.建立新的GPO規則 自動新增印表機
1 
2
2.對該GPO關閉電腦組態
3
3.開始設定 自動新增印表機 GPO
4

4.使用者 => 指令碼 => 登入 => 滑鼠右鍵選內容
5
5.選 顯示檔案
6
6.建立  ModifyPrinter.bat 批次檔,並編輯輸入新增印表機的指令後存檔
8
7
7.新增剛剛建立好的 批次檔 ,這樣使用者就可以在登入網域時,背景自動安裝對應印表機。
9
10

若不想每次使用者都重覆新增印表機的動作,可在ModifyPrinter.bat 內做判斷:
請先在24h開機的機器上建立分享資料夾,權限要設定好讓使用者能寫入(通常開authenticated users權限即可),在此目錄下建立個空白 *.txt 檔案記錄使用者或電腦明稱。
===============================================================
@echo off
if not exist \\filesrv-vm\gpowork\InstallPrinter-test.txt goto End  <==判斷目錄與檔案是否存在,若不存在就跳離批次檔
@type \\filesrv-vm\gpowork\InstallPrinter-test.txt |find/I "[%COMPUTERNAME%][%USERNAME%]" > nul 2>&1  <==查詢 txt 檔內容是否有對應的電腦名稱與使用者名稱,若有則不再執行新增印表機動作,若沒有則開始新增印表機的動作  if %errorlevel% == 0 goto End
rundll32 printui.dll,PrintUIEntry /in /q /n \\prtsrv-vm\HP2015
rundll32 printui.dll,PrintUIEntry /in /q /n \\prtsrv-vm\HP2015PS
rundll32 printui.dll,PrintUIEntry /in /q /n \\prtsrv-vm\RICOH1045
rundll32 printui.dll,PrintUIEntry /in /q /n \\prtsrv-vm\RICOH1045紙夾四
rundll32 printui.dll,PrintUIEntry /in /q /n \\prtsrv-vm\支票
rundll32 printui.dll,PrintUIEntry /in /q /n \\prtsrv-vm\派車單
rundll32 printui.dll,PrintUIEntry /in /q /n \\prtsrv-vm\帳冊
rundll32 printui.dll,PrintUIEntry /in /q /n \\prtsrv-vm\報單倉單2
rundll32 printui.dll,PrintUIEntry /in /q /n \\prtsrv-vm\報單倉單3
rundll32 printui.dll,PrintUIEntry /in /q /n \\prtsrv-vm\發票
rundll32 printui.dll,PrintUIEntry /in /q /n \\prtsrv-vm\傳票
echo [%COMPUTERNAME%][%USERNAME%] >> \\filesrv-vm\gpowork\InstallPrinter-test.txt  <==新增完印表機則將電腦名稱與使用者名稱寫入txt檔案內
exit
:End
==================================================================
txt檔案成功寫入後大概會是長這樣:
========================================
[ROGER-AMD][roger] 
[ROGER-DELPHI-VM][roger] 
[FILESRV-VM][administrator] 
[PC005][gina] 
[PC013][kevin] 
[PC008][kevin] 
[PC009][kate] 
[PC010][rich] 
[PC016][op] 
[PC007][david] 
[PC004][eric] 
=======================================
這樣不同的使用者在相同的電腦上也可以確認使用者能夠新增到印表機。

使用 BATCH or VBS 自動安裝網路印表機

使用 BATCH or VBS 自動安裝網路印表機 轉自 http://jakson.idv.tw/wordpress/?p=268

BATCH 方式

  • 新增網路印表機: 
    rundll32 printui.dll,PrintUIEntry /in /q /n \(伺服器名稱)(印表機分享名稱)
  • 將網路印表機設定為「預設印表機」: 
    rundll32 printui.dll,PrintUIEntry /y /q /n \(伺服器名稱)(印表機分享名稱)
  • 刪除網路印表機: 
    rundll32 printui.dll,PrintUIEntry /dn /n \(伺服器名稱)(印表機分享名稱)
若搭配 BATCH 寫成.bat 檔案 , 以後重複的動作 , 只要點兩下就搞定囉~~ (中間或許也要點許多"是")
  • rundll32 printui.dll,PrintUIEntry /? → 指令查詢

    VBScript 方式

    • 新增網路印表機: 
      WshNetwork.AddWindowsPrinterConnection 
      \(伺服器名稱)(印表機分享名稱)"
    • 將網路印表機設定為「預設印表機」: 
      WshNetwork.SetDefaultPrinter 
      \(伺服器名稱)(印表機分享名稱)"
    • 刪除網路印表機: 
      WshNetwork.RemovePrinterConnection  “\(伺服器名稱)(印表機分享名稱)" , true, true
      執行範例.vbsSet WshNetwork = CreateObject(“WScript.Network")WshNetwork.AddWindowsPrinterConnection “\babaHPLaserJ"WshNetwork.SetDefaultPrinter “\babaHPLaserJ"WScript.Echo "已經完成新增印表機!!"
    小結 :
    VBS 的方式比BATCH還要好用 , 因為安裝過程不會要你一直點"是" , 所以當然推 VBS 搂!

    可自動刪除本機端網路印表機及根據不同domain user設定不同印表機的vbs

    可自動刪除本機端網路印表機與根據不同domain user設定不同印表機的vbs

    以下是移除所有印表機
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colInstalledPrinters =  objWMIService.ExecQuery _
        ("Select * from Win32_Printer")
    For Each objPrinter in colInstalledPrinters
        objPrinter.Delete_
    Next
     
    以下是移除所有”非網絡”(Local Printer)印表機
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colInstalledPrinters =  objWMIService.ExecQuery _
        ("Select * from Win32_Printer Where Network = FALSE") 
    For Each objPrinter in colInstalledPrinters
        objPrinter.Delete_
    Next

    以下能夠移除名稱為'Kyocera FS-3920DN ACC'的印表機 (就是新增印表機時建立的名字)
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colInstalledPrinters =  objWMIService.ExecQuery _
        ("Select * from Win32_Printer Where Caption = 'Kyocera FS-3920DN ACC'")
    For Each objPrinter in colInstalledPrinters
        objPrinter.Delete_
    Next


    strComputer = "."
    Set WshNetwork = WScript.CreateObject("WScript.Network")
    Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colInstalledPrinters = objWMIService.ExecQuery _
    ("Select * from Win32_Printer")
    For Each objPrinter in colInstalledPrinters
    if InStr(objPrinter.Name, "\\") > 0 then
    WshNetwork.RemovePrinterConnection objPrinter.Name
    end if
    Next


    Set WshNetwork1 = CreateObject("WScript.Network")

    Select Case WshNetWork1.UserName

    Case "user1"

    PrinterPath = "\\Server1\Print1"
    PrinterDriver = "Print1"
    WshNetwork1.AddWindowsPrinterConnection PrinterPath, PrinterDriver

    PrinterPath = "\\Server2\Print2"
    PrinterDriver = "q23"
    WshNetwork1.AddWindowsPrinterConnection PrinterPath, PrinterDriver

    PrinterPath = "\\Server3\Print3"
    PrinterDriver = "Print3"
    WshNetwork1.AddWindowsPrinterConnection PrinterPath, PrinterDriver



    WshNetwork.SetDefaultPrinter "Server1\Print1"

    Case "user2"

    PrinterPath = "\\Server1\Print1"
    PrinterDriver = "Print1"
    WshNetwork1.AddWindowsPrinterConnection PrinterPath, PrinterDriver

    PrinterPath = "\\Server2\Print2"
    PrinterDriver = "q23"
    WshNetwork1.AddWindowsPrinterConnection PrinterPath, PrinterDriver

    PrinterPath = "\\Server3\Print3"
    PrinterDriver = "Print3"
    WshNetwork1.AddWindowsPrinterConnection PrinterPath, PrinterDriver


    WshNetwork1.SetDefaultPrinter "\\Server2\Print2"
    End Select
    =====================================================
    每段Script只要儲存為.vbs再雙擊就能運行!
    如果你要設定成批次檔執行一個.vbs你可以用script.exe來運行

    以下是移除所有印表機
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:" _
        & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
    Set colInstalledPrinters =  objWMIService.ExecQuery _
        ("Select * from Win32_Printer")
    For Each objPrinter in colInstalledPrinters
        objPrinter.Delete_
    Next

    以下是移除所有”非網絡”(Local Printer)印表機
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colInstalledPrinters =  objWMIService.ExecQuery _
        ("Select * from Win32_Printer Where Network = FALSE") 
    For Each objPrinter in colInstalledPrinters
        objPrinter.Delete_
    Next

    以下能夠移除名稱為'Kyocera FS-3920DN ACC'的印表機 (就是新增印表機時建立的名字)
    strComputer = "."
    Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
    Set colInstalledPrinters =  objWMIService.ExecQuery _
        ("Select * from Win32_Printer Where Caption = 'Kyocera FS-3920DN ACC'")
    For Each objPrinter in colInstalledPrinters
        objPrinter.Delete_
    Next