Windows Script Host Error


Recommended Posts

Lately more and more issues have been occuring on various clients involving the Windows Script host. Users are issued a script that applies when they first login. This script handles the mapping of 6 or so mapped drives. Unfortunately, lately more and more computers have been having issues applying this script, when someone logs off and then at some point someone logs in (Doesn't matter how long they wait).

This issue doesn't occur on the first boot / first login of the machine... but will always occur thereafter. It doesn't seem to occur quite on every machine, but it happens on more and more now.

script.jpg

Being for a police department, this issue is becomming more critical, due to the amount of users logging in and out of the machines... and if the drives don't get mapped, they lose crucial access to their reports and other files.

Can someone please help me figure out a resolution to this problem?

Link to comment
https://www.neowin.net/forum/topic/506959-windows-script-host-error/
Share on other sites

Sure!!!

(1)

(2) Dim objNet

(3)

(4) Set objNet = CreateObject("Wscript.Network")

(5)

(6) objNet.MapNetworkDrive "H:", "\\********\HOME"

objNet.MapNetworkDrive "I:", "\\********\Apps"

objNet.MapNetworkDrive "Q:", "\\********\formdata"

objNet.MapNetworkDrive "S:", "\\********\schedulesoft"

objNet.MapNetworkDrive "T:", "\\********\Traffic"

objNet.MapNetworkDrive "W:", "\\********\idphoto"

Edited by Punkrulz

Which is line 6? is it objNet.MapNetworkDrive "I:", "\\********\Apps"? Do machines that are having this problem always choke at line 6? there might be something wrong with that server/share

  primortal said:

Which is line 6? is it objNet.MapNetworkDrive "I:", "\\********\Apps"? Do machines that are having this problem always choke at line 6? there might be something wrong with that server/share

I've added the line numbers in the script so that you can see where line 6 is. Line 6 is the first line that begins the mapping of the drives. I don't believe that there is a problem with the server, I believe this problem lies wiht one users settings not leaving when the user logs off, then someone else logs in and it negates itself. They always do choke at line 6, but again that's where the drives are beginning the mapping. The share itself is working correctly.

Are these servers all in the same domain? Are the users all logging into the same domain? Are they on the same subnet? What are you using for netbios name resolution? Wins or broadcast?

On a machine that you get the error on - what is the output of just doing a net view \\servername after the script failed?

Are the drives already mapped? To somewhere else? When the script is trying to run? If so so you could check for this, and or just do a simple remove and then add, etc..

Once the user has logged in - what drives are listed?

net use

If you add "On Error Resume Next" does it die on the next line?

  BudMan said:

Are these servers all in the same domain? Are the users all logging into the same domain? Are they on the same subnet? What are you using for netbios name resolution? Wins or broadcast?

1) The mapped drives are really all pointing to just the 1 server, but in any case yes it's all going to the same domain.

2) Yes, again they're on the same subnet.

3) While we do have WINS Enabled, I think initially it is Broadcast until I manually add the WINS information to the adapter... I have not found an automatic way to do this so I don't have to go to all machines to add WINS information.

  Quote
On a machine that you get the error on - what is the output of just doing a net view \\servername after the script failed?

I'm relatively certain that when you do the net use command it says "No Network Provider Accepted the Given Network Path"

  Quote
Are the drives already mapped? To somewhere else? When the script is trying to run? If so so you could check for this, and or just do a simple remove and then add, etc..

Technically you can say they are mapped. User logs in. Does what he needs to do. User logs off. A second user logs in, and error message occurs. Almost as if, "Hey, user logged off but the drives are still mapped... user 2 logs in, error appears, then the mapped drives disappear.

  Quote
Once the user has logged in - what drives are listed?

net use

After the error occurs, only the local drives appear... no mapped drives appear as they should be.

  Quote
If you add "On Error Resume Next" does it die on the next line?

Ok, I don't know scripting at all... where do I put this line???

Thanks for your help!

What you probably need is a "cleanup" type script. If you are assigning drives at logon, you should remove them at logoff to prevent errors.

Set net = WScript.CreateObject("Wscript.Network")
net.RemoveNetworkDrive "DRIVE LETTER:"
WSCript.Quit

I'd at least try it and see what happens. :cool:

This is the code I use.

