Skip to main content
 首页 » 编程设计

powershell之批量禁用在 text/csv 文件中找到的本地帐户

2025年05月04日151zhenyulu

我需要根据文本文件或 CSV 文件中的输入禁用大约 250 个本地用户帐户,然后将结果导出到 CSV 文件中。

我在网上搜索了一下,但找不到任何可以一起定制的东西。 这是我尝试过的;

这是我试过的:

$Workdir = 'C:\scripts\'  
$Output = $Workdir + 'Disabled-UserReport.csv'  
$InputFile = $Workdir + 'Users_To_Disable.csv'  
$Servers = 'LOCALHOST'  
Import-CSV $InputFile | ForEach-Object { 
    $Server = $_ ([ADSI]"WinNT://$Server").Children | ? {$_.SchemaClassName -eq 'user'} | % { $User.UserFlags[0] = $User.UserFlags[0] -bor 0x2 $User.SetInfo() } 
}| Export-CSV -Encode UTF8 -Path C:\scripts\Disabled-Users.csv 

这是尝试二:

$Servers = 'LOCALHOST' 
$Username = Import-CSV "C:\scripts\Users_To_Disable.csv" 
$Username | FOREACH {  
    $Server = $_  
    $objGroup = [ADSI]("WinNT://$env:ComputerName/User") 
    $objGroup.PSBase.Invoke("Add",$objUser.PSBase.Path)  
    $User.description = $description  
    <#$User.userflags = $DisableUser#>  
    $User.setinfo()  
} | Export-CSV -Encode UTF8 -Path C:\scripts\Disabled-Users.csv 

我知道这两个脚本都有很大的问题....正如你所看到的,我是一个一有空就学习 PS 的菜鸟 :) 如果它能在 PS2 上运行,那就太好了。但需要使用 PS4。

感谢任何帮助!

请您参考如下方法:

是的,上周我终于成功了……谢谢! 如果其他一些新手想要,请编写代码。它根据来自文本文件的输入禁用帐户,并将帐户设置为密码永不过期和密码无法更改;

$EnableUser = 512  
$DisableUser = 2  
$PasswordNotExpire = 65536  
$PasswordCantChange = 64  
$users = Get-Content -path "C:\Users_To_Disable.txt"  
$computer = $env:COMPUTERNAME 
 
Foreach($user in $users){ $user = [ADSI]"WinNT://$computer/$user" 
$user.userflags = $DisableUser+$PasswordNotExpire+$PasswordCantChange 
#$user.Userflags = $EnableUser+$PasswordNotExpire+$PasswordCantChange 
$user.setinfo() 
}