in LinuxCommunicator/CredentialNativeMethods.cs [202:255]
internal static extern int NetUserAdd(
[MarshalAs(UnmanagedType.LPWStr)] string servername,
UInt32 level,
ref USER_INFO_1 userInfo,
out UInt32 parm_err);
[DllImport("Netapi32.dll", CharSet = CharSet.Unicode, ExactSpelling = true, SetLastError = true)]
internal extern static int NetUserGetInfo(
[MarshalAs(UnmanagedType.LPWStr)] string ServerName,
[MarshalAs(UnmanagedType.LPWStr)] string UserName,
int level,
out IntPtr BufPtr);
[DllImport("Netapi32.dll", CharSet = CharSet.Unicode, ExactSpelling = true, SetLastError = true)]
internal extern static int NetUserSetInfo(
[MarshalAs(UnmanagedType.LPWStr)] string ServerName,
[MarshalAs(UnmanagedType.LPWStr)] string UserName,
int level,
IntPtr BufPtr,
out UInt32 parm_err);
[DllImport("netapi32.dll", CharSet = CharSet.Unicode, CallingConvention = CallingConvention.StdCall,
SetLastError = true)]
internal static extern uint NetUserChangePassword(
[MarshalAs(UnmanagedType.LPWStr)] string domainname,
[MarshalAs(UnmanagedType.LPWStr)] string username,
IntPtr oldpassword,
IntPtr newpassword
);
[DllImport("Netapi32.dll", CharSet = CharSet.Unicode, SetLastError = true)]
internal extern static int NetUserDel(
[MarshalAs(UnmanagedType.LPWStr)]string servername,
[MarshalAs(UnmanagedType.LPWStr)] string username
);
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
internal struct USER_INFO_1
{
[MarshalAs(UnmanagedType.LPWStr)]
public string sUsername;
public IntPtr sPassword;
public uint uiPasswordAge;
public uint uiPriv;
[MarshalAs(UnmanagedType.LPWStr)]
public string sHome_Dir;
[MarshalAs(UnmanagedType.LPWStr)]
public string sComment;
public uint uiFlags;
[MarshalAs(UnmanagedType.LPWStr)]
public string sScript_Path;
}