arrays - 在 Powershell 的新数组中仅存储 \\servername\share\
问题描述
我正在构建一个工具,它允许我查询我们的 AD 用户对象的主目录值和相关文件服务器的主目录,以便进行报告和管理。
我查询了 AD 并为我们两个 OU 中的帐户存储了一个包含所有 homedirectory 和 samaccountname 值的数组。
接下来,我提取了$homedirectory
值并使用正则表达式通过拆分运行它们:
$ServShare = $Homedirectory -Split '(^\\\\([a-z0-9_.$●-]+)\\([a-z0-9_.$●-]+)\\)'
现在我有一个长长的列表,其格式如下:
\\servername1\sharename
servername1
共享
名 username1\\servername1\sharename
servername1
共享
名 username2\\servername2\sharename
servername2
共享
名 username3ETC...
我需要将所有 \servername\sharename 值存储在一个新数组中以供进一步工作(唯一值、查询以获取我需要运行的服务器/共享get-childitem
等)。
我检查了数据,即使共享路径中的文件夹数量有所不同,我需要的所有结果都在第 1 行和第 6 行。因此,在结果列表的数百行中,第 1、6、11、16、21、26 等行。
然而,我很难把这些线拉出来并储存起来以供进一步使用。我没有做太多解析数组和文本的工作,我会很感激一个沿着正确方向的指针。
解决方案
我没有对此进行测试,但它可能会有所帮助。用于$ServShare.GetType()
找出它是一个数组。
$UncList = @() # Create an empty array to hold the UNC strings
foreach ($Homedirectory in $HomeDirectories) {
$ServShare = $Homedirectory -Split '(^\\\\([a-z0-9_.$●-]+)\\([a-z0-9_.$●-]+)\\)'
$UncList += $ServShare[1]
}
$UncList
推荐阅读
- docker - 将日期附加到 URL 以防止 Docker 缓存 + 从 Github 检索最新提交
- java - 实现接口时如何初始化对象
- ruby-on-rails - 使用 Turbolinks 时无法运行特定于页面的 javascript 包
- c# - Azure Function App 错误“无法解析远程名称”
- ruby-on-rails - 如何在 where 查询中使用参数 - Ruby?
- c - 等效表达式 memset 和数组
- angularjs - MVC 控制器方法未从 $http post 接收 json 数据
- ios - 如何在其他开发人员设备中安装我的 xcode 项目以进行测试
- android - 当我尝试使用 FloatingActionButton 打开 Main2Activity 时应用程序崩溃
- python - Python Bot 中的子命令