ネットワーク上に一部のPCしか表示されない [VBScript]

ネットワーク上に一部のPCしか表示されない事象が、度々発生し困っていた。どうも、Windows10のマスターブラウザの不具合らしい。

こちらのサイトを参考にさせていただきました。
https://amksystem.com/tech/win10info/

Windows10のみマスターブラウザにならないようにレジストリを変更するスクリプトを書いたのでメモしておきます。

On Error Resume Next
Dim WMI, OS, Value, Shell

do while WScript.Arguments.Count = 0 and WScript.Version >= 5.7
    '##### WScript5.7 または Vista 以上かをチェック
    Set WMI = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\.\root\cimv2")
    Set OS = WMI.ExecQuery("SELECT *FROM Win32_OperatingSystem")
    For Each Value in OS
    if left(Value.Version, 3) < 6.0 then exit do
    Next

    '##### 管理者権限で実行
    Set Shell = CreateObject("Shell.Application")
    Shell.ShellExecute "wscript.exe", """" & WScript.ScriptFullName & """ uac", "", "runas"

    WScript.Quit
loop


Dim objWshShell, str
Set objWshShell = WScript.CreateObject("WScript.Shell")


if  GetOSVersion() <> 10  then


  '◆on
  'msgbox "on"
  str = objWshShell.RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Browser\Parameters\MaintainServerList")
  if str <> "Auto" then
    objWshShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Browser\Parameters\MaintainServerList", "Auto", "REG_SZ"
  end if

  str = objWshShell.RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Browser\Parameters\IsDomainMaster")
  if str <> "TRUE" then
    objWshShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Browser\Parameters\IsDomainMaster", "TRUE", "REG_SZ"
  end if

else

  '◆off
  'msgbox "off"
  str = objWshShell.RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Browser\Parameters\MaintainServerList")
  if str <> "No" then
    objWshShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Browser\Parameters\MaintainServerList", "No", "REG_SZ"
  end if

  str = objWshShell.RegRead("HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Browser\Parameters\IsDomainMaster")
  if str <> "FALSE" then
    objWshShell.RegWrite "HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Browser\Parameters\IsDomainMaster", "FALSE", "REG_SZ"
  end if

end if


Function GetOSVersion()

	Dim strComputer
	Dim Wmi 
	Dim colTarget 
	Dim strWork 
	Dim objRow
	Dim aData

	strComputer = "."
	Set Wmi = GetObject("winmgmts:" _
	    & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2")
	
	Set colTarget = Wmi.ExecQuery( "select Version from Win32_OperatingSystem" )
	For Each objRow in colTarget
		strWork = objRow.Version
	Next

	aData = Split( strWork, "." )
	strWork = aData(0) & "." & aData(1)

	GetOSVersion = CDbl( strWork )

End Function


コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です