' ########################################################################
'  Written in VBScript.
'  Establishes map drives.
'  Assign to OU Group Policy under USER CONFIG, WINDOWS SETTINGS, SCRIPTS, LOGON SCRIPT.
'
'  This script will: 
'  (1) check if the drive is already connected and, if so, disconnect it.
'  (2) map the drive.
'
'  Arguments are as follows: 
'	 MAPIT  DRIVE-LETTER as string,  PATH as string, USER as string, PASSWORD as string
'	 (1) Do not specify colon in drive letter.
'	 (2) Do not end path with a forward slash.
'	 (3) If user and password are not required to establish map, then specify a zero-length string as follows:  ""
'
' Reference Microsoft info at:
' http://msdn.microsoft.com/library/default.asp?url=/library/en-us/script56/html/wsmthmapnetworkdrive.asp
' ########################################################################

' Create the Shell or environment for the commands:
Set WshShell = WScript.CreateObject("WScript.Shell")
' Define objects:
Set WshNetwork = WScript.CreateObject("WScript.Network")
Set oDrives = WshNetwork.EnumNetworkDrives()

' ====================================
' DEFINE WHO TO CONTACT for pop-up messages:
' ====================================
strContactMessage = "If you require assistance, please contact IT Support."

' ==================
' DEFINE DRIVES TO MAP:
' ==================
Mapit "m", "\\server\share", "", ""

' ========
' CLEAN UP:
' ========
Set WshShell = Nothing
Set WshNetwork = Nothing
Set oDrives = Nothing

' ##################################
' DO NOT MODIFY ANYTHING BELOW THIS POINT...
'   unless you are familiar with the proper settings.
' ##################################
Sub Mapit(strLetter, strPath, strUser, strPass)

	' Define the DriveLetter:
	DriveLetter = strLetter & ":"

	' Define the remote path:
	RemotePath = strPath

	' Pop-up Notices (set to False to disable notices, otherwise set to True):
	bPopReminder = True

	' Define known errors to trap:
	Dim arrErrCode(1)
	Dim arrErrDesc(1)
	arrErrCode(0) = -2147023694
	arrErrCode(1) = -2147024811
	arrErrDesc(0) = "Unable to map drive " & DriveLetter & " to " & RemotePath _
		& " due to a previously defined remembered map with the same letter." _
		& vbCrLf & vbCrLf & "Please MANUALLY disconnect map drive " & DriveLetter _
		& ", then Log Out and Log back in."
	arrErrDesc(1) = "Unable to map drive " & DriveLetter & " to " & RemotePath _
		& " since " & DriveLetter & ": was previously reserved by your computer." _
		& vbCrLf & vbCrLf & "(Refer to Management, Shared Folders, Shares)"

	' Define whether the map information should be removed from the current user's profile:
	bForceRemoveFromProfile = True
	bRemoveFromProfile = True

	' Define whether the map information should be stored in the current user's profile:
	bStoreInProfile = False

	' Check if already connected:
	AlreadyConnected = False
	For i = 0 To oDrives.Count - 1 Step 2
		If LCase(oDrives.Item(i)) = LCase(DriveLetter) Then AlreadyConnected = True
	Next

	' Attempt to map the drive.  If already mapped, first attempt disconnect:
	If AlreadyConnected = True then
		WshNetwork.RemoveNetworkDrive DriveLetter, bForceRemoveFromProfile, bRemoveFromProfile
		If Not strUser = "" Then
			WshNetwork.MapNetworkDrive DriveLetter, RemotePath, bStoreInProfile, strUser, strPass
		Else
			WshNetwork.MapNetworkDrive DriveLetter, RemotePath, bStoreInProfile
		End If
'		If bPopReminder Then WshShell.PopUp "Drive " & DriveLetter & " disconnected, then connected successfully to " & RemotePath
	Else
		On Error Resume Next
		If Not strUser = "" Then
			WshNetwork.MapNetworkDrive DriveLetter, RemotePath, bStoreInProfile, strUser, strPass 
		Else
			WshNetwork.MapNetworkDrive DriveLetter, RemotePath, bStoreInProfile
		End If
		If Err.Number <> 0 Then
			bKnownError = False
			For I = LBound(arrErrCode) To UBound(arrErrCode)
				If Err.Number = arrErrCode(I) Then
					bKnownError = True
					strPopMessage = arrErrDesc(I)
					' Display the Disconnect Network Drives window:
					If Err.Number = arrErrCode(0) Then
						Set objWSH = Wscript.CreateObject("WScript.Shell")
						objWSH.Run "rundll32.exe shell32.dll,SHHelpShortcuts_RunDLL Disconnect", 1, true
					End If
					Exit For
				End If
			Next
			If Not bKnownError Then
				strPopMessage = "Unable to map drive " & DriveLetter & " to " & RemotePath _
					& " due to reason stated below."
			End If
			' Display warning message:
			strPopMessage = "WARNING!!   WARNING!!   WARNING!!   WARNING!!" _
				& vbCrLf & vbCrLf & strPopMessage _
				& vbCrLf & vbCrLf & Err.Description & " (error " & Err.Number & ")" _
				& vbCrLf & vbCrLf & strContactMessage
			WshShell.PopUp strPopMessage
		Else
