首页 > 代码库 > PowerShell 扩展工具第四波!

PowerShell 扩展工具第四波!

本次扩展我们带来命令用于管理您的文件/文件夹权限,以及帮助您迁移您的文件服务器

Get-FileAccessRules
该命令将获取目标路径上的访问权限如下图
该命令将获取目标路径上的访问权限 
当然如果你需要获取该路径的文件/文件夹所有者 可以使用Get-ACL(该命令为系统命令)

当然如果你需要获取该路径的文件/文件夹所有者 可以使用Get-ACL(该命令为系统命令)
 

Remove-FileAccessRules
该命令将删除指定位置的访问权限

该命令将删除指定位置的访问权限
 
我们通过 Get-FileAccessRules 获取特定的访问权限,通过管道将其传入进行删除
注意 当目标存在权限继承的时候 若要删除的访问权限 处于继承状态那么将无法删除(非Bug)
New-FileAccessRules
该命令将生成指定的访问权限
 该命令将生成指定的访问权限
当然你还可以指定继承,传播继承等标识
 当然你还可以指定继承,传播继承等标识

Add-FileAccessSecurity
该命令将把指定的访问权限添加到指定路径的文件/文件夹的安全列表中

该命令将把指定的访问权限添加到指定路径的文件/文件夹的安全列表中
 
$acl = New-FileAccessRules -Rights FullControl -Action Deny -Principal "ilyncalice"  -InheritanceFlags

ContainerInherit -InheritanceLevel Inherited
Add-FileAccessSecurity -Path "win209 estasda2d1spowershell scriptdemocode" -Rule $acl

我们使用New-FileAccessRules 命令创建一个继承的权限 通过 Add-FileAccessSecurity 命令将其附加到指定的文件/

文件夹上

下面我们将介绍本次发布扩展中的重量级命令
Get-MigrateReport
该命令将测试即将进行迁移的源路径,目标路径 权限要求以及EFS加密等信息在以帮助您确定您要迁移的源/目标路径

从而保证漫长的迁移成功

该命令将测试即将进行迁移的源路径,目标路径 权限要求以及EFS加密等信息在以帮助您确定您要迁移的源/目标路径 从而保证漫长的迁移成功
 
我们将该命令结果放入一个变量$1
我们将该命令结果放入一个变量$1 
该变量中存在下面4个属性分别为
EFSDirectory 该属性中包含源路径中所有受到EFS 加密的文件夹
EFSFiles      该属性中包含源路径中所有受到EFS 加密的文件
ErrorDirectory该属性中包含源路径中所有当前账户无权限读取,或者权限不足的文件夹
ErrorFiles     该属性中包含源路径中所有当前账户无权限读取,或者权限不足的文件
我们处于迁移源路径中 执行迁移动作的用户权限。我们只要求满足 “读取”这一权限,其中包括读取执行,读取权限,

读取扩展属性 当然如果拥有完全控制一样满足要求
当迁移源路径中存在EFS 加密的文件/文件夹,权限不足的文件/文件夹时候我们将会使其跳过迁移避免失败
您可以使用该命令结果中返回的信息对您的源进行细致的检查,若您确定忽略这些问题那么这些文件/文件夹在迁移的

时候将会跳过,不会影响源,以及迁移过程。

Migrate-File该命令将允许您迁移您的文件/文件夹
该命令支持 本地路径 共享路径以及映射的网络驱动器作为迁移源,迁移目标路径
同时在迁移时跳过无权限,权限不足,以及经过EFS 加密的文件/文件夹
Migrate-File -Source dc25012123 -Target win209 estasda2d1s  -Share
该命令指明迁移源,迁移目标路径 其中当迁移源路径为共享路径时 请添加Share
参数 以启用命令对共享路径做迁移源的支持

参数 以启用命令对共享路径做迁移源的支持

参数 以启用命令对共享路径做迁移源的支持

参数 以启用命令对共享路径做迁移源的支持
 
其中该命令的结果同 Get-MigrateReport 结果一样保存了无权限,受EFS 加密的文件夹/文件 如果完成结果提示 “我

们在移过程中发现错误相关日志已经记录” 那么将会在迁移目标跟路径下生成Error.log 的日志文件
下面我们对该命令的高级参数进行介绍
BufferMB 参数 该参数指明在迁移过程中 用于作用写入缓存的内存大小 若文件大小小于该值则该值无效 默认为100
ReadLength 参数 该参数指明在迁移过程中用作一次性最大读取文件大小若当前文件大小小于该数值,则不启用文件

分割传

输否则启用分割传输 默认为 512
以上两个参数 在迁移较大文件时有助于提高迁移效率,但是会增加PowerShell 的内存使用 若迁移到共享路径不恰当修改

这两个参数将降低网络利用率。
下图是这两个参数生效时的截图

两个参数生效时的截图
 
下表中列出受支持的迁移源/迁移目标组合




 本地路径 映射网络路径 共享路径
 迁移源 支持 支持 支持
 迁移目标 支持 支持 支持



 蓝色字体表示 需要添加Share参数
注意  Migrate-File,Get-MigrateReport 这两个命令不支持文件/文件夹的动态添加,
若在迁移/运行测试之间对文件夹进行添加/删除 那么添加的文件夹/文件将不会被识别,
删除的文件/文件夹可能出现警报/失败 ,同时 Migrate-File 命令不支持增量迁移 处于目标路径中的任何同名文件/文件

夹都将被覆盖操作前做好备份。


Snapin 下载 百度云: http://pan.baidu.com/s/1o60Xuo6
该Snapin 信息适用Windows Server 版本2012/2012 R2
框架版本 .NetFramework 4.0
当前Snapin 版本1.0.0.0
最低WindowsPowerShell 版本 2.0
下表列出该Snapin 经过测试的平台



 目标平台 可用
 Windows Server 2012R2 YES
 Windows Server 2012 YES
 Windows Server 2008R2 未测试
 Windows Server 2008 未测试



请勿在生产环境使用该命令,如果确要在生产环境中使用,请做好充分测试


上海联科教育以及作者对该命令在生产环境中出现任何非预期行为不承担任何责任

 ---本文档由联科教育(http://www.iLync.cn)田梦博 原创提供,如有问题请电话:021-60745131---

 


本文出自 “iLync” 博客,请务必保留此出处http://ilync.blog.51cto.com/6203086/1577506

PowerShell 扩展工具第四波!