2017-04-21 114 views
0

我发现了this PowerShell script,并链接到了其他变体。它是一个将NTFS文件权限导出到CSV文件的简单脚本,因此我可以稍后编辑并放入一个新的域名。然后用另一个脚本导入它。试图在Powershell中运行脚本只是将光标挂在脚本末尾

当我尝试运行脚本时,替换我的变量,PowerShell挂在光标上。它在我测试的5台服务器上执行此操作。我在做什么错误运行这个脚本?有我复制并粘贴错了或做我必须做的事情在PowerShell中事情就可以工作

这是我试图运行脚本:

Get-ChildItem "C:" -Recurse | ?{ $_.PsIsContainer } | %{ $Path = $_.FullName 
    # Exclude inherited rights from the report 
    (Get-Acl $Path).Access | ?{ !$_.IsInherited } | Select-Object ` 
    @{n='Path';e={ $Path }}, IdentityReference, AccessControlType, ` 
    InheritanceFlags, PropagationFlags, FileSystemRights } | Export-CSV "c:\temp\Permissions.csv" 
+2

用''_。''在'$ .PsIsContainer'和'$ .FullName'上修复'$ .' –

+0

当你说“挂起”时,你知道必须按两次输入,对吗?并且你正在列出并获取每个文件和文件夹,然后过滤掉这些文件,然后在C盘上的每个文件夹中获取ACL,这可能是大约25万或更多,并且不会有它运行时的任何可见输出? – TessellatingHeckler

+0

感谢Micky和JPBlanc。菜鸟的错误,我确实再次点击Enter,因为光标挂在脚本的末尾,这次它工作并创建了permissions.csv文件。现在的问题是,如果我将路径“C:\”更改为单个文件夹以测试如“C:\ TestFolder”,则无输出。但是如果我在我的例子中离开C:\条目,它会输出所有的C(大部分是C,因为你是对的Micky做C的所有可能需要一段时间,所以我做了Ctrl + C打破)除相同的表格显示数字的长整数。我需要做什么来获得一个文件夹的工作? – forums712

回答

0

重试这一个:

Get-ChildItem "C:\" | ?{ $_.PsIsContainer } | %{ $Path = $_.FullName; (Get-Acl $Path).Access | ?{ !$_.IsInherited } | Select-Object @{n='Path';e={ $Path }}, IdentityReference, AccessControlType, InheritanceFlags, PropagationFlags, FileSystemRights } | Export-CSV "c:\temp\Permissions.csv" 

保持它一条线,我改变$.PsIsContainer$_.PsIsContainer$.FullName$_.FullName;纠正语法和指令分开,我删除的评论。它对我来说就像那样。

+0

感谢JP,我确实发现我的问题是我没有打到第二次输入并且在那之后工作,但是现在我的问题出现在我在Micky的帖子中添加的评论中。你能帮助你如何输出一个文件夹吗?哦,我确实尝试了你编辑过的一行脚本,并且只能使用C语言,但只能输出20行,不会像原始脚本那样长。我会很乐意使用你的。谢谢,吉米K – forums712

相关问题