Хорошо, покопавшись в документации и благодаря отличной странице !, я смог понять это ...
Из PowerShell я узнал, что это отлично работает :
New-ADUser -Server "domain.net" -AccountPassword (ConvertTo-SecureString user_password \
-AsPlainText -Force) -EmailAddress "user1@domain.net" -Name "user1" -DisplayName "user1" \
-GivenName "user1" -Surname "user1" -UserPrincipalName "user1" -path \
"OU=COMPANY,OU=Applications,OU=Users,OU=DEPARTMENT,OU=Global,DC=department,DC=domain,\
DC=net" -PasswordNeverExpires $true -Confirm:$false -Credential (New-Object \
System.Management.Automation.PSCredential ("DOMAIN\admin-user",(ConvertTo-SecureString \
"password" -AsPlainText -Force)))
Важно, чтобы текст внутри переменных был хорошо отформатирован!
- создал строку для части Credential
ps_credentials = (f' (New-Object System.Management.Automation.PSCredential ("DOMAIN1\{auth_user}",(ConvertTo-SecureString "{auth_pw}" -AsPlainText -Force)))')
команда как строка, хорошо отформатированная! Переменная ps_credentials используется в brakets ()
ps_create_cmd = (f'New-ADUser -Server \"{domain_name}\" -Path \"{ou_destination}\" -AccountPassword ({sec_pw}) -EmailAddress {username}@domain.net -Name {username} -SamAccountName {username} -DisplayName {username} -Surname {username} -UserPrincipalName {username} -GivenName {username} -PasswordNeverExpires $true -Confirm:$false -Credential {ps_credentials}')
Выполнение такой команды powershell
create_user = subprocess.run(["powershell.exe", (f'{ps_create_cmd}')], capture_output=True, text=True)
Окно учетных данных, которое мешало мне автоматизировать все это, больше не появляется, и пользователь-администратор аутентифицируется на сервере AD для создания новой учетной записи. Of c это можно изменить для работы с любой командой, требующей -Credential.
Большое спасибо автору сайта duffney. Действительно хорошо, я надеюсь, что кому-то это пригодится в будущем. Ждем продуктивных дискуссий :)