windows_users 0.3.0

A crate for managing Windows local users and groups.
Documentation
use std::collections::HashSet;

use chrono::Utc;
use windows_users::{LogonHours, User, UserAccountFlags};

pub fn build_full_user(name: &str) -> User {
    User::builder()
        .name(name)
        .password("P@ssw0rd123!")
        .home_dir("C:\\Users\\Default")
        .comment("Generated user")
        .flags(UserAccountFlags::default())
        .script_path("C:\\Windows\\System32\\logon.cmd")
        .full_name("Default User")
        .user_comment("Created by build_full_user")
        .workstations(HashSet::from(["WORKSTATION1"]))
        .acct_expires(Utc::now() + chrono::Duration::days(30))
        .logon_hours(LogonHours::allow_all())
        .country_code(100u32)
        .code_page(65001u32)
        .primary_group_id(513u32)
        .profile("C:\\Users\\Default")
        .home_dir_drive("C:")
        .password_expired(false)
        .build()
}

pub fn build_full_user_alt(name: &str) -> User {
    User::builder()
        .name(name)
        .password("Str0ng!AltPass#456")
        .home_dir("D:\\Profiles\\CustomUser")
        .comment("Alternate generated user")
        .flags(UserAccountFlags::default())
        .script_path("D:\\Scripts\\startup.bat")
        .full_name("Alternate User")
        .user_comment("Created by build_full_user_alt")
        .workstations(HashSet::from(["WS-ALT-01", "WS-ALT-02"]))
        .acct_expires(Utc::now() + chrono::Duration::days(90))
        .logon_hours(LogonHours::deny_all())
        .country_code(33u32)
        .primary_group_id(513u32)
        .profile("D:\\Profiles\\AltUser")
        .home_dir_drive("D:")
        .build()
}