Skip to content

Mount network drive like 'net use' and find file-servers and their shared folders

License

Notifications You must be signed in to change notification settings

nyaosorg/go-windows-netresource

Repository files navigation

go-windows-netresource

net use

// +build run

package main

import (
    "os"
    "os/exec"

    "github.com/nyaosorg/go-windows-netresource"
)

func main() {
    cancel, err := netresource.NetUse(`X:`, `\\localhost\C$`)
    if err != nil {
        println(err.Error())
        return
    }
    defer cancel(true, false)

    cmd := exec.Command("cmd.exe", "/c", "dir", `X:\`)
    cmd.Stdout = os.Stdout
    cmd.Stderr = os.Stderr
    cmd.Stdin = os.Stdin
    cmd.Run()
}

Find file servers and their shared folders

package main

import (
    "github.com/nyaosorg/go-windows-netresource"
)

func main() {
    machines := []string{}

    err := netresource.EnumFileServer(func(node *netresource.NetResource) bool {
        machines = append(machines, node.RemoteName())
        return true
    })
    if err != nil {
        println(err.Error())
    }

    for _, name := range machines {
        println("machine:", name)
        if fs, err := netresource.NewFileServer(name); err == nil {
            fs.Enum(func(node *netresource.NetResource) bool {
                println("  ", node.RemoteName())
                return true
            })
        }
    }

    if err != nil {
        println(err.Error())
    }
}

About

Mount network drive like 'net use' and find file-servers and their shared folders

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages