/// <summary> /// ProcessRecord method. /// </summary> protected override void ProcessRecord() { try { if (CheckShouldProcess(Name)) { var user = new LocalUser { Name = Name, Description = Description, Enabled = true, FullName = FullName, UserMayChangePassword = true }; foreach (var paramName in parameterNames) { if (this.HasParameter(paramName)) { switch (paramName) { case "AccountExpires": user.AccountExpires = AccountExpires; break; case "Disabled": user.Enabled = !Disabled; break; case "UserMayNotChangePassword": user.UserMayChangePassword = !UserMayNotChangePassword; break; } } } if (AccountNeverExpires.IsPresent) { user.AccountExpires = null; } // Password will be null if NoPassword was given user = sam.CreateLocalUser(user, Password, PasswordNeverExpires.IsPresent); WriteObject(user); } } catch (Exception ex) { WriteError(ex.MakeErrorRecord()); } }