windows - 使用安全密码创建本地管理员帐户的隐形 powershell 脚本
问题描述
我对stackoverflow和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()
解决方案
我认为您可以使用该try-catch
方法并New-localuser
执行此操作。
$username = "TestUser"
$Password = cat C:\script2\init.pwd | ConvertTo-SecureString
#Changing this back to what would work for you. I was supplying a plaintext password
#$Password = Read-Host -Prompt "Password" -AsSecureString
try
{
Get-LocalUser -Name $username -ErrorAction Stop
#"User Already exists"
}
catch
{
New-LocalUser -Name $username -Password $Password
Add-LocalGroupMember -Group "Administrators" -Member $username
$usr=[ADSI]"WinNT://localhost/$username"
$usr.passwordExpired = 1
$usr.setinfo()
}
如果将其保存为脚本,Create-localUser.ps1
则可以从或使用命令调用它Run
Task Scheduler
logon batch script
powershell.exe -windowstyle Hidden -file C:\temp\create-Localuser.ps1
并使其对登录用户隐藏。我以为这就是你所说的隐形。
推荐阅读
- scala - 如何更改 Zeppelin for Apache Spark 中的 Scala 编译器选项?
- android - 动态更新通知的动作图标
- laravel - laravel 5.7,haproxy 和 ssl
- angular - 在 App Module 中导入 SubModule 时访问可注入值
- javascript - 在一定的窗口宽度下将元素的左边距切成两半
- java-time - DateTimeFormatter.ISO_DATE_TIME 可解析的最大时间戳是多少?
- c# - 隐藏从 C# 调用的 git-bash 窗口
- python - 按行值索引列表中的 Pandas 新列
- c++ - ZeroMQ: how to reduce multithread-communication latency with inproc?
- r - 指定试验次数,引导程序