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
gwmi Win32_用户帐户冻结PowerShell_Powershell - Fatal编程技术网

gwmi Win32_用户帐户冻结PowerShell

gwmi Win32_用户帐户冻结PowerShell,powershell,Powershell,这就是我的“获取本地管理员帐户信息”脚本的核心: 运行此操作会冻结PS控制台和ISE,需要任务管理器杀死它们 根据stackoverflow上的其他问题,我理解查询Win32_UserAccount可能会导致大量数据通过网络传输。但我认为指定一台计算机和一个SID可以将数据量过滤到很小的程度。我当然不会在查询远程服务器上的其他WMI对象时遇到这个问题 我错过什么了吗 编辑:这也会冻结PS: gwmi win32_useraccount -computername $server "SID LIK

这就是我的“获取本地管理员帐户信息”脚本的核心:

运行此操作会冻结PS控制台和ISE,需要任务管理器杀死它们

根据stackoverflow上的其他问题,我理解查询Win32_UserAccount可能会导致大量数据通过网络传输。但我认为指定一台计算机和一个SID可以将数据量过滤到很小的程度。我当然不会在查询远程服务器上的其他WMI对象时遇到这个问题

我错过什么了吗

编辑:这也会冻结PS:

gwmi win32_useraccount -computername $server "SID LIKE '%500'"

需要将服务器名称指定为查询中的域。即“域='$server'和类似于'%500'的SID”

但这可能仍然表现不佳。看


也可以尝试对LocalAccount属性进行筛选,即“LocalAccount='$True'”

如果可以执行
domain=
name=
,则会很快,因为这些是索引

# fast
Get-WmiObject Win32_UserAccount -Filter "Domain='$env:USERDOMAIN' AND 
  name = 'js2010'"
奇怪的是,单独指定localaccount很快,但也不能使用名称或sid

# slow (AD joined)
Get-WmiObject Win32_UserAccount -Filter "localaccount = 'true' and 
  name = 'js2010'"

# fast
Get-WmiObject Win32_UserAccount -Filter "localaccount = 'true'" | 
  where name -eq js2010

# fast
get-wmiobject win32_useraccount -filter "localaccount = 'true'" | 
  where sid -like *500

# fast
get-wmiobject win32_useraccount -filter "domain = '$env:computername' and
  sid like '%500'"
还有一个get localuser:

# fast
Get-Localuser | where sid -like *500

很可能您正在查询的计算机上的提供程序仍在返回所有域帐户。。。i、 不幸的是,指定一台特定的机器可能没有什么区别。必须有办法从一台服务器上获得一个本地帐户。我不需要查询广告或任何东西。如果您正在寻找本地管理员,为什么要指定域?不确定这有多有用,但Win32_Desktop只返回本地“帐户”的信息。。。你想得到什么信息?获取关联的实例也会挂起,所以看起来这并不比直接查询UserAccount更有效。@JamesBrown看起来应该很容易。如果您明确知道域名和用户名,可以使用“Get-CimInstance-Namespace root/cimv2-Query”从Win32_UserAccount中选择*,其中domain='your domain'和name='your username'…这在我的系统上运行得很好。这对@andyb有很大帮助。我的测试运行时间为2到10秒,这是一个巨大的改进。谢谢。
# fast
Get-Localuser | where sid -like *500