![]() |
![]() | ![]() | ![]() | ![]() | ![]() | ![]() | ![]() |
| Welcome to Windows Vista Forums. Our forum is dedicated to helping you find solutions with any problems, errors or issues you are experiencing with Windows Vista. The Vista forum also covers news and updates and has an extensive Windows Vista tutorial section that covers a wide range of tips and tricks. |
| |||||||
![]() |
| |
| | #1 (permalink) |
| | How to reduce WMI connection timeout? I have a script that uses WMI to modify registry keys on hundreds of domain machines (running XP pro). In a nutshell, here's what the script does: 1. Pings each machine, one at a time. 2. If a machine does not reply to the ping, the script skips to the next machine. 2. If a machine does reply to the ping, the script uses WMI to connect to the machine and modify a registry key. In a perfect world, the script would complete in a matter of seconds. However, sometimes the script cannot make a WMI connection to a machine even though the machine replied to the ping request. The line of code where it can hang is this: Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" _ & strComputer & "/root/default:StdRegProv") When this happens, the script hangs for a minute or two before finally timing out and proceeding to the next machine. The end result is that the script can take 10-20 minutes to complete, depeding on how many machines can't make the WMI connection at that time. Incidentally, I've noticed when a machine fails to allow WMI connections, it also doesn't allow remote connections using Services, Regedit, or Computer Management. A manual reboot fixes the problem, but it happens sort of randomly across our domain in an unpredictable way. So my question is this: How can I force the WMI connection attempt to timeout earlier - say after 5 seconds instead of 1-2 minutes? Or as an alternative, is there a way to modify registry keys remotely without using WMI? Thanks for any help out there... |
My System Specs![]() |
| | #2 (permalink) |
| | Re: How to reduce WMI connection timeout? D.P. Roberts wrote: Quote: >I have a script that uses WMI to modify registry keys on hundreds of domain >machines (running XP pro). In a nutshell, here's what the script does: > > 1. Pings each machine, one at a time. > 2. If a machine does not reply to the ping, the script skips to the next > machine. > 2. If a machine does reply to the ping, the script uses WMI to connect to > the machine and modify a registry key. > > In a perfect world, the script would complete in a matter of seconds. > However, sometimes the script cannot make a WMI connection to a machine > even though the machine replied to the ping request. The line of code > where it can hang is this: > > Set objReg = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" _ > & strComputer & "/root/default:StdRegProv") > > When this happens, the script hangs for a minute or two before finally > timing out and proceeding to the next machine. The end result is that the > script can take 10-20 minutes to complete, depeding on how many machines > can't make the WMI connection at that time. Incidentally, I've noticed > when a machine fails to allow WMI connections, it also doesn't allow > remote connections using Services, Regedit, or Computer Management. A > manual reboot fixes the problem, but it happens sort of randomly across > our domain in an unpredictable way. > > So my question is this: How can I force the WMI connection attempt to > timeout earlier - say after 5 seconds instead of 1-2 minutes? Or as an > alternative, is there a way to modify registry keys remotely without using > WMI? > > Thanks for any help out there... is no way to reduce the WMI connection timeout. Many people use a ping function and specify a short timeout. Al Dunbar has suggested using Net View to get a list of available computers. However, it appears this won't help you. In my experience the WMI connection fails (even if the computer responds to a ping) if the remote client does not have WMI installed (a Win9x client for example), or the OS version does not support the WMI class. In rare instances WMI is either not running or is corrupted. If nothing seems to connect to the remote computer something else is wrong, especially if a reboot of the remote computer fixes it. Can you verify that the WMI service is running before the reboot? I don't think it will help in your case (because a reboot fixes the problem), but documentation suggests it can help (with newer OS's) to specify authenticationLevel: Set objReg = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate,authenticationLevel=Pkt}!\\" _ & strComputer & "/root/default:StdRegProv") -- Richard Mueller MVP Directory Services Hilltop Lab - http://www.rlmueller.net -- |
My System Specs![]() |
| | #3 (permalink) |
| | Re: How to reduce WMI connection timeout? On Aug 6, 4:43*pm, "D.P. Roberts" <dprobe...@xxxxxx> wrote: Quote: > > So my question is this: How can I force the WMI connection attempt to > timeout earlier - say after 5 seconds instead of 1-2 minutes? Or as an > alternative, is there a way to modify registry keys remotely without using > WMI? > > Thanks for any help out there... Hi, You can use the following APIs to establish a connection to a predefined registry handle on another computer and backup the Windows registry: GetCurrentProcess() OpenProcessToken() TOKEN_ADJUST_PRIVILEGES LookupPrivilegeValue() SE_BACKUP_NAME AdjustTokenPrivileges() SE_PRIVILEGE_ENABLED RegConnectRegistry() RegEnumKeyEx() RegCreateKeyEx() RegSaveKeyEx() RegCloseKey() AdjustTokenPrivileges(hToken, TRUE, NULL, 0, NULL, NULL); CloseHandle() http://msdn2.microsoft.com/en-us/library/ms683179.aspx http://msdn2.microsoft.com/en-us/library/aa379295.aspx http://msdn2.microsoft.com/en-us/library/aa379180.aspx http://msdn2.microsoft.com/en-us/library/aa375202.aspx http://msdn2.microsoft.com/en-us/library/ms724840.aspx http://msdn2.microsoft.com/en-us/library/ms724862.aspx http://msdn2.microsoft.com/en-us/library/ms724844.aspx http://msdn2.microsoft.com/en-us/library/ms724919.aspx http://msdn2.microsoft.com/en-us/library/ms724837.aspx http://msdn2.microsoft.com/en-us/library/ms724211.aspx Kellie. |
My System Specs![]() |
![]() |
| Thread Tools | |
| |
Similar Threads | ||||
| Thread | Forum | |||
| reduce partition size | Vista General | |||
| Connection Timeout between Network Queries | VB Script | |||
| The timeout period elapsed prior to obtaining a connection from th | .NET General | |||
| REDUCE SIDEBAR | Vista General | |||
| Why can't I reduce $MaximumErrorCount to less than 256? | PowerShell | |||