【问题标题】:Bulk disable local accounts found in text/csv file批量禁用文本/csv 文件中的本地帐户
【发布时间】:2015-10-05 10:34:42
【问题描述】:

我需要根据文本文件或 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。

感谢任何帮助!

【问题讨论】:

  • 这真的适用于本地独立计算机用户帐户吗?
  • 啊,抱歉 - 完全错过了关于 local 的部分。 ) 看看here - 这应该让你开始。
  • 我不能安静地成功编辑该脚本,因为它有几个我不需要的绑定...对不起,我对 powershell 太陌生。我从link 尝试了另一个,但也无法安静地管理那个。
  • 我需要一些简单的东西,例如: Import-Csv "C:\scripts\Users_To_Disable.csv" |为每个 | ([ADSI]"WinNT://$comp") MISSING MISSING MISSING $user_acc.userflags.value = $user_acc.userflags.value -bor "0x0002" $user_acc.SetInfo()
  • 您对本地帐户进行了哪些更改?你只是禁用它们吗?

标签: powershell local user-accounts adsi


【解决方案1】:

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

$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()
}

【讨论】:

    【解决方案2】:

    抱歉,这不是答案,我要下班了,但是你看到这篇文章了吗? http://blogs.technet.com/b/heyscriptingguy/archive/2010/11/22/use-powershell-to-enable-or-disable-a-local-user-account.aspx

    这可能会有所帮助。如果没有,我很抱歉。

    【讨论】:

      【解决方案3】:

      这不是你的答案,但它在 google 中很受欢迎,因为它在 PowerShell 中禁用本地用户帐户。这是我使用您的答案组装而成的

      function user-enable()
      {
          param([string] $username, [boolean] $enabled)
      
          $disableFlag = 2 
          $enableFlag = 512
      
          $flag = if ($enabled) {$enableFlag} else {$disableFlag} # powershell turnary lol
      
          $computername = $env:COMPUTERNAME
          $user = [adsi]"WinNT://$computername/$username"
          $user.userflags = $flag
          $user.setinfo()
      }
      
      user-enable -username "packer" -enabled $false
      

      【讨论】:

        猜你喜欢
        • 2011-12-31
        • 1970-01-01
        • 2014-02-17
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-06-16
        • 2023-01-04
        • 1970-01-01
        相关资源
        最近更新 更多