标签: powershell

使用 icacls 授予“所有子文件夹和文件”修改权限,但仅将读取权限授予顶级文件夹

我们的其中一台 Windows 服务器上有一些用户文件夹,但权限却很糟糕。我想要它SYSTEM并Domain Admins完全控制所有文件夹。我希望用户只读取顶级文件夹(这是他们的主文件夹)并修改所有子文件夹和文件。这可以通过 GUI 轻松完成,但我不知道如何编写脚本。

我从我的 PowerShell 脚本调用 icacls,因为 get-acl 和 set-acl 是主要的 PITA。如果我必须使用它们,我并不反对,但我想调用 icacls 会更容易。这是我必须到目前为止的相关代码:

icacls.exe $folder /grant '$domain\$user:(OI)(CI)(M)'
icacls.exe $folder /grant 'SYSTEM:(OI)(CI)(F)'
icacls.exe $folder /grant '$domain\domain admins:(OI)(CI)(F)'
Run Code Online (Sandbox Code Playgroud)

如您所见,我正在使用icacls.exe $folder /grant '$domain\$user:(OI)(CI)(M)'. 我无法弄清楚如何使修改仅适用于子文件夹和文件,同时将只读授予顶级文件夹。

所需的权限结构如下所示(只是为了清楚起见):

-Users  
--M  
---Marra (read only to me)  
----Documents (Modify)  
----Scripts(Modify)  
----Etc (Modify)  
Run Code Online (Sandbox Code Playgroud)

什么是正确的 icacls 语法,或者我如何使用 set-acl 在 PS 中进行本机操作?

scripting windows powershell file-permissions icacls

4
推荐指数
1
解决办法
7万
查看次数

PowerShell 启动作业输出

当我Start-Job {dir}在 PowerShell 中运行命令时,我得到输出

Id              Name            State      HasMoreData     Location             Command
--              ----            -----      -----------     --------             -------
43              Job43           Running    True            localhost             dir
Run Code Online (Sandbox Code Playgroud)

我怎样才能让这个工作把它的输出写到控制台?

powershell console

4
推荐指数
1
解决办法
9268
查看次数

低用户权限的 Active Directory 管理

我们的问题:

客户端,一个普通用户,必须能够一次重置多个密码。一口气打了30个左右。这将需要 powershell 或类似的东西,但对于 AD 和 Powershell,需要是域管理员。

我的解决方案是创建一个在 AD 服务器上运行的服务并从程序获取连接。然后该服务将进行 AD 更改。

到目前为止一切顺利,我只想听听关于这个问题的其他一些想法。因为我肯定不会是唯一一个拥有它的人

powershell active-directory autoit windows-server-2008-r2

4
推荐指数
1
解决办法
131
查看次数

是否可以使用命令清除 AD 用户和计算机中的寻呼机字段?

我需要运行 100 个用户名的列表并清除他们的 Pager 字段,可以使用 Power Shell 完成吗?包含用户名的文件名输入如下所示:itaig haruth geloos fested

powershell active-directory

4
推荐指数
1
解决办法
3570
查看次数

接收 Exchange 2010 发送和接收的电子邮件总数

我们正在使用 Exchange 2010。我想检索 30 天内来自工作场所所有用户的已发送电子邮件总数和已接收电子邮件的列表。该列表应包含所有用户的姓名,然后是发送和接收的电子邮件总数。

我已经尝试了下面的示例代码,并试图将其更改为无济于事。

Get-MessageTrackingLog -Recipients user01@yourdomain.com -start “10/22/2011 00:00:00” -end “11/21/2011 11:59:00” -EventId "receive" | measure-object

Get-MessageTrackingLog -sender user01@yourdomain.com -start “10/22/2011 00:00:00” -end “11/21/2011 11:59:00” -EventId "send" | measure-object

powershell exchange-2010

4
推荐指数
1
解决办法
4万
查看次数

使用powershell管理Windows防火墙是否容易甚至可能?

我正在服务器 2012 环境中进行一些 POC 测试,在初始防火墙配置期间,当我真的更愿意编写脚本时,我发现自己反复进入 GUI。我四处搜索,但找不到任何关于 3.0 中新的 powershell 命令的信息,也没有通过 WMI 找到任何信息。

有什么我遗漏的或者这仍然主要是面向 GUI 的任务吗?

windows powershell wmi windows-firewall windows-server-2012

4
推荐指数
1
解决办法
157
查看次数

仅使用 powershell 压缩文件

作为简单备份例程的一部分,我正在尝试将单个目录中的所有文件压缩到不同的文件夹中。

代码运行正常,但不生成 zip 文件:

$srcdir = "H:\Backup"
$filename = "test.zip"
$destpath = "K:\"

$zip_file = (new-object -com shell.application).namespace($destpath + "\"+ $filename)
$destination = (new-object -com shell.application).namespace($destpath)

$files = Get-ChildItem -Path $srcdir

foreach ($file in $files) 
{
    $file.FullName;
    if ($file.Attributes -cne "Directory")
    {
        $destination.CopyHere($file, 0x14);
    }
}
Run Code Online (Sandbox Code Playgroud)

任何想法我哪里出错了?

powershell compression

4
推荐指数
2
解决办法
3万
查看次数

用于从多个文件夹复制名为“dat”的文件的 Powershell 脚本

我正在尝试复制一个名为“dat”的文件。该文件没有扩展名。问题是在父文件夹“个人”下我有 500 个文件夹,所有这 500 个文件夹都有“dat”文件。我有兴趣复制所有这些“dat”文件并将它们放在我的目标目录中。

因此,当我将这些“dat”文件粘贴到目标目录中时,我希望将它们命名如下:

“Folder_they_were_residing_in.dat”

因此,所有 dat 文件都将重命名为它们所在的文件夹名称,扩展名为“dat”。

这可能吗?

powershell windows-7

4
推荐指数
1
解决办法
1509
查看次数

在 Windows 2012 上从 PowerShell 挂载 NFS 并在其他地方可见

我想使用 PowerShell 从 Windows 2012 挂载 NFS 共享,并使该挂载在调用它的 PowerShell 会话以外的上下文中可见。如果我使用 New-PSDrive 命令(cmdlet?),例如:

New-PSDrive Z -PsProvider FileSystem -Root \\10.40.1.1\export\isos
Run Code Online (Sandbox Code Playgroud)

然后它将 NFS 服务器安装到 Z 驱动器,但我无法在文件资源管理器中访问该驱动器。

powershell nfs windows-server-2012

4
推荐指数
2
解决办法
3万
查看次数

Powershell 两次显示属于组成员的用户 - 一次直接一次间接

我已经开始设置组,如:

  • 部门人员
    • 部门主管
      • 系主任

其中部门主管是部门员工的成员,部门主管是部门主管的成员。

我知道如何使用 powershell 列出一个人所属的组,可以是直接分配的组,也可以是通过嵌套组继承的组。

但是我想弄清楚的是一个脚本,它将直接和间接地向我显示属于这些组之一的所有用户,例如。用户 A 是部门员工和部门主管的直接成员。

我的谷歌搜索未能找到或编写可以做到这一点的脚本。

编辑:

实际上,嵌套的层数和分支更多,部门也很多,所以很混乱。我想获得直接属于任何组的成员列表,以及间接属于同一组的成员,以便我可以删除多余的组直接成员资格。

powershell active-directory

4
推荐指数
1
解决办法
3134
查看次数