顯示具有 VBScript 標籤的文章。 顯示所有文章
顯示具有 VBScript 標籤的文章。 顯示所有文章

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月10日 星期二

批次 用vbs發信很簡單

轉自  http://adalf0722.blogspot.tw/2008/12/vbs.html

用vbs發信很簡單

server上不需安裝smtp服務,但你必須有一發信帳戶就可以使用這個發信囉,發信時還可附加檔案或從文字檔讀取內容喔

1.首先將下列script存成mail.vbs
Option Explicit
'變數宣告
dim FSO,objfile
dim SMTPSVR,MailFrom,MailTo
dim User,Password,Subject
dim Content,Nikename
dim addFile
'取參數
SMTPSVR = Wscript.arguments.Item(0)
User = Wscript.arguments.Item(1)
Password = Wscript.arguments.Item(2)
MailFrom = Wscript.arguments.Item(3)
MailTo = Wscript.arguments.Item(4)
Subject = Wscript.arguments.Item(5)
Content = Wscript.arguments.Item(6)
Nikename = Wscript.arguments.Item(7)
addFile = Wscript.arguments.Item(8)

MailFrom = """" & Nikename & """" & MailFrom

Call sendMail(SMTPSVR,User,Password,MailFrom,MailTo,Subject,Content,addFile)

Sub sendMail(SMTPSVR,User,Password,MailFrom,MailTo,Subject,Body,addFile)
Const cdoSendUsingPickup = 1 'Send message using the local SMTP service pickup directory.
Const cdoSendUsingPort = 2 'Send the message using the network (SMTP over the network).
Const cdoAnonymous = 0 'Do not authenticate
Const cdoBasic = 1 'basic (clear-text) authentication
Const cdoNTLM = 2 'NTLM
dim objMessage
dim ReadAllTextFile
Set objMessage = CreateObject("CDO.Message")
objMessage.Subject = Subject
objMessage.From = MailFrom
objMessage.Sender = MailFrom
objMessage.To = MailTo

'讀取文字檔
Set FSO = CreateObject("Scripting.FileSystemObject")
If FSO.FileExists(Body) Then
Set objfile = FSO.OpenTextFile(Body,1)
ReadAllTextFile = objfile.ReadAll
objfile.close
else
ReadAllTextFile = "文字檔案不存在!"
end if

if addFile <> "" then
If FSO.FileExists(addfile) Then
objMessage.AddAttachment addfile
else
ReadAllTextFile = ReadAllTextFile & " 附加檔案不存在!"
end if

end if
objMessage.TextBody = ReadAllTextFile

'objMessage.AddAttachment strAddfile
'==This section provides the configuration information for the remote SMTP server.
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2
'Name or IP of Remote SMTP Server
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserver") = SMTPSVR
'Type of authentication, NONE, Basic (Base64 encoded), NTLM
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpauthenticate") = cdoBasic
'Your UserID on the SMTP server
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendusername") = User
'Your password on the SMTP server
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/sendpassword") = Password
'Server port (typically 25)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpserverport") = 25
'Use SSL for the connection (False or True)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpusessl") = False
'Connection Timeout in seconds (the maximum time CDO will try to establish a connection to the SMTP server)
objMessage.Configuration.Fields.Item _
("http://schemas.microsoft.com/cdo/configuration/smtpconnectiontimeout") = 60
objMessage.Configuration.Fields.Update
'==End remote SMTP server configuration section==
objMessage.Send
Set objMessage = Nothing
'wscript.echo "信件已寄出"
End Sub
2.再將下列命令存成content.bat ,內容視情況修改("::"後面接的是註解喔)
::vbs的位置
set mailApp=".\mail.vbs"
::smtp server
set SMTPSVR="xxx.xxx.xxx"
::username
set User="username"
::password
set Password="pw"
::寄件者(暱稱,email address)
set MailFrom="test@mail.com.xx"
::收件者
set MailTo="test@mail.com.xx"
::主旨
set Subject="主旨"
::內容檔案的位置
set Content="d:\cc.txt"
::
set Nickname="管理者"
::附加檔案的位置
set addFile="d:\cc.txt"
::執行指令
call %mailApp% %SMTPSVR% %User% %Password% %MailFrom% %MailTo% %Subject% %Content% %Nickname% %addFile%
::pause

