[玩转系统] 周五乐趣:获取 PowerShell 用户组
作者:精品下载站 日期:2024-12-14 07:45:43 浏览:13 分类:玩电脑
周五乐趣:获取 PowerShell 用户组
有一天,Don Jones 在推特上发布了有关寻找 PowerShell 用户组的信息。如果您不知道,几乎所有与 PowerShell 相关的用户组都可以在 http://powershellgroup.org 上在线找到。这是寻找您附近的用户组的绝佳资源。当然,Twitter 就是这样,有人开玩笑说缺少 Get-PSUserGroup cmdlet。所以,我把这个笑话当作一个挑战。唐也打算建造一些东西,但我还没有看到他想出了什么。我怀疑它会和我的相似。
因为我们有一个网站,所以我们可以使用 Invoke-WebRequest 来抓取它。
$URL = http://powershellgroup.org/og
$r = Invoke-WebRequest $url
生成的对象没有尝试解析文档对象模型 (DOM),而是具有一个名为 AllElements 的属性,正如其名称所暗示的那样。我必须查看页面上的源 HTML 来识别我需要引用的元素。由于我似乎可以通过 HTML 类获得我想要的内容,因此我按类对元素进行分组并将其转换为哈希表。
$c = $r.AllElements | group class -AsHashTable -AsString
我选择了哈希表,以便更轻松地获取给定类的所有元素。例如,我知道“视图字段视图字段标题”类会给我每个组的名称。
$c.'views-field views-field-title'
同样,我知道“视图字段视图字段描述”类将提供描述。
$c.'views-field views-field-description'
了解每个对象的外观后,您还可以通过管道连接到 Get-Member 来发现属性名称,从而轻松提取相关信息。
#get total group count less one for the header
$count = ($c.'views-field views-field-description'.count)
for ($i = 1; $i -lt $count; $i++) {
$groupname = $c.'views-field views-field-title'[$i].innertext
$description = $c.'views-field views-field-description'[$i].InnerText
[pscustomobject]@{
Name = $groupname
Description = $description
}
}
一旦掌握了核心概念,我就围绕它们构建了一个名为 Get-PSUserGroup 的高级函数。
Function Get-PSUserGroup {
<#
.Synopsis
Get PowerShell User Groups
.Description
This command uses Invoke-Webrequest to retrieve user group information from PowerShellGroup.org. This command has no parameters.
.Example
PS C:\> get-psusergroup
Name : Central Texas Powershell Users Group
Description : Powershell Users Group in Central Texas
Contact : crshnbrn
MemberCount : 3
Status : Join
Link : http://powershellgroup.org/CentralTexas%20-%20Austin
Name : Strasbourg PowerShell User Group
Description : Strasbourg PowerShell User Group
Contact : stephanevg
MemberCount : 27
Status : Request membership
Link : http://powershellgroup.org/strasbourg
Name : Basel PowerShell User Group
Description : Basel PowerShell User Group
Contact : stephanevg
MemberCount : 26
Status : Request membership
Link : http://powershellgroup.org/basel
...
.Link
Get-PSUserGroupDetail
Invoke-Webrequest
#>
[cmdletbinding()]
Param()
#define base URL
[string]$URL = "http://powershellgroup.org/og"
write-Verbose "Retrieving group data from $url"
Try {
$r = Invoke-WebRequest $url -ErrorAction Stop
}
Catch {
Throw $_.Exception.message
}
If ($r) {
Write-Verbose "Processing results"
$c = $r.AllElements | group class -AsHashTable -AsString
#get total group count less one for the header
$count = ($c.'views-field views-field-description'.count)
Write-Verbose "Found $($count -1) groups"
#regular expression for parsing out the HREF link
[regex]$rx='<A href="(?<href>/\S+)"'
#enumerate entries, skipping the first one which is a header
for ($i = 1; $i -lt $count; $i++) {
$groupname = $c.'views-field views-field-title'[$i].innertext
#get link to the group page
$href = $rx.match($c.'views-field views-field-title'[$i].innerhtml).Groups["href"].Value
$link = "http://powershellgroup.org{0}" -f $href
#write a custom object to the pipeline for each group
[pscustomobject]@{
Name = $groupname
Description = $c.'views-field views-field-description'[$i].InnerText
Contact = $c.'views-field views-field-name'[$i].innertext
MemberCount = $c.'views-field views-field-member-count'[$i].InnerText
Status = $c.'views-field views-field-subscribe'[$i].InnerText
Link = $Link
}
} #for
} #if $r
} #end function
该命令不带任何参数,仅返回有关每个组的高级信息。
管道对象包含指向组页面的链接,这意味着您可以尝试如下操作:
get-psusergroup | out-gridview -title "Select a group" -PassThru | foreach { start $_.link}
所有组都发送到 Out-GridView。
选择一个或多个组,每个链接都应在您的浏览器中打开。现在您没有理由找不到 PowerShell 用户组。如果您附近没有这样的人,那就开始吧!
关于这个主题我还有一些其他有趣的事情,但我会留到另一天再讲。享受!!
猜你还喜欢
- 03-30 [玩转系统] 如何用批处理实现关机,注销,重启和锁定计算机
- 02-14 [系统故障] Win10下报错:该文件没有与之关联的应用来执行该操作
- 01-07 [系统问题] Win10--解决锁屏后会断网的问题
- 01-02 [系统技巧] Windows系统如何关闭防火墙保姆式教程,超详细
- 12-15 [玩转系统] 如何在 Windows 10 和 11 上允许多个 RDP 会话
- 12-15 [玩转系统] 查找 Exchange/Microsoft 365 中不活动(未使用)的通讯组列表
- 12-15 [玩转系统] 如何在 Windows 上安装远程服务器管理工具 (RSAT)
- 12-15 [玩转系统] 如何在 Windows 上重置组策略设置
- 12-15 [玩转系统] 如何获取计算机上的本地管理员列表?
- 12-15 [玩转系统] 在 Visual Studio Code 中连接到 MS SQL Server 数据库
- 12-15 [玩转系统] 如何降级 Windows Server 版本或许可证
- 12-15 [玩转系统] 如何允许非管理员用户在 Windows 中启动/停止服务
取消回复欢迎 你 发表评论:
- 精品推荐!
-
- 最新文章
- 热门文章
- 热评文章
[影视] 黑道中人 Alto Knights(2025)剧情 犯罪 历史 电影
[古装剧] [七侠五义][全75集][WEB-MP4/76G][国语无字][1080P][焦恩俊经典]
[实用软件] 虚拟手机号 电话 验证码 注册
[电视剧] 安眠书店/你 第五季 You Season 5 (2025) 【全10集】
[电视剧] 棋士(2025) 4K 1080P【全22集】悬疑 犯罪 王宝强 陈明昊
[软件合集] 25年6月5日 精选软件22个
[软件合集] 25年6月4日 精选软件36个
[短剧] 2025年06月04日 精选+付费短剧推荐33部
[短剧] 2025年06月03日 精选+付费短剧推荐25部
[软件合集] 25年6月3日 精选软件44个
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电视剧] 欢乐颂.5部全 (2016-2024)
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[影视] 【稀有资源】香港老片 艺坛照妖镜之96应召名册 (1996)
[剧集] 神经风云(2023)(完结).4K
[剧集] [BT] [TVB] [黑夜彩虹(2003)] [全21集] [粤语中字] [TV-RMVB]
[实用软件] 虚拟手机号 电话 验证码 注册
[资源] B站充电视频合集,包含多位重量级up主,全是大佬真金白银买来的~【99GB】
[影视] 内地绝版高清录像带 [mpg]
[书籍] 古今奇书禁书三教九流资料大合集 猎奇必备珍藏资源PDF版 1.14G
[电视剧] [突围] [45集全] [WEB-MP4/每集1.5GB] [国语/内嵌中文字幕] [4K-2160P] [无水印]
[剧集] [央视][笑傲江湖][2001][DVD-RMVB][高清][40集全]李亚鹏、许晴、苗乙乙
[电影] 美国队长4 4K原盘REMUX 杜比视界 内封简繁英双语字幕 49G
[电影] 死神来了(1-6)大合集!
[软件合集] 25年05月13日 精选软件16个
[精品软件] 25年05月15日 精选软件18个
[绝版资源] 南与北 第1-2季 合集 North and South (1985) /美国/豆瓣: 8.8[1080P][中文字幕]
[软件] 25年05月14日 精选软件57个
[短剧] 2025年05月14日 精选+付费短剧推荐39部
[短剧] 2025年05月15日 精选+付费短剧推荐36部
- 最新评论
-
- 热门tag