Category Archives: Scripting

Enable or Disable Client For Microsoft Networks and other Lan Settings using script

Yesterday I was searching the web for a script that would disable the client for Microsoft networks and some other protocols.
I could not find it in the first 10 pages of my search on Google.
Finally I found a great solution that i would like to share with you, and tag my post well so anyone can find it more quickly than I did :-)

I found the application nvspbind that I could use to disable or enable the following stuff:

  • Broadcom Advanced Server Program Driver
  • Brocade 10G Ethernet Service
  • Intel(R) Advanced Network Services Protocol
  • Link-Layer Topology Discovery Mapper I/O Driver
  • Client for Microsoft Networks
  • NetBIOS Interface
  • WINS Client(TCP/IP) Protocol
  • QoS Packet Scheduler
  • Link-Layer Topology Discovery Responder
  • File and Printer Sharing for Microsoft Networks
  • Microsoft NetbiosSmb
  • Internet Protocol Version 4 (TCP/IPv4)
  • Internet Protocol Version 6 (TCP/IPv6)
  • Microsoft Virtual Network Switch Protocol

I’ve put them all together in a batch script:

REM Configure Network Settings

set lan="LAN Verbinding"

REM brcm_blfp (Broadcom Advanced Server Program Driver)
"%~DP0nvspbind.exe" /d "%lan%" brcm_blfp

REM bnad_imp (Brocade 10G Ethernet Service)
"%~DP0nvspbind.exe" /d "%lan%" bnad_imp

REM iansprotocol (Intel(R) Advanced Network Services Protocol)
"%~DP0nvspbind.exe" /d "%lan%" iansprotocol

REM ms_lltdio (Link-Layer Topology Discovery Mapper I/O Driver)
"%~DP0nvspbind.exe" /d "%lan%" ms_lltdio

REM ms_msclient (Client for Microsoft Networks)
"%~DP0nvspbind.exe" /d "%lan%" ms_msclient

REM ms_netbios (NetBIOS Interface)
"%~DP0nvspbind.exe" /d "%lan%" ms_netbios

REM ms_netbt (WINS Client(TCP/IP) Protocol)
"%~DP0nvspbind.exe" /d "%lan%" ms_netbt

REM ms_pacer (QoS Packet Scheduler)
"%~DP0nvspbind.exe" /d "%lan%" ms_pacer

REM ms_rspndr (Link-Layer Topology Discovery Responder)
"%~DP0nvspbind.exe" /d "%lan%" ms_rspndr

REM ms_server (File and Printer Sharing for Microsoft Networks)
"%~DP0nvspbind.exe" /d "%lan%" ms_server

REM ms_smb (Microsoft NetbiosSmb)
"%~DP0nvspbind.exe" /d "%lan%" NetbiosSmb

REM ms_tcpip (Internet Protocol Version 4 (TCP/IPv4))
"%~DP0nvspbind.exe" /d "%lan%" ms_tcpip

REM ms_tcpip6 (Internet Protocol Version 6 (TCP/IPv6))
"%~DP0nvspbind.exe" /d "%lan%" ms_tcpip6

REM vms_pp (Microsoft Virtual Network Switch Protocol)
"%~DP0nvspbind.exe" /d "%lan%" vms_pp

That’s it!

Enable Sound Icon Windows XP using script

Today my customer wanted to have the volume icon in the taskbar enabled.
Easy, was the first thought. But during my search i investiogated it was a bit harder.

Here’s the solution:
Import the following registry key:

reg add "HKCU\Software\Microsoft\Windows\CurrentVersion\Applets\SysTray" /v Services /t REG_DWORD /d 31 /f

Start the following program:
c:\WINDOWS\system32\systray.exe

VoilĂ  !

Show Dell Asset tag / part number / serial number using VB-script

This little vb-script shows the Asset tag / part number of serial number of your Dell computer.

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

Set colSMBIOS = objWMIService.ExecQuery _
("Select * from Win32_SystemEnclosure")

For Each objSMBIOS in colSMBIOS
Wscript.Echo "Part Number: " & objSMBIOS.PartNumber
Wscript.Echo "Serial Number: " & objSMBIOS.SerialNumber
Wscript.Echo "Asset Tag: " & objSMBIOS.SMBIOSAssetTag
Next