'			If bPopReminder Then WshShell.PopUp "Drive " & DriveLetter & " connected successfully to " & RemotePath
		End If
	End If

mDrive = "M:\"
Set oShell = CreateObject("Shell.Application")
oShell.NameSpace(mDrive).Self.Name = "Share 123"

	' Release resources:
	Set objWSH = Nothing

	' Slight pause to ensure each pass has time to commit:
	wscript.sleep 200
End Sub

Dieterich: Where would I put this information? Would this be at the bottom of the logon script I already have? I'm sorry, I'm not familiar with scripting at all...

MazX: Same thing, I am not familiar with scripting. Is the only thing I Need to change is near the top where you have the mapped drives? At least in your script, it's just M... Is that the only thing that I modify? I see at the top it states that this goes as a group policy for the users. Can this script also be applied as a script specified to be processed under the Active Directory Users & Computers under the profile tab?

Change here:

  Quote
' ==================

' DEFINE DRIVES TO MAP:

' ==================

Mapit "m", "\\server\share", "", ""

This says what drive letter to use and the path to the share.

And here:

  Quote
mDrive = "M:\"

Set oShell = CreateObject("Shell.Application")

oShell.NameSpace(mDrive).Self.Name = "Share 123"

This says that drive M should be called "Share 123" rather than "Share 123 on Server"

You save the code into a text file. Then rename that file map_drvs.vbs

In AD U&C you select the OU that you want this script to apply to. Create a GPO that applies to that OU.

In the GPO you set the Logon script (in User Config) to use the map_drvs.vbs

When users are placed in this OU the script will be run at login.

When a user is removed from the OU, the script no longer applies and the drive is not mapped.

When the user logs on and is not connected to the network, the script will not run and the drive is not mapped.

  MazX_Napalm said:

Change here:

This says what drive letter to use and the path to the share.

And here:

This says that drive M should be called "Share 123" rather than "Share 123 on Server"

You save the code into a text file. Then rename that file map_drvs.vbs

In AD U&C you select the OU that you want this script to apply to. Create a GPO that applies to that OU.

In the GPO you set the Logon script (in User Config) to use the map_drvs.vbs

When users are placed in this OU the script will be run at login.

When a user is removed from the OU, the script no longer applies and the drive is not mapped.

When the user logs on and is not connected to the network, the script will not run and the drive is not mapped.

For that second part I have to edit, how would that look like? I'm thinking by your example, it would have to look like this:

Line 1: Drive A

Line 1:

Line 1:

Line 2: Drive B

Line 2:

Line 2:

Line 3: Drive C

Line 3:

Line 3:

Is that correct?

And also, the reason I ask where it can be applied is because right now every single user that logs in has the logon script applying to it inside of the profile options in ADUC... no GPO is applying that. Can't I just modify the existing logon.vbs so I don't have to go to every user and remove the logon script? It's only modifying their drives anyways.

  Quote
' ==================

' DEFINE DRIVES TO MAP:

' ==================

Mapit "f", "\\server\share1", "", ""

Mapit "g", "\\server\share2", "", ""

Mapit "h", "\\server\share3", "", ""

  Quote
mDrive = "f:\"

Set oShell = CreateObject("Shell.Application")

oShell.NameSpace(mDrive).Self.Name = "Music"

mDrive = "g:\"

Set oShell = CreateObject("Shell.Application")

oShell.NameSpace(mDrive).Self.Name = "Files"

mDrive = "h:\"

Set oShell = CreateObject("Shell.Application")

oShell.NameSpace(mDrive).Self.Name = "Apps"

You can. It would be better to use GPO's though.

