Powershell变量未填充

时间:2018-02-23 22:32:12

标签: powershell

这是简单的脚本:

$groups = Get-WMIObject -Class Win32_GroupUser -ComputerName $server | Select-object @{N="Group";E={($_.PartComponent -split "Name=")[1].Replace('"','')}}
$groups

但是,$groupsnull

我已检查过互联网,但无法找到解决方案。

我确信这是一个简单的答案......

2 个答案:

答案 0 :(得分:0)

查询在语法上是正确的。检查您是否在$server参数中存储了正确的值,以及 WMI服务是否正在运行。

答案 1 :(得分:0)

这里没有什么问题,因为它在测试时会提取数据。 注意我使用的是localhost,而不是远程系统。

(
$groups = Get-WMIObject -Class Win32_GroupUser -ComputerName $env:COMPUTERNAME `
| Select-object @{N="Group";E={($_.PartComponent -split "Name=")[1].Replace('"','')}}
)

Group              
-----              
postanote
...             
IUSR               
...            
SYSTEM             
...          
INTERACTIVE        
Authenticated Users
...           
DefaultAccount     
Guest              
Administrator      
...             
SYSTEM             
...   

$groups.Count   

27 

在远程系统上很好。

(
$groups = Get-WMIObject -Class Win32_GroupUser -ComputerName 'ws01' `
| Select-object @{N="Group";E={($_.PartComponent -split "Name=")[1].Replace('"','')}}
)

Group                    
-----                    
Administrator            
Domain Admins            
...               
Guest                    
SYSTEM                   
...                
INTERACTIVE              
Authenticated Users      
Domain Users             
SYSTEM 

$groups.Count 

18

因此,在您的环境中环境保护的东西,对您来说是第22个。

在您的localhost主机上运行此命令,看看您是否可以从目标中获取任何内容。

Test-WSMan -ComputerName ws01

wsmid           : http://schemas.dmtf.org/wbem/wsman/identity/1/wsmanidentity.xsd
ProtocolVersion : http://schemas.dmtf.org/wbem/wsman/1/wsman.xsd
ProductVendor   : Microsoft Corporation
ProductVersion  : OS: 0.0.0 SP: 0.0 Stack: 3.0