SCRIPT: Change Home-directory field in Active Directory

Use this script to change the Home-directory field in Active Directory

'on error resume next must be enabled, otherwise the search will fail on accounts which do not have a
'homedirectory/homedrive defined.
on error resume next

CONST ForReading = 1
CONST ForWriting = 2
CONST ForAppending = 8
CONST Create = true

UitwijkHomeDirServer = "cc-afsr-01"
OriginalHomeDirServer = "fvs-01"

Set objConnection = CreateObject("ADODB.Connection")
objConnection.Open "Provider=ADsDSOObject;"
Set objCommand = CreateObject("ADODB.Command")
objCommand.ActiveConnection = objConnection
'objCommand.CommandText = ";(objectCategory=User)" & ";adspath;subtree"
'Onderstaande CommandText is om mee te testen.
objCommand.CommandText = ";(objectCategory=User)" & ";adspath;subtree"
Set objRecordSet = objCommand.Execute

Set objShell = CreateObject("WScript.Shell")
Set objFso = CreateObject("scripting.filesystemobject")

Set changehomedirlogtxt = objFso.OpenTextFile("ChangeHomeDir_log.txt", ForAppending, Create)

'Append de datum en tijd in het tekstbestan met een witregel ervoor en erna.
changehomedirlogtxt.WriteBlankLines 1
changehomedirlogtxt.WriteLine(Date & " " & Time)
changehomedirlogtxt.WriteBlankLines 1

'Loop door het recordset en verander van iedere gebruiker die een homedrive op J heeft naar de fvs-01 de homedirectory.
'Schrijf alle usernames en homedirectories die aan de gebruikte if statement voldoen naar een tekstbestand.
Do Until objRecordset.EOF
'Zet de te gebruiken waardes weer op nul, anders worden de waardes gebruikt voor accounts die geen homeDirectory hebben.
currentHomeDir = ""
currentHomeDrive = ""
currentUserName = ""
Set objUser = GetObject(objRecordset.Fields("adspath"))
currentHomeDir = objUser.Get("homeDirectory")
currentHomeDrive = objuser.Get("homeDrive")
currentUserName = objUser.Get("name")
if currentHomeDrive = "J:" and left(currentHomeDir, 8) = "\\" & OriginalHomeDirServer then
'WScript.echo "Gebruiker " & currentUserName & " heeft de gewenste homedir in " & currentHomeDir
changehomedirlogtxt.WriteLine(currentUserName & " " & currentHomeDir)
objUser.Put "homeDirectory", "\\" & UitwijkHomeDirServer & "\Home\" & currentUserName
objUser.SetInfo
end if
objRecordset.MoveNext
Loop

changehomedirlogtxt.Close()

objConnection.Close

MsgBox("Klaar. Alle HomeDirectories zouden nu moeten verwijzen naar de " & UitwijkHomeDirServer)

Set objShell = Nothing
Set objFso = Nothing

SCRIPT: Create a folder in every homedirectory

Last week i needed to create a folder in the home directory of every user. I used a simple batch script to accomplish this:
@echo off
REM
H:
for /F "usebackq delims==" %%i in (`dir *.* /B`) DO md "H:\%%i\favorites

SCRIPT: Change Provider Order Windows XP

For my unattended XP installation i was searching for a script which could easily change the provider order. My cutomers use the Novell client a lot, but i want the Microsoft Client to be used first. Here’s the great script created by Anders Olsson, Kentor Teknik AB. Thanx for the great work man!!


' ChangeProviderOrder.vbs, by Anders Olsson, Kentor Teknik AB, 2006-10-31
'
' Reads the "Network provider order" from the registry and reorders it putting
' the "Microsoft Windows Networking" provider on top.
'
' Example: Before - "NCredMgr,NetwareWorkstation,RDPNP,LanmanWorkstation,WebClient"
' would become "LanmanWorkstation,NCredMgr,NetwareWorkstation,RDPNP,WebClient" after
' running this script.
'
Set WshShell = WScript.CreateObject("WScript.Shell")

' Read the reg value of the providers
strKey = WshShell.RegRead("HKLM\SYSTEM\CurrentControlSet\Control\NetworkProvider\Order\ProviderOrder")

