如何使用Powershell在ActiveDirectory中将登录时间设置为拒绝登录

如何使用Powershell在ActiveDirectory中将登录时间设置为拒绝登录,powershell,Powershell,我需要powershell命令的帮助,以便在AD中将logonhours属性设置为login denied 谢谢。所以最好让模板成为用户,然后从中提取值。我写了这篇文章,可以满足你的需要: $hours = get-aduser TempUserYouCreatedToGetItSetTheWayYouWanted -property logonhours | select -ExpandProperty logonhours $Counter = 0 $HoursString = "[byt

我需要powershell命令的帮助,以便在AD中将logonhours属性设置为login denied


谢谢。

所以最好让模板成为用户,然后从中提取值。我写了这篇文章,可以满足你的需要:

$hours = get-aduser TempUserYouCreatedToGetItSetTheWayYouWanted -property logonhours | select -ExpandProperty logonhours
$Counter = 0
$HoursString = "[byte[]]`$hours = @("
foreach ($h in $hours) {
    if ($Counter -gt 0) { 
    $HoursString = $HoursString + ","
    }
    $HoursString = $HoursString + "$($h)"
    $Counter++
}
$HoursString = $HoursString + ")"
write-output $HoursString
输出如下所示:

[byte[]]$hours = @(255,255,255,255,255,255,255,255,128,255,255,128,255,255,128,255,255,128,255,255,255)
set-aduser -identity whoeverYouWant -replace @{logonhours = $hours}
可由如下所示的set Aduser使用:

[byte[]]$hours = @(255,255,255,255,255,255,255,255,128,255,255,128,255,255,128,255,255,128,255,255,255)
set-aduser -identity whoeverYouWant -replace @{logonhours = $hours}

你到底在问什么?你可以使用
get AdUser-Filter*-Properties LogonHours
(这是一个字节数组)来获取它们。因此,我想你也可以使用
set AdUser
设置它们,但我以前从未这样做过……Stackoverflow是一个程序员的问答网站,而不是一个“这是我的要求,有人能为我写代码吗”的网站。到目前为止,您的代码是什么样子的?上面的命令set aduser-identity whoeverYouWant-replace@{logonhours=$hours}不起作用。它给我一个错误集aduser:请求不受支持,登录状态必须被拒绝,如所附屏幕截图所示