从 PowerShell 向用户授予 SeServiceLogonRight

2024-03-16

在我当前正在编写的脚本中,我创建了一个专用用户来启动我们内部开发的一些 Windows 服务。为了启动这些服务,我们的“专用”用户需要 SeServiceLogonRight 权限。目前,我正在使用 ntrights.exe 以及来自 PowerShell 脚本的以下调用来分配该权限:

{.$global:RootInstallDir\..\Common\SupportTools\ntrights.exe -m $env:COMPUTERNAME -u $HealthLinkUser +r SeServiceLogonRight }

然而,我对此并不满意。必须有一种更简洁的方法来使用 PowerShell 来做到这一点。


该脚本包含运行良好且没有任何依赖项的函数:

https://gallery.technet.microsoft.com/scriptcenter/Grant-Revoke-Query-user-26e259b0 https://gallery.technet.microsoft.com/scriptcenter/Grant-Revoke-Query-user-26e259b0

除此之外,这是您问题的具体解决方案:

function Add-ServiceLogonRight([string] $Username) {
    Write-Host "Enable ServiceLogonRight for $Username"

    $tmp = New-TemporaryFile
    secedit /export /cfg "$tmp.inf" | Out-Null
    (gc -Encoding ascii "$tmp.inf") -replace '^SeServiceLogonRight .+', "`$0,$Username" | sc -Encoding ascii "$tmp.inf"
    secedit /import /cfg "$tmp.inf" /db "$tmp.sdb" | Out-Null
    secedit /configure /db "$tmp.sdb" /cfg "$tmp.inf" | Out-Null
    rm $tmp* -ea 0
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

从 PowerShell 向用户授予 SeServiceLogonRight 的相关文章

随机推荐