function OnInit(initData) { initData.name = "Network Server Column"; initData.version = "1.0"; initData.copyright = "(c) 2020 Leo Davidson"; initData.url = "https://resource.dopus.com/t/grouping-by-server-name-or-ip-in-my-computer/35265"; initData.desc = "A network server column you can group by in This PC."; initData.default_enable = true; initData.min_version = "12.0"; var col = initData.AddColumn(); col.name = "NetworkServer"; col.method = "OnNetworkServer"; col.label = "Network Server"; col.justify = "left"; col.autogroup = true; } function OnNetworkServer(scriptColData) { var item = scriptColData.item; if (!item.is_dir) return; // Ignore files. var path = item.path; if (path.test_parent || path.drive == 0) return; // Ignore anything that isn't a drive letter root. var pathString = path + ""; // Convert to string. if (pathString.slice(-1) != "\\") return; // Expected a backslash to be removed. pathString = pathString.slice(0,-1).toUpperCase(); var network = new ActiveXObject("WScript.Network"); var drives = network.EnumNetworkDrives(); for(var i = 0; i < drives.Count(); i += 2) { // drives(n) is the drive letter like "X:", or blank if there isn't one. // drives(n+1) is the UNC path like "\\Server\Share". if (drives(i) != "" && drives(i).toUpperCase() == pathString) { var parts = drives(i+1).split("\\"); if (parts.length > 3 && parts[0] == "" && parts[1] == "") { scriptColData.value = parts[2]; } return; } } }