使用Powershell管理文件
使用Powershell管理文件
本章完成:
- 完成文件、文件夹的创建、删除
- 文件权限的修改
- 文件的重命名
1、环境准备
主机名 | IP地址 | 网关 | 服务 |
---|---|---|---|
Windows001 | 10.1.220.101 | 10.1.220.254 |
2、管理文件
1.创建文件:
此命令在当前目录中创建名为“test1.txt”的文本文件。 点 (“.” Path 参数的值中的) 指示当前目录。 Value 参数后面的带引号的文本作为内容添加到文件中。
# 创建
# 在当前目录中创建文本文件
New-Item -Path . -Name "test1.txt" -ItemType "file" -value "你好!"
2.创建文件夹:
此命令在驱动器中创建名为“Logfiles”的
C:
目录。 ItemType 参数指定新项是目录,而不是文件或其他文件系统对象。
# 创建文件夹
# -Path "c:\" 指定文件夹位置
# -Name "testdir" 设置文件夹名称
# -ItemType "directory" 设置文件类型
New-Item -Path "c:\" -Name "testdir" -ItemType "directory"
3.在不同的目录中创建目录:
此示例在“C:\Test”目录中创建新的 Scripts 目录。
新目录项的名称“Scripts”包含在 Path 参数的值中,而不是在 Name 的值中指定。 根据语法,任一种命令形式都是有效的。
# 在其他目录创建文件夹
New-Item -ItemType "directory" -Path "c:\test\scripts"
4.查看文件夹:
# 查看当前目录
Get-Item .
# 查看目录下所有文件
Get-Item *
# 查看指定目录下的文件
Get-Item E:\*
5.查看文件夹属性:
此示例获取目录的
C:\Windows
LastAccessTime 属性。 LastAccessTime 只是文件系统目录的一个属性。 若要查看目录的所有属性,请键入(Get-Item <directory-name>) | Get-Member
(Get-Item C:\Windows).LastAccessTime
6.删除文件:
# 删除文件
# -recurse 递归
Remove-Item .\test1.txt
# 修改
Rename-Item -Path "test1.txt" -NewName "test2.txt"
3、管理文件夹权限
PowerShell可以用来管理文件夹权限。以下是一些常用的PowerShell命令来管理文件夹权限:
1.获取文件夹权限:
可以使用
Get-Acl
命令来获取文件夹的权限信息。例如,要获取 “C:\Folder” 文件夹的权限信息,可以运行以下命令:
Get-Acl -Path "C:\Folder"
2.修改文件夹权限:
可以使用
Set-Acl
命令来修改文件夹的权限。例如,要将 “C:\Folder” 文件夹的权限设置为只允许管理员有完全控制权限,可以运行以下命令:扫描二维码关注公众号,回复: 17247125 查看本文章
$acl = Get-Acl -Path "C:\Folder"
$accessRule = New-Object System.Security.AccessControl.FileSystemAccessRule("Administrators","FullControl","Allow")
$acl.SetAccessRule($accessRule)
Set-Acl -Path "C:\Folder" -AclObject $acl
3.添加文件夹权限:
可以使用
Add-AccessControlEntry
命令来添加新的权限条目。例如,要将 “C:\Folder” 文件夹的权限添加一个新的用户组 “Users” 并授予只读权限,可以运行以下命令:
$rule = New-Object System.Security.AccessControl.FileSystemAccessRule("Users", "Read", "Allow")
$folder = "C:\Folder"
$acl = Get-Acl $folder
$acl.SetAccessRule($rule)
Set-Acl $folder $acl
4.删除文件夹权限:
可以使用
Remove-AccessControlEntry
命令来删除文件夹的权限条目。例如,要删除 “C:\Folder” 文件夹的一个特定用户的权限,可以运行以下命令:
$folder = "C:\Folder"
$acl = Get-Acl $folder
$rule = $acl | Where-Object {
$_.IdentityReference -eq "skills.com\administrator" }
$acl.RemoveAccessRule($rule)
Set-Acl $folder $acl