gpt4 book ai didi

powershell - 将用户添加到本地组

转载 作者:行者123 更新时间:2023-12-02 05:28:34 26 4
gpt4 key购买 nike

此功能应在 Windows Server 2003 和 2008 R2 上运行使用命令行逐行执行成功!脚本执行失败。

function addUser2Group([string]$user,[string]$group)
{
$cname = gc env:computername
$objUser = [ADSI]("WinNT://$user")
$objGroup = [ADSI]("WinNT://$cname/$group,group")
$members = $objGroup.PSBase.Invoke('Members')
$found = $false

foreach($m in $members)
{
if($m.GetType().InvokeMember('Name', 'GetProperty', $null, $m, $null) -eq $user)
{
$found = $true
}
}

if(-not $found)
{
$objGroup.PSBase.Invoke('Add',$objUser.PSBase.Path)
}

$members = $objGroup.PSBase.Invoke('Members')
$found = $false
foreach($m in $members)
{
if($m.GetType().InvokeMember('Name', 'GetProperty', $null, $m, $null) -eq $user)
{
$found = $true
}
}

return $found
}

addUser2Group('MyGlobalMonitoringUser',"SomeDBGroup")

它应该将用户添加到本地组。但它只给我以下错误:

Exception calling "Invoke" with "2" argument(s): "Unknown error (0x80005000)"
+ $members = @($objGroup.PSBase.Invoke <<<< ("Members"))
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : DotNetMethodException





编辑:/add 出现的错误信息是

The following exception occurred while retrieving member "Add": "Unknown error (0x80005000)"


代码是:

function addUser2Group([string]$user,[string]$group)
{
$cname = gc env:computername
try
{
([adsi]"WinNT://$cname/$group,group").Add("WinNT://$cname/$user,user")
}
catch
{
write2log($_)
return $false
}

return $true
}

最佳答案

当 PowerShell 会为您完成时,为什么还要经历反射(reflection)的痛苦?示例:

$group = [ADSI]"WinNT://./Power Users,group"
$group.Add("WinNT://SYSTEM,user")

以上将 SYSTEM 本地帐户添加到本地 Power Users 组。我不确定你为什么会收到上面的特定错误,你也可能会用这种缩写语法得到它。正在使用的特定 COM 接口(interface)是 IADsGroup - 此处引用:http://msdn.microsoft.com/en-us/library/windows/desktop/aa706021.aspx

注意:因为您实际上是在使用包装在 .NET 对象中的 COM 对象,所以最好在使用完后创建的任何 ADSI 对象上调用 Dispose 方法。

关于powershell - 将用户添加到本地组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13929960/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com