Go Premium for a chance to win a PS4. Enter to Win

x
  • Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 1249
  • Last Modified:

Windows 7 Printer Installation Script

Currently running the following script to add network printers shared on a Windows 2003 DC to Windows 7 Pro x64 workstations:

Set objNetwork = CreateObject("WScript.Network")

        objNetwork.AddWindowsPrinterConnection "\\server\printer1"
        objNetwork.AddWindowsPrinterConnection "\\server\printer2"
        objNetwork.AddWindowsPrinterConnection "\\server\printer3"

There is a bug where the script causes the screen to go black on the Win7 workstations when running, sometimes.  It eventually shows the desktop and the printers have installed, but it can take 2-10 minutes.  I know there is code to say "if printer exists, don't try and add it again".  That's what I think I need to avoid this issue each time the workstations login a simple if-then statement for the printer installation code above.  If I remove the script from the GPO the black screens stop appearing.
0
sc456a
Asked:
sc456a
  • 2
  • 2
1 Solution
 
TimAllanCommented:
It sounds like it's trying to find the path to your print server, which it is, but it's taking its time.
Just as a test, try using the full path to the print server

eg.
\\server.mydomain.com\printer1

instead of using the IP address or the just the server name
0
 
spinzr0Commented:
For windows vista, I used to have an issue with permissions causing random delays and errors.  I wrote this function to get passed it.
Sub SetPrinterPermissionsSettings()
    On Error Resume Next

    Const ADS_RIGHT_GENERIC_ALL       = &h10000000
    Const ADS_ACETYPE_ACCESS_ALLOWED  = 0
    Const  ADS_PATH_REGISTRY          = 3
    Const  ADS_SD_FORMAT_IID          = 1

    Set oWShell = CreateObject("Wscript.Shell")
    oWShell.RegWrite "HKCU\Printers\LegacyPointAndPrint\DisableLegacyPointAndPrintAdminSecurityWarning", 1, "REG_DWORD"
    Set oWShell = Nothing

    sRegKey = "HKCU\Printers\LegacyPointAndPrint"
    
    Set dacl = createobject("AccessControlList")
    Set sd = createobject("SecurityDescriptor")
    Set newAce1 = CreateObject("AccessControlEntry")
    Set newAce2 = CreateObject("AccessControlEntry")
    Set ace = CreateObject("AccessControlEntry")
    Set sdutil = createobject("ADsSecurityUtility")

    Set sd = sdUtil.GetSecurityDescriptor (sRegKey, ADS_PATH_REGISTRY, ADS_SD_FORMAT_IID)
    Set dacl = sd.DiscretionaryAcl

    For Each ace in dAcl
        dacl.RemoveAce ace
    Next
    newAce1.Trustee = "NT AUTHORITY\SYSTEM"
    newAce1.AccessMask = ADS_RIGHT_GENERIC_ALL

    newAce1.AceType = ADS_ACETYPE_ACCESS_ALLOWED
    dacl.AddAce newAce1

    newAce2.Trustee = "Administrators"
    newAce2.AccessMask = ADS_RIGHT_GENERIC_ALL

    newAce2.AceType = ADS_ACETYPE_ACCESS_ALLOWED
    dacl.AddAce newAce2
    sdutil.SetSecurityDescriptor sRegKey, ADS_PATH_REGISTRY, sd, ADS_SD_FORMAT_IID

    Set dacl = Nothing
    Set sd = Nothing
    Set newAce1 = Nothing
    Set newAce2 = Nothing
    Set ace = Nothing
    Set sdutil = Nothing
End Sub

Open in new window

0
 
sc456aAuthor Commented:
Tim: It's not a path or DNS issue, the workstations can pull it up immediately if you type that into Explorer.  It's probably a driver issue related to x64 being on the workstations and x64 printer drivers being wonky on some of the printers, but it will install after a long delay.

spinzr0: I have no idea what that script does - some I'm askeered to try it. :)  Can you break it down for me?
0
 
spinzr0Commented:
Yes.  There is a security warning set off witha printer where the driver is being downloaded from the printer server.  This bypasses that security warning.
0
 
sc456aAuthor Commented:
You were right about the warnings being the cause, although I didn't try your script - it was faster to just run the VBS manually on each machine.  I'll be sure to test your script in future installations.
0

Featured Post

Technology Partners: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

  • 2
  • 2
Tackle projects and never again get stuck behind a technical roadblock.
Join Now