3.mail.vbs 與content.bat請放在同一層,執行 content.bat就可以發信囉

2015年10月27日 星期二

請問如何遠端修改網域中電腦的電腦名稱?

轉自 http://phorum.study-area.org/index.php?topic=49247.0


' 作業系統支援
' Windows Server 2003 : Yes
' Windows XP : Yes
' Windows 2000 : No
' Windows NT 4.0 : No
' Windows 98 : No
Const HKEY_LOCAL_MACHINE = &H80000002


' 目標電腦名稱
strComputer = "oldname"

' 新電腦名稱
strNewName = "newname"

' 電腦描述
strDescription = "某某某的電腦"



Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")

Set colComputers = objWMIService.ExecQuery _
    ("Select * from Win32_ComputerSystem")

For Each objComputer in colComputers
    err = objComputer.Rename(strNewName)
If Err <> 0 Then
Wscript.Echo "無法修改電腦名稱, 錯誤碼: " & Err

End If
Next

Set objRegistry = GetObject _
    ("winmgmts:\\" & strComputer & "\root\default:StdRegProv")

strKeyPath = "System\CurrentControlSet\Services\lanmanserver\parameters"
strValueName = "srvcomment"

objRegistry.SetStringValue HKEY_LOCAL_MACHINE, strKeyPath, strValueName, strDescription

Set objWMIService2 = GetObject _
    ("winmgmts:\\" & strComputer & "\root\cimv2:Win32_Process")
Error = objWMIService2.Create("C:\windows\system32\shutdown.exe -t 30 -r -c ""電腦名稱已更新為 '" & strnewname & "', 30 秒鍾後將自動重新開機"" ", null , null, intProcessID)

If Error <> 0 Then
    Wscript.Echo "無法執行 shutdown.exe, 錯誤碼: " & _
        Error & "."

End If

新增 win7 使用者以及修改電腦名稱 並且設定新user自動登入

轉自 http://boywhy.blogspot.tw/2015/06/vbscript-win7-user.html

Dim user Dim strCommand Dim myKey Dim pasword dim ComputerName user=InputBox("Please Enter User : ","GFI user Setting") pasword=InputBox("Please Enter Password : ","GFI user Setting") 'change computername Set objShell = WScript.CreateObject("Wscript.Shell") Set objNetwork = WScript.CreateObject("WScript.Network") ComputerName = objNetwork.ComputerName strCommand= "wmic computersystem where caption='" & ComputerName &"' rename " & user objShell.Run strCommand 'add user strCommand= "net user " & user &" " & pasword & " /ADD" objShell.Run strCommand Wscript.Sleep 500 'add to Administrators Group strCommand ="net localgroup administrators " & user &" /add" objShell.Run strCommand Wscript.Sleep 500 'kill default user strCommand ="net user user /DELETE" objShell.Run strCommand Wscript.Sleep 500 'modify autologin =1 objShell.RegWrite "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\AutoAdminLogon","1","REG_SZ" objShell.RegWrite "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultUserName", user, "REG_SZ" objShell.RegWrite "HKLM\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\DefaultPassword", pasword, "REG_SZ" 'reboot strCommand ="shutdown.exe /R /T 5 /C ""Rebooting your computer now!"" " objShell.Run strCommand Wscript.Echo strCommand

2015年10月26日 星期一

VBS代碼自動把客戶端加入你的網域

轉自 https://japlinchen.wordpress.com/2008/10/06/vbs代碼自動把客戶端加入你的網域/

內容如下:
個人整理的,平時也有在用,切實可行,按照你的需要修改吧,把下列代碼拷貝到寫字板中,另存為:**.vbs,要用時雙擊就好了,是IT的都看懂:
可以實現:
  1. 自定議電腦名稱
  2. 自動加入網域
  3. 自動添加 域賬號  客戶機 POWER USER權限
  4. 刪除 本機 ADMINISTRATORS中除 ADMINISTRATOR 及 DOMAIN ADMIN以外的帳號
  5. 修改本機 ADMINISTRATOR密碼為 自己想要的密碼
'********************** '定義數據 '**********************
Dim reval 
Dim computer_name1 
Dim computer_name2 
Dim computer_name3 
Dim computer_name4 
Dim computer_name5 
'********************** 
'電腦名稱命名規則 
'********************** 
MsgBox "行政公關:0210-英文名;財務會計:0220-英文名;" _
     & "機構工程:0710-英文名;電子測試:0730-英文名;" _
     & "新產品:0800-英文名",vbokcancel+vbexclamation, _
       "電腦名稱命名規則!" 
'********************** 
'用戶自定義電腦名稱 
'********************** 
Set objnet = CreateObject ("WScript.Network") 
Set R = CreateObject("WScript.Shell") 
reval = InputBox ("你當前的電腦名稱是:" _
     & objnet.ComputerName,"請輸入新的電腦稱:") 
'********************** 
'存儲變量 
'********************** 
computer_name1 = reval 
computer_name2 = reval 
computer_name3 = reval 
computer_name4 = reval 
computer_name5 = reval 
'********************** 
'修改電腦名稱 
'********************** 
On Error Resume Next 
strComputer = "." 
Set objWMIService = GetObject("winmgmts:" _
    & "{impersonationLevel=impersonate}!\\" _
    & strComputer & "\root\cimv2") 
Set colComputers = objWMIService.ExecQuery _
    ("Select * from Win32_ComputerSystem") 
For Each objComputer in colComputers 
    errReturn = ObjComputer.Rename (computer_name1) 
  ' If reval <> "" Then 
  '    return=MsgBox ("請按確定重新啟動電腦", vbokcancel+vbexclamation, "注意!") 
  '    If return=vbok Then 
  '       R.run("Shutdown.exe -r -t 0") 
  '    End if 
  ' End If 
Next 
'********************** 
'加入XXXXX-CHINA域 
'********************** 
'* http://support.microsoft.com/kb/222525 
'* MAIL: tjq_wzy@hotmail.com 
'********************** 
'strDomain需更改成自己域名 
'strPassword及strUser具有權限加域的密碼及用戶 
'********************** 
Const JOIN_DOMAIN = 1 
Const ACCT_CREATE = 2 
Const ACCT_DELETE = 4 
Const WIN9X_UPGRADE = 16 
Const DOMAIN_JOIN_IF_JOINED = 32 
Const JOIN_UNSECURE = 64 
Const MACHINE_PASSWORD_PASSED = 128 
Const DEFERRED_SPN_SET = 256 
Const INSTALL_INVOCATION = 262144 
strDomain = "xxxxx-china.cn" 
strPassword = "xxxxx-china" 
strUser = "admin" 
'有domain admins權限的用戶及密碼 
Set objNetwork = CreateObject("WScript.Network") 
strComputer = objNetwork.ComputerName 
Set objComputer = GetObject("winmgmts:" _ 
    & "{impersonationLevel=Impersonate}!\\"& _
    strComputer & "\root\cimv2:Win32_ComputerSystem.Name='" & _
    strComputer & "'") 
Returnvalue = objComputer.JoinDomainOrWorkGroup(strDomain, _
    strPassword, strDomain & "\" & strUser, NULL, _
    JOIN_DOMAIN + ACCT_CREATE) 
wscript.echo "已成功加入xxxxx-CHINA.CN域!" 
' wscript.echo "Pls. Reset Your Computer!" 
'******************************* 
'添加用戶到POWER USERS群組 
'以下第二句WinNT://後為自己的域名 
'******************************* 
dim myname 
myname = InputBox ("請輸入你申請賬號時的英文名稱,輸入錯誤將不能登錄:","自定義開機用戶名!") 
Set objGroup = GetObject("WinNT://" & computer_name2 & "/Power Users") 
Set objUser = GetObject("WinNT://xxxxx-china/" & myname) 
objGroup.Add(objUser.ADsPath) 
'*********************************** 
'刪除本地ADMINISTRATORS組中的其它成員 
'除administrator 及 Domain Admins 
'*********************************** 
Set objGroup = GetObject("WinNT://" & computer_name3 & "/Administrators") 
For Each objUser In objGroup.Members 
If objUser.Name <> "Administrator" AND objUser.Name <> "Domain Admins" Then 
   Wscript.Echo "刪除ADMIN群組賬號:" & objUser.Name 
   objGroup.Remove(objUser.AdsPath) 