Alright, getting some other strange occurances here!

Well, I have a test account that is in it's own OU. This account NO LONGER has the original logon script that was defined in Active Directory being applied to it. I setup MazX's script successfully as a GPO, and applied it to the same Test OU that my test account is apart of. When I login to a machine remotely (which is the machine I use at the office), everything seems to work fine, except 1 thing: I had set the GPO to show what commands were being processed from the login script... I take it the script is made so that it won't show it regardless?

Well I had someone login to the test account on one of the problematic machines that always got the Script host error... and sure enough, the error occured again. But how?!?! It is the same exact error I have above, but logon.vbs is not being utilized! It isn't setup in the profile at all, so how would it be getting the error?

Now I'm out of ideas. :(

This topic is now closed to further replies.
  • Recently Browsing   0 members

    • No registered users viewing this page.
  • Posts

    • I did not spot that! "This article was generated with some help from AI and reviewed by an editor", to me, suggests it was indeed entirely generated by AI and just looked over by Sayan. Bond. Mate 😔
    • Good. They shouldn't be allowed to block this stuff anyway. They're getting paid to host your app to begin with, they get a cut of the sale of the app to start. After the app leaves their servers and is on your device, the dev should be free to offer you alternative options for payments or links to their site directly from within their own app. Since these systems don't use any of Apples services at all, there should also be zero reason they should demand a cut for doing nothing like they're some digital mafia.
    • I suspect this was primarily developed with the Switch 2 in mind, which would explain the poor visuals. It seems like they're hoping the nostalgic GoldenEye 64 crowd is still loyal to Nintendo consoles. Unfortunately, this might be yet another title limited by development for underpowered Nintendo hardware.
    • Amazon's Lab126 ventures into "Physical AI" with new robotics team by Paul Hill Amazon has announced that it’s forming a new agentic AI team within its secretive hard research and development division, Lab126, to begin work on physical AI. Specifically, the company is looking to develop an agentic AI framework for use in robotics, which could start to impact blue-collar jobs, especially at its warehouses. Agentic AI is one of the latest developments in AI, superseding the previous generative AI that took off with the launch of ChatGPT. Agentic AI models are special because they can complete multi-step actions for the user to complete complex tasks. Thanks to all the visual and audio capabilities added to generative AI in previous years, these agentic models can perceive their environment, reason, plan, and act to achieve goals with minimal human intervention. If Amazon can successfully bring agentic AI to robots, they will finally be able to interact with the real world in a way they can’t today, as software running on a computer. Many people are concerned about AI’s impact on white-collar jobs right now, but when Amazon develops physical AI, it will also affect blue-collar manual work. The work is going to be carried out by Amazon’s R&D company, Lab126. It was set up over 20 years ago and has created many iconic Amazon devices, including the Kindle, Fire tablets, Amazon Fire TV, Amazon Echo devices, and more. Who it affects, and how The biggest impact of physical AI developed by Lab126 will be on Amazon’s warehouses and logistics. The company said it wants to create robots that can perform tasks based on natural language instructions. As usual for a big tech company, Amazon claims that these robots will be assistants, but it’s difficult to see how they won’t reduce the need for people. Solely based on Amazon’s plans to automate work in its factories, customers will see an indirect impact from the move through faster deliveries and potentially lower costs. The decision by Amazon to focus on agentic AI in robots is pretty interesting because so far, we’ve mainly been hearing about agentic AI limited to computer applications, such as intelligent web browsers like Opera Neon. Why it's happening Amazon has a reputation for being an efficient company, particularly when it comes to the employment of warehouse workers who are known to have strict restroom breaks. Creating robots that can help speed up warehouse activities will further boost efficiency at the company and could potentially reduce its costs and improve safety. The beginning of work on physical AI is just the next evolution of AI that we could start to hear about in the coming months and years. As agentic AI gets better, companies will be looking to see what they can advance next and physical AI may be where they choose to go next; it certainly seems like this is what Amazon has settled on in this move. If Amazon’s physical AI doesn’t lead to mass layoffs of warehouse employees, it could drastically boost worker safety. Employees could potentially be less fatigued from moving around so much, which could lead to better concentration and fewer accidents. Right now, Amazon claims that these robots will only be assistants and not replacements. While Amazon will certainly be a leader in physical AI, given its massive wealth to throw at the problem, once the technology is available, it will likely be available for sale to other businesses to use, too. Caveats and what to watch for While it’s a notable development, it still sounds like Amazon is in the early stages of developing these physical AI systems, given that it has only just set up the team. We also don’t know what specific products Amazon is planning to build or the timelines for deployment. Ever since generative AI came onto the scene, there has been discussion of AI safety. With AI moving into the physical world, it will also bring up discussion about the safety concerns. Current measures are mainly concerned with AI software running on computers, not when it interacts physically with the world. Finally, and probably the biggest concern, what will these “assistants” do to people’s jobs? Companies will likely find themselves bringing in fewer new hires initially, but it could also displace people from their jobs. Source: CNBC
    • Nintendo Switch 2 launches, where to buy and a list of games that it may not support by Sayan Sen Nintendo announced the Switch 2 back in early April this year and then followed that up with more details related to performance and hardware features later. The company touted 10x the performance of the Switch. However, on the flip side, the battery suffers, and you also need new microSD Express cards for storage. For those who need a refresher, here are the technical specification details of the Switch 2: Specification Details Dimensions Approx. 166mm x 272mm x 13.9mm (with Joy-Con 2 attached); Maximum thickness from control stick tip to ZL/ZR buttons: 30.7mm Weight Approx. 401g (console only); Approx. 534g (with Joy-Con 2 controllers attached) Screen 7.9-inch capacitive touch LCD; 1920x1080 resolution; HDR10 support; VRR up to 120 Hz CPU/GPU Custom processor made by NVIDIA Storage 256 GB UFS (a portion reserved for system use) Communication Wireless LAN (Wi‑Fi 6), Bluetooth; Wired LAN available in TV mode via dock Video Output Up to 3840x2160 at 60 fps via HDMI in TV mode; Supports 120 fps at lower resolutions; HDR10 enabled Audio Output Linear PCM 5.1 channel via HDMI; Stereo speakers Microphone Built-in monaural microphone with noise cancellation, echo cancellation and auto gain control Buttons POWER and Volume buttons USB Ports 2 USB Type-C ports (bottom port for charging/dock connection; top port for accessories/charging) Audio Jack 3.5mm stereo mini plug (CTIA standard) Game Card Slot Supports both Nintendo Switch 2 and Nintendo Switch game cards Expansion Slot microSD Express card slot (compatible with cards up to 2 TB; other microSD cards can copy screenshots and videos) Sensors Accelerometer, gyroscope, brightness sensor Battery Lithium-ion, 5220 mAh; Approx. 2–6.5 hours lifetime; 3-hour charge time in sleep mode Dock Approx. 115mm x 201mm x 51.2mm; Weight: approx. 383g For those looking to get one, major retailers like Walmart, GameStop, Best Buy, and Target have all confirmed that they will have limited console stock from time to time so you will need to be on alert and check back. Nintendo has also published a full list of games that may not work on the Switch 2: Borderlands 3 Chrono Cross: The Radical Dreamers Edition Crash Bandicoot N-Sane Trilogy Guilty Gear XX Accent Core Plus R KarmaZoo Marvel vs. Capcom Fighting Collection: Arcade Classics Mortal Kombat 1 Overwatch 2 Star Wars: Knights of the Old Republic II: The Sith Lords Star Wars Republic Commando Super Mega Baseball 4 Tombi! Special Edition Tony Hawk's Pro Skater 1+2 Touhou Genso Wanderer Reloaded Ty the Tasmanian Tiger HD Warriors: Abyss However, keep in mind that Nintendo last updated the support list last month on May 27th and the company may still be testing these. So keep an eye on the official list of games on this webpage here on Nintendo's site. Have you managed to pick up the Nintendo Switch 2? Let us know in the comments.
  • Recent Achievements

    • Rookie
      GTRoberts went up a rank
      Rookie
    • First Post
      James courage Tabla earned a badge
      First Post
    • Reacting Well
      James courage Tabla earned a badge
      Reacting Well
    • Apprentice
      DarkShrunken went up a rank
      Apprentice
    • Dedicated
      CHUNWEI earned a badge
      Dedicated
  • Popular Contributors

    1. 1
      +primortal
      397
    2. 2
      +FloatingFatMan
      177
    3. 3
      snowy owl
      170
    4. 4
      ATLien_0
      167
    5. 5
      Xenon
      134
  • Tell a friend

    Love Neowin? Tell a friend!