' Split the strings up using comma (ASCII #44) as the delimiter
arrProvs = Split(strKey, chr(44), -1, 1)

' If LanmanWorkstation is already first, we don't have to do anything
If arrProvs(0) = "LanmanWorkstation" Then
Wscript.Quit(0)
end if

' "LanmanWorkstation" should always start the string
strNewProvs = "LanmanWorkstation"

' Loop through the old provider strings, and add them to the new string. Don't
' write LanmanWorkstation, since it's already written at the start of the string.
For Each strProv In arrProvs
Select Case strProv
Case "LanmanWorkstation"
Case Else strNewProvs = strNewProvs & "," & strProv
End Select
Next

' Write the new string back to the registry
WshShell.RegWrite "HKLM\SYSTEM\CurrentControlSet\Control\NetworkProvider\Order\ProviderOrder", strNewProvs, "REG_SZ"

SCRIPT: Share and unshare printers automatically

Share local printers:

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer Where Network = FALSE")

i = 1

For Each objPrinter in colInstalledPrinters
objPrinter.Shared = TRUE
objPrinter.ShareName = objPrinter.Name
objPrinter.Put_
i = i + 1
Next

Unshare local printers:

strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")

Set colInstalledPrinters = objWMIService.ExecQuery _
("Select * from Win32_Printer Where Network = FALSE")

i = 1

For Each objPrinter in colInstalledPrinters
objPrinter.Shared = FALSE
objPrinter.ShareName = objPrinter.Name
objPrinter.Put_
i = i + 1
Next

SCRIPT: Exclude files and directories read from a single file using Robocopy

Use this script and 2 textfiles which can be used to exclude files and folders.

robocopy.vbs
EXCLUDEDIRS = "C:\robocopy\excludedirs.txt"
EXCLUDEFILES = "C:\robocopy\excludefiles.txt"
ROBOCOPYLOCATION = "C:\robocopy\robocopy.exe"
SOURCELOCATION = "Y:\"
TARGETLOCATION = "D:\"
Const FOR_READING = 1
Set WshShell = WScript.CreateObject("WScript.Shell")
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objFile = objFSO.OpenTextFile(EXCLUDEDIRS, FOR_READING)
strDirExclude = objFile.ReadAll
objFile.Close
Set objFile = objFSO.OpenTextFile(EXCLUDEFILES, FOR_READING)
strFileExclude = objFile.ReadAll
objFile.Close
arrDirExclude = Split(strDirExclude, vbCrLf)
arrFileExclude = Split(strFileExclude, vbCrLf)
For Each dir In arrDirExclude
dirs = dirs + " /xd " + chr(34) + dir + chr(34)
Next
For Each bestand In arrFileExclude
bestanden = bestanden + " /xf " + chr(34) + bestand + chr(34)
Next
mycommand = ROBOCOPYLOCATION & chr(32) & SOURCELOCATION & chr(32) & TARGETLOCATION & " /COPYALL /S /mir /R:5 /W:10 /IPG:10 /TBD /ETA /LOG+:C:\ictivity\robo.log /TEE " & dirs & bestanden
WshShell.Run(mycommand)

Excludedirs.txt
y:\Program Files
y:\Profiles
y:\TSprofiles

Excludefiles.txt
y:\Application Partitions.vsd
y:\Domains.vsd
y:\Groups.csv
y:\AD\TEST\pagefile.sys

SCRIPT: Delete network printer

Use this script to delete a network printer:

Option Explicit
Dim objNetwork, strUNCPrinter
strUNCPrinter = "\\server\mprinter"

Set objNetwork = CreateObject("WScript.Network")
objNetwork.RemovePrinterConnection strUNCPrinter

Wscript.Quit

SCRIPT: Install Networkprinter and make it default

Use this VB script to install a network printer and make it default:

Set objNetwork = CreateObject("WScript.Network")
objNetwork.AddWindowsPrinterConnection "\\server\printer"

Dim objPrinter
Set objPrinter = CreateObject("WScript.Network")
objPrinter.SetDefaultPrinter "\\server\printer"

Follow

Get every new post delivered to your Inbox.