winutil
packageThis package is not in the latest version of its module.
Details
Validgo.mod file
The Go module system was introduced in Go 1.11 and is the official dependency management solution for Go.
Redistributable license
Redistributable licenses place minimal restrictions on how software can be used, modified, and redistributed.
Tagged version
Modules with tagged versions give importers more predictable builds.
Stable version
When a project reaches major version v1 it is considered stable.
- Learn more about best practices
Repository
Links
Documentation¶
Overview¶
Package winutil contains misc Windows/Win32 helper functions.
Index¶
- Constants
- Variables
- func GetPolicyInteger(name string) (uint64, error)
- func GetPolicyString(name string) (string, error)
- func GetPolicyStringArray(name string) ([]string, error)
- func GetRegInteger(name string) (uint64, error)
- func GetRegString(name string) (string, error)
- func IsCurrentProcessElevated() bool
- func IsSIDValidPrincipal(uid string) bool
- func LookupPseudoUser(uid string) (*user.User, error)
- func RegisterForRestart(opts RegisterForRestartOpts) error
- type RegisterForRestartOpts
Constants¶
const (// RegBase is the registry path inside HKEY_LOCAL_MACHINE where registry settings// are stored. This constant is a non-empty string only when GOOS=windows.RegBase = regBase// RegPolicyBase is the registry path inside HKEY_LOCAL_MACHINE where registry// policies are stored. This constant is a non-empty string only when// GOOS=windows.RegPolicyBase = regPolicyBase)
Variables¶
var ErrNoValue =errors.New("no value because registry is unavailable on this OS")Functions¶
funcGetPolicyInteger¶added inv1.22.0
GetPolicyInteger looks up a registry value in the local machine's path forsystem policies, or returns 0 and the associated error.Use this function to read values that may be set by sysadmins via the MSIinstaller or via GPO. For registry settings that you do *not* want to bevisible to sysadmin tools, use GetRegInteger instead.
This function will only work on GOOS=windows. Trying to run it on any otherOS will always return 0 and ErrNoValue.If value does not exist or another error happens, returns 0 and error.
funcGetPolicyString¶added inv1.22.0
GetPolicyString looks up a registry value in the local machine's path forsystem policies, or returns empty string and the error.Use this function to read values that may be set by sysadmins via the MSIinstaller or via GPO. For registry settings that you do *not* want to bevisible to sysadmin tools, use GetRegString instead.
This function will only work on GOOS=windows. Trying to run it on any otherOS will always return an empty string and ErrNoValue.If value does not exist or another error happens, returns empty string and error.
funcGetPolicyStringArray¶added inv1.66.0
funcGetRegInteger¶added inv1.16.0
GetRegInteger looks up a registry path in the local machine path, or returns0 and the error.
This function will only work on GOOS=windows. Trying to run it on any otherOS will always return 0 and ErrNoValue.If value does not exist or another error happens, returns 0 and error.
funcGetRegString¶
GetRegString looks up a registry path in the local machine path, or returnsan empty string and error.
This function will only work on GOOS=windows. Trying to run it on any otherOS will always return an empty string and ErrNoValue.If value does not exist or another error happens, returns empty string and error.
funcIsCurrentProcessElevated¶added inv1.36.0
func IsCurrentProcessElevated()bool
funcIsSIDValidPrincipal¶added inv1.22.0
IsSIDValidPrincipal determines whether the SID contained in uid represents atype that is a valid security principal under Windows. This check helps uswork around a bug in the standard library's Windows implementation ofLookupId in os/user.Seehttps://github.com/tailscale/tailscale/issues/869
This function will only work on GOOS=windows. Trying to run it on any otherOS will always return false.
funcLookupPseudoUser¶added inv1.34.0
LookupPseudoUser attempts to resolve the user specified by uid by checkingagainst well-known pseudo-users on Windows. This is a temporary workarounduntilhttps://github.com/golang/go/issues/49509 is resolved and shipped.
This function will only work on GOOS=windows. Trying to run it on any otherOS will always return an error.
funcRegisterForRestart¶added inv1.50.0
func RegisterForRestart(optsRegisterForRestartOpts)error
RegisterForRestart registers the current process' restart preferences withthe Windows Restart Manager. This enables the OS to intelligently restartthe calling executable as requested via opts. This should be called by anyprograms which need to be restarted by the installer post-update.
This function may be called multiple times; the opts from the most recentcall will override those from any previous invocations.
This function will only work on GOOS=windows. Trying to run it on any otherOS will always return nil.
Types¶
typeRegisterForRestartOpts¶added inv1.50.0
type RegisterForRestartOpts struct {RestartOnCrashbool// When true, this program will be restarted after a crash.RestartOnHangbool// When true, this program will be restarted after a hang.RestartOnUpgradebool// When true, this program will be restarted after an upgrade.RestartOnRebootbool// When true, this program will be restarted after a reboot.UseCmdLineArgsbool// When true, CmdLineArgs will be used as the program's arguments upon restart. Otherwise no arguments will be provided.CmdLineArgs []string// When UseCmdLineArgs == true, contains the command line arguments, excluding the executable name itself. If nil or empty, the arguments from the current process will be re-used.}RegisterForRestartOpts supplies options to RegisterForRestart.
Directories¶
| Path | Synopsis |
|---|---|
Package conpty implements support for Windows pseudo-consoles. | Package conpty implements support for Windows pseudo-consoles. |
Package policy contains higher-level abstractions for accessing Windows enterprise policies. | Package policy contains higher-level abstractions for accessing Windows enterprise policies. |