Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Powershell 列出除域管理员和本地管理员之外的所有本地管理员帐户 函数get localgroupmember{ [CmdletBinding] param [parameterValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true] [string[]$computername=$env:computername 开始{ 添加类型-AssemblyName System.DirectoryServices.AccountManagement $ctype=[System.DirectoryServices.AccountManagement.ContextType]::计算机 } 过程{ foreach$computername中的$computer{ $context=New Object-TypeName System.DirectoryServices.AccountManagement.PrincipalContext-ArgumentList$ctype,$computer $idtype=[System.DirectoryServices.AccountManagement.IdentityType]::SamAccountName $group=[System.DirectoryServices.AccountManagement.GroupPrincipal]::FindByIdentity$context,$idtype,'Administrators' $group.Members| 选择{N='Server';E={$computer},@{N='Domain';E={$\ux.Context.Name},samaccountName }端部foreach }结束过程 } Win12R2,W12SUS |获取localgroupmember_Powershell_Account_Administrator - Fatal编程技术网

Powershell 列出除域管理员和本地管理员之外的所有本地管理员帐户 函数get localgroupmember{ [CmdletBinding] param [parameterValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true] [string[]$computername=$env:computername 开始{ 添加类型-AssemblyName System.DirectoryServices.AccountManagement $ctype=[System.DirectoryServices.AccountManagement.ContextType]::计算机 } 过程{ foreach$computername中的$computer{ $context=New Object-TypeName System.DirectoryServices.AccountManagement.PrincipalContext-ArgumentList$ctype,$computer $idtype=[System.DirectoryServices.AccountManagement.IdentityType]::SamAccountName $group=[System.DirectoryServices.AccountManagement.GroupPrincipal]::FindByIdentity$context,$idtype,'Administrators' $group.Members| 选择{N='Server';E={$computer},@{N='Domain';E={$\ux.Context.Name},samaccountName }端部foreach }结束过程 } Win12R2,W12SUS |获取localgroupmember

Powershell 列出除域管理员和本地管理员之外的所有本地管理员帐户 函数get localgroupmember{ [CmdletBinding] param [parameterValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true] [string[]$computername=$env:computername 开始{ 添加类型-AssemblyName System.DirectoryServices.AccountManagement $ctype=[System.DirectoryServices.AccountManagement.ContextType]::计算机 } 过程{ foreach$computername中的$computer{ $context=New Object-TypeName System.DirectoryServices.AccountManagement.PrincipalContext-ArgumentList$ctype,$computer $idtype=[System.DirectoryServices.AccountManagement.IdentityType]::SamAccountName $group=[System.DirectoryServices.AccountManagement.GroupPrincipal]::FindByIdentity$context,$idtype,'Administrators' $group.Members| 选择{N='Server';E={$computer},@{N='Domain';E={$\ux.Context.Name},samaccountName }端部foreach }结束过程 } Win12R2,W12SUS |获取localgroupmember,powershell,account,administrator,Powershell,Account,Administrator,我想要的是输出如下所示,并且我想要标记admin组中不属于标准设置的用户。我真的想忽略SAM帐户,它们是域帐户,但现在标记它们是可行的。正在发生的是,有一个循环通过SAM帐户来创建此输出。然而,当机器脱机时,我也需要注意这一点 我也不想使用ValueFromPipeline,而是希望通过以下命令获取PC名称列表$allComputers=get-ADComputer-Filter'PasswordLastSet-ge$date'-properties PasswordLastSet |选择名称,

我想要的是输出如下所示,并且我想要标记admin组中不属于标准设置的用户。我真的想忽略SAM帐户,它们是域帐户,但现在标记它们是可行的。正在发生的是,有一个循环通过SAM帐户来创建此输出。然而,当机器脱机时,我也需要注意这一点

我也不想使用ValueFromPipeline,而是希望通过以下命令获取PC名称列表$allComputers=get-ADComputer-Filter'PasswordLastSet-ge$date'-properties PasswordLastSet |选择名称,然后使用该变量作为循环的源

这是我修改过的代码,但是当$group.Members | select{N='Server';E={$computer}},@{N='Domain';E={$.\Context.Name},samaccountName中出现循环时,我在创建要添加到数组中的自定义对象时遇到问题

函数get localgroupmember{ [CmdletBinding] param [ParameterMandatory=$True,HelpMessage=输入PC] [完全或空验证] [对象]$computername=$null 开始{ $newArray=@; 添加类型-AssemblyName System.DirectoryServices.AccountManagement $ctype=[System.DirectoryServices.AccountManagement.ContextType]::计算机 } 过程{ foreach$computername中的$computer{ 如果测试连接-ComputerName$computer.name-安静-计数1{ 试一试{ $context=New Object-TypeName System.DirectoryServices.AccountManagement.PrincipalContext-ArgumentList$ctype,$computer.name $idtype=[System.DirectoryServices.AccountManagement.IdentityType]::SamAccountName $group=[System.DirectoryServices.AccountManagement.GroupPrincipal]::FindByIdentity$context,$idtype,'Administrators' $group.Members |选择{N='Server';E={$computer.name}},{N='Domain';E={$\.Context.name},samaccountName $objComputer=[pscustomobject]@{ 服务器=$computer.name Domain=$group.Members | select@{N='Domain';E={$\u.Context.Name} 帐户=$Computer.samaccountName } }抓住{ $objComputer=[pscustomobject]@{ 服务器=$computer.name 域=错误 帐户=错误 } } }否则{ $objComputer=[pscustomobject]@{ 服务器=$computer.name 域=离线 账户=离线 } }$arrayNew+=$objComputer }端部foreach }结束过程 返回$arrayNew } $date=[DateTime]::今天。添加天数-1 $allComputers=Get-ADComputer-Filter'PasswordLastSet-ge$date'-properties PasswordLastSet |选择名称 获取localgroupmember-computername$allComputers | Out GridView
老实说,我不会尝试像您这样输出数组对象。真的没有必要。只需根据需要创建每个对象,并让它直接输出。实际上,您不需要使用return,因为函数将沿着管道传递任何输出,除非您特别告诉它,使用诸如Write Host或Out File之类的方法。另外,看起来您的输入需要一个非常模糊的对象,但是您尝试循环通过该对象,并使用每个记录作为PC的名称,因此您真正需要的输入是一个字符串数组。在这种情况下,请将类型从[object]更改为[string[]。最后,如果在创建$AllComputers变量时只扩展Name属性,那么代码中的许多内容都可以简化。哦,我撒谎了,这是最后一件事。。。return语句不在函数的有效部分中。它需要类似于END{Return$arrayNew}

然后,您只需将例外帐户列表添加到not标志,或添加一些逻辑或其他内容。老实说,您的代码应该通过一些语法修正来完成您希望它完成的几乎所有事情。这里基于您的脚本,它输出组的所有成员并标记 [对象]@{ 服务器=$computer 域=离线 账户=离线 } } }端部foreach }结束过程 }
@ansgar wiechers感谢您提供的源代码格式!你是怎么做到的?我现在正在学习,代码是。似乎有一个空白行把它和其他东西分开,所以我把它放在上面,在下面放一个空白,然后写你的帖子。应该也能用,但我刚刚开始在需要的时候使用第一个。最近我不得不做一些几乎完全一样的事情来进行软件许可证审核。让我看看我是否能筛选出一件你想看的东西。什么,你不喜欢玉米卷?好的,下次我会为你把它改成TMTsChinchillaFarm.com Matt=P