@msdn=http://search.microsoft.com/search/results.aspx?qu=$$$ @pinvoke=http://pinvoke.net/$$$.htm Summary: Create a user profile directory structure in the profile's directory !!!!C# Signature: [DllImport("userenv.dll", SetLastError = true, CharSet = CharSet.Auto)] static extern int CreateProfile( [MarshalAs(UnmanagedType.LPWStr)] String pszUserSid, [MarshalAs(UnmanagedType.LPWStr)] String pszUserName, [Out, MarshalAs(UnmanagedType.LPWStr)] System.Text.StringBuilder pszProfilePath, uint cchProfilePath); !!!!VB Signature: !!!!User-Defined Types: None. !!!!Alternative Managed API: Do you know one? Please contribute it! !!!!Notes: None. !!!!Tips & Tricks: pszProfilePath's capacity must not exceed 260 characters or CreateProfile will return error code 0x800706f7. !!!!Sample Code: using (System.Security.Principal.WindowsIdentity i = new System.Security.Principal.WindowsIdentity(token)) { System.Text.StringBuilder s= new System.Text.StringBuilder(260); uint c= Convert.ToUInt32(s.Capacity); int hResult = CreateProfile(i.Owner.Value, username, s, c); } Documentation: http://msdn.microsoft.com/en-us/library/windows/desktop/bb762271%28v=vs.85%29.aspx on MSDN !!!!Sample PowerShell Code: # Attempts to create a profile for the current logged on user. Obviously, this will not work and it generates a return code # of -2147024809. $TypeDefinition=@" [DllImport("userenv.dll", SetLastError = true, CharSet = CharSet.Auto)] public static extern int CreateProfile([MarshalAs(UnmanagedType.LPWStr)] String pszUserSid, [MarshalAs(UnmanagedType.LPWStr)] String pszUserName, [Out, MarshalAs(UnmanagedType.LPWStr)] System.Text.StringBuilder pszProfilePath, uint cchProfilePath); "@ $u=Add-Type -MemberDefinition $TypeDefinition -Name "UserCreateProfile" -Namespace "UserProfile" -UsingNamespace "System.Security.Principal" -PassThru $token=[System.Security.Principal.WindowsIdentity]::GetCurrent().Token [System.Security.Principal.WindowsIdentity]$identity = new-object -TypeName System.Security.Principal.WindowsIdentity($token) #$identity.Owner.Value #$identity.Name $ProfilePath="" $intSizeOfProfilePath=0 $u::CreateProfile($identity.Owner.Value, $identity.Name, $ProfilePath, $intSizeOfProfilePath) #$ProfilePath #$intSizeOfProfilePath !!!!Sample PowerShell to lookup Domain User / SID for CreateProfile $userLogonDomain = "YourDOMAIN" $userSamAccountName = "UserID" $domainAccount = $userLogonDomain + "\" + $userSamAccountName $strUserSid = ([System.Security.Principal.NTAccount] $domainAccount).Translate([System.Security.Principal.SecurityIdentifier]).Value #Create string buffer based on pszProfilePath's 260 char max (picking 240 char) $intSizeOfProfilePath = 240 $ProfilePath = New-Object System.Text.StringBuilder($intSizeOfProfilePath) $u::CreateProfile($strUserSid, $userSamAccountName, $ProfilePath, $intSizeOfProfilePath)
Edit userenv.CreatePro...
You do not have permission to change this page. If you feel this is in error, please send feedback with the contact link on the main page.