Я не очень хорошо знаком ни со стеком, ни с Powershell.
Извините за форматирование, пожалуйста, дайте мне знать, как улучшить мой пост для большей наглядности.
Я пытался получить невидимый скрипт powershell, который проверяет, существует ли учетная запись, прежде чем создавать ее.
Если учетная запись не существует, то сценарий создаст часть учетной записи локального администратора группы администраторов с защищенным паролем.
Учетная запись будет вынуждена изменить пароль при следующем входе в систему.
Я уже попробовал несколько вещей, у меня есть 2 отдельных сценария, один для создания защищенного пароля в файле .txt, а затем я вызываю этот файл в основной сценарий.
Пока что скрипт не молчит (невидим) и пароль не сохраняется.
Учетная запись действительно создана, но при вводе пароля появляется сообщение об ошибке.
Если я установлю пароль незащищенным способом, он будет работать и попросит меня изменить его при следующем входе в систему.
К сожалению, если учетная запись уже существует, она не выходит из сценария, а меняет пароль.
Создание пароля:
Read-Host -Prompt "Saisir mot de passe " -AsSecureString | ConvertFrom-SecureString | Out-File C:\script2\init.pwd
Основной сценарий:
$Password = cat C:\script2\init.pwd | ConvertTo-SecureString
$group = "Administrators"
$adsi = [ADSI]"WinNT://$env:COMPUTERNAME"
$existing = $adsi.Children | where {$_.SchemaClassName -eq 'user' -and $_.Name -eq $Username }
if ($existing -eq $Username) {
exit
}
else {
NET USER $Username $Password /add /y /expires:never
NET LOCALGROUP $group $Username /add
}
$Username = "su"
$Usrstring = "WinNT://localhost/"+$Username
$usr=[ADSI] $Usrstring
$usr.passwordExpired = 1
$usr.setinfo()