微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Powershell-查找网络共享上的所有扩展

如何解决Powershell-查找网络共享上的所有扩展

我是PS脚本的新手(真的,我是今天开始的),对于一个项目,我需要创建一个.txt文件,其中包含本地计算机(Windows文件服务器)上所有共享文件夹的所有扩展名。

我认为我在正确的道路上:

get-childitem -Path C:\test -Recurse | select extension -unique > $PSScriptRoot\ExtensionList.txt

对于给定的路径和所有子文件夹,它确实可以满足我的要求,但是现在我需要将其应用于计算机上的所有共享文件夹。

我可以使用以下命令列出所有共享文件夹的路径:

$Shares=   @(Get-WmiObject Win32_Share | 
                    Select Name,Path,Type | 
                    Where-Object { $_.Type -match '0|2147483648' } | 
                    Select -ExpandProperty Path | 
                    Select -Unique)
Write-Host $Shares

现在我被困住了,我想我需要使用foreach命令,但是我找不到使它工作的方法

有人可以帮我把这些放在一起吗?

谢谢

解决方法

您可能正在寻找类似的东西:

$Shares = @( Get-CimInstance Win32_Share | Where-Object { $_.Type -match '0|2147483648' } | Select -Unique )
ForEach ( $Share In $Shares ) { Get-ChildItem -Path $Share.Path -File -Recurse -ErrorAction Ignore | Select -Unique -ExpandProperty Extension }

我将留给您分割线以匹配您的特定样式并输出到文件,(建议您考虑使用Out-File代替>

,

您可以尝试Get-SMBShare cmdLet:

Get-SMBShare | Foreach {
  Get-ChildItem "\\$($_.name)" | Select-Object Extension -Unique
}
,

谢谢你们的帮助!我能够弄清楚。

以下脚本将收集共享文件夹上的所有扩展名,对其进行排序,消除重复和空白行,在扩展名前添加“ *”,并创建包含结果的文件list.txt。

#get shares
$Shares = @( Get-CimInstance Win32_Share | 
Where-Object { $_.Type -match '0|2147483648' } | 
Select -Unique )

#list all extensions
ForEach ( $Share In $Shares ) { Get-ChildItem -Path $Share.Path -File -Recurse -ErrorAction Ignore | Select -Unique -ExpandProperty Extension | out-file C:\extensions\List1.txt -append }

#remove empty lines
@(gc C:\extensions\List1.txt) -match '\S'  | out-file C:\extensions\List2.txt

#Add * before extention type
gc C:\extensions\List2.txt | %{"*$_"} | out-file C:\extensions\List3.txt

#Sort by name
gc C:\extensions\List3.txt | sort | get-unique > C:\extensions\List4.txt

#Remove duplicates
$hash = @{}      
gc C:\extensions\List4.txt | 
%{if($hash.$_ -eq $null) { $_ }; $hash.$_ = 1} > C:\extensions\List.txt

#Delete list1-4
Remove-Item C:\extensions\List1.txt,C:\extensions\List2.txt,C:\extensions\List3.txt,C:\extensions\List4.txt

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。