79K+ 次浏览
环境变量是操作系统的重要组成部分。它们存储各种信息,例如系统文件和文件夹的路径、系统运行的处理器数量、当前用户详细信息等等。进程和程序利用这些环境变量来检索其执行所需的数据。PowerShell 中的环境变量存储为 PS 驱动器 (Env:)。要检索操作系统中存储的所有环境变量,可以使用以下命令:Get-ChildItem -Path Env:Name Value ---- ... 阅读更多
1K+ 次浏览
防火墙支持三种类型的配置文件:a) 域 b) 公共和 c) 专用配置文件。您可以使用 Windows 防火墙高级安全设置窗口中的 GUI 检查相同的设置,如下所示。您可以使用 Get-NetFirewallProfile 命令检查上述设置。Get-NetFirewallProfile | Select Name, Enabled Name Enabled ---- ------- Domain True Private True Public True 要使用 PowerShell 关闭或禁用上述配置文件,您需要使用命令 Set-NetFirewallProfile。要禁用特定配置文件,请使用 -Profile 参数。您可以传递 3 个不同的配置文件 ... 阅读更多
2K+ 次浏览
最新的 Windows 客户端和服务器操作系统(如 Windows 10、Windows Server 2008 及更高版本)支持高级防火墙版本,它们主要有 3 个配置文件:域、公共和专用配置文件。要使用 GUI 获取设置,您需要在框中搜索“具有高级安全性的 Windows 防火墙”或“具有高级安全性的 Windows Defender 防火墙”。然后,您可以在控制台中看到 3 个可用的配置文件。可以使用 PowerShell Get-NetFirewallProfile 命令查看上述相同的设置。PS C:\> Get-NetFirewallProfile Name : Domain Enabled : True DefaultInboundAction : NotConfigured DefaultOutboundAction : NotConfigured AllowInboundRules : NotConfigured AllowLocalFirewallRules : NotConfigured AllowLocalIPsecRules : NotConfigured AllowUserApps : NotConfigured AllowUserPorts : NotConfigured ... 阅读更多
6K+ 次浏览
早些时候我们使用 telnet 客户端来检查远程端口连接,事实上,我们仍然在 cmd 和 PowerShell 中使用它,但是此功能并非默认安装在操作系统中,而且有些公司限制安装新的功能,包括 telnet。我们可以利用 PowerShell 来测试远程端口连接,无需安装 telnet,并且可以使用 Test-NetConnection 命令。此命令对于其他诊断也很有用,但我们在这里关注的是远程端口检查。要检查远程端口是否打开,我们可以使用 Test-NetConnection 命令,它 ... 阅读更多
9K+ 次浏览
要使用 PowerShell 更改、添加或删除文件或文件夹上的安全权限,您可以使用 Set-Acl 命令。如果您需要在目标路径上设置相同的权限,则设置权限的最佳方法是从另一个文件或文件夹复制权限。例如,我想将源 C:\Shared\ 的相同文件夹权限复制到目标文件夹路径 c:\shared1 路径。您可以使用任何目标路径,它可以是远程共享的 UNC 路径。查看上述安全权限的差异,名为 Shared 的文件夹分配了一个额外的权限 (LABDOMAIN\Delta)。我们将复制 ... 阅读更多
4K+ 次浏览
要使用 PowerShell 查看 NTFS 权限,我们使用 Get-ACL 命令。此命令在 PowerShell 5.1 或更高版本中受支持。通常,我们如何使用 GUI 在 Windows 操作系统中获取文件夹的安全权限,要使用 PowerShell 获取上面显示的相同权限,请使用以下命令:Get-Acl C:\SharedPS C:\> Get-Acl C:\Shared Directory: C:\ Path Owner Access ---- ----- ------ Shared BUILTIN\Administrators NT AUTHORITY\SYSTEM Allow FullControl...您可以将第一张图像与上述输出进行比较。您可以比较文件夹的所有者,它 ... 阅读更多
681 次浏览
Get-Error cmdlet 在 PowerShell v7 中引入。它显示当前会话中最近的错误消息。当您检查此命令的 get member 时,其输出采用 PSExtendedError 的形式,因此此命令生成的任何输出都是详细的,因此此命令对排查错误消息非常有帮助。PS C:\> Get-Error | gm TypeName: System.Management.Automation.ErrorRecord#PSExtendedError 我们将在 PowerShell 控制台中编写一个命令,该命令最终会生成一个错误。PS C:\> Get-ChildItem c:otexist Get-ChildItem: Cannot find path 'C:otexist' because it does not exist. 上述目录不存在。让我们获取一个 ... 阅读更多
$Errorview 变量确定 PowerShell 中错误消息的显示格式。在 PowerShell 7 之前,主要有两种视图:普通视图(默认视图)类别视图 使用 PowerShell 7 版本,包含一个新的附加错误视图类别,现在 7 版本有 3 个 $ErrorView 类别:简洁视图(默认)普通视图类别视图 我们将逐一了解每个视图。A) 普通视图 它是 PowerShell 7 之前的默认视图,它会生成详细的多行错误,并且有点嘈杂。它包括异常名称、类别、错误的行号等。$ErrorView = 'NormalView' Get-ChildItem C:\NoDirectoryOutputGet-ChildItem : Cannot find path 'C:\NoDirectory' because ... 阅读更多
178 次浏览
PowerShell 7 版本引入了一些新的空运算符。如下所示:空合并运算符 - ??空条件赋值运算符 - ??=空条件成员访问运算符 - ?. 和 ?[] a. 空合并运算符 - ??空合并运算符 ?? 评估左侧条件或操作数,如果它是空值,则评估右侧操作数,否则提供左侧操作数的值。例如,如果没有空合并运算符,我们将编写如下所示的脚本:$Name = $null if($Name -eq $null){"Name is Null"} Else {"PowerShell"} 使用 ?? 运算符可以编写上述相同的条件:$name = $null ... 阅读更多
385 次浏览
PowerShell 函数中的 validateCount 属性用于验证数组的长度,这意味着您可以向参数传递特定数量的参数。在下面的示例中,当我们传递值时,需要数组包含至少 1 个值,最多 4 个值。为此,我们将编写以下脚本:函数 ValidateArray { Param ( [ValidateCount(1, 3)] [String[]]$Animals ) return $PSBoundParameters }输出PS C:\> ValidateArray -Animals Cow, Dog, Cat键 值 --- -----Animals {Cow, Dog, Cat}上述输出有效,但是当我们传递……阅读更多