End If 
Next 
'*********************************** 
'修改本機管理員ADMINISTRATOR的密碼 
'*********************************** 
'下面第三句引號部分為密碼字符 
'*********************************** 
strComputer = "computer_name5" 
Set objUser = GetObject("WinNT://" & strComputer & "/Administrator, user") 
objUser.SetPassword "ks_its_" 
objUser.SetInfo 
'*********************************** 
'所有操作完成重新啟動電腦 
'*********************************** 
'wscript.echo "所有的操作完成,將重新啟動電腦!" 
'Set objWMIService = GetObject("winmgmts:" _
'    & "{impersonationLevel=impersonate,(Shutdown)}!\\" _
'    & computer_name4 & "\root\cimv2") 
'Set colOperatingSystems = objWMIService.ExecQuery _ 
'    ("Select * from Win32_OperatingSystem") 
'For Each objOperatingSystem in colOperatingSystems 
'    ObjOperatingSystem.Reboot() 
'Next 
return=MsgBox ("所有的操作完成,將重新啟動電腦!",vbokcancel+vbexclamation,"注意!") 
If return=vbok Then 
   R.run("Shutdown.exe -r -t 0") 
End if 
'******************** 
'end 
'******************** 

修改 Administrator 的密碼該程式段值得參考, 先收錄之.

以群組原則設定網域使用者擁有 Local Administrator 權限及修改密碼

轉自 https://duke8888.wordpress.com/2015/03/27/利用群組原則設定網域使用者的-local-administrators-權限/

首先,因為網域使用者帳號預設是放在DC的「網域名稱→User」底下,而這個「User」並無法直接設定群組原則(Group Policy)。此外企業內的電腦通常會因各種因素而有不同的管理需求,所以應該要建立不同的OU來做管理。簡單的來說,我們可以先在「群組原則管理」(gpmc.msc)中的「群組原則物件」建立一些符合需求的原則,然後建立各部門的OU,最後再依實際需求將「群組原則物件」複製到那個OU去(或是直接在OU裡面新增原則),比較能符合現實層面的管理。
一、賦予權限: 讓網域內的特定使用者擁有本機 Administrator 帳戶權限:
那如果要讓某位網域使用者 (假定為 CYCU\TEST1) 具備某一個OU下所有成員電腦中的系統管理員權限,若直接將這個 CYCU\TEST1 加入 Domain Admins 群組雖是最快的方式。但如此一來,這個 CYCU\TEST1 就具備了管理網域的權限,這樣權限絕對是過大了。因此建議的作法是在OU底下使用群組原則中的「受限群組」來將網域使用者加到 Administrators 群組織中,以後客戶端就可以使用 Administrator 這個管理員帳戶登入自己的電腦。操作的方式請參照下圖:


二、收回權限: 每次開機時修改網域內使用者的本機 Administrator 帳戶密碼:
雖然上面介紹了如何給 Local Administrator 權限,但筆者還是不太適合,因為那樣真的就有點失去 AD 的意義了,每個人都不受控制… 其實不給 Local Administrator 最主要的用意是在於防範使用者被賦予該部電腦的最高管理權限,可能導致中毒時去攻擊其他網域內的電腦,所以為了安全性,不開放才是比較好的做法啊…
那有什麼好方法可以管理 Local Administrator 帳戶的權限呢? 如果公司政策支持的話,網管人員最簡單的做法就是寫一個 vbs,如此就可以修改網域內每部電腦的 Local Administrator 密碼,然後統一保管,並要求使用者必須以網域帳號登入。以下的範例是修改 Local Administrator 的密碼為 12345678(如果 AD 裡面設定密碼必須複雜化,則這個 vbs 可能不會修改客戶端 Local Administrator 帳戶密碼):
strComputer = "."

Set objUser = GetObject("WinNT://" & strComputer & "/Administrator,user")

objUser.SetPassword "12345678"
objUser.SetInfo
1.在OU底下使用群組原則後再依下圖操作:

2.點選「顯示檔案」:

3.將第一步修改密碼的 vbs 放進去後即可讓使用者在登出後自動執行:

4.上述兩種原則設定完成後,如果想立即讓網域底下的電腦生效,請在 DC 上輸入「gpupdate /force」:

2015年10月25日 星期日

使用 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