1K+ 次浏览
顾名思义,使用 –Timeout 参数,您可以限制 –Wait 和 –For 参数的验证时间(重启后 PowerShell、WinRM 和 WMI 连接检查),如果检查在此时间内未完成,则会返回错误。此超时值为秒。您可以将此参数与 –Wait 或 –For 参数一起指定,但对于 –For 参数,您还需要包含 –Wait 参数。当 -Timeout 与 –Wait 参数一起指定时,整体检查(3 个验证:PowerShell、WMI 和 WINRM 连接)的整体检查时间以秒为单位限制,当它与 –For ... 阅读更多
265 次浏览
在 –Wait 参数中,验证 3 个主要检查 - PowerShell、WMI 和 WINRM 连接。因此,每当您指定 –Wait 参数时,您都必须等到所有三个检查都通过,但是,如果任何检查失败,脚本就会冻结并且无法进一步执行。如果您知道要执行哪个特定检查,则可以使用 –For 参数指定该值,如下所示。在这里,例如,我们将对远程服务器运行单个 WMI 检查。Restart-Computer Test1-Win2k12 -Wait -For Wmi -Force -For 参数必须与 –Wait 参数一起使用。在这里,同样,如果出现问题 ... 阅读更多
2K+ 次浏览
当我们使用带有远程计算机名称的 Restart-Computer 命令时,PowerShell 会重启提到的远程计算机,而不会检查或验证服务器是否已启动。此要求通过 -Wait 参数来实现。每当指定 -Wait 参数时,PowerShell 都会在计算机重启时对远程计算机执行以下 3 个检查。这可以在 PowerShell 控制台的进度条中注意到。PowerShell - 如果计算机可以在远程计算机上运行 Powershell 命令。WMI - 使用 Win32_ComputerSystem 命令对远程计算机执行 WMI 查询。WINRM - 检查远程 ... 阅读更多
要重启远程计算机,您需要使用计算机名提供的 Restart-Computer 命令。例如,Restart-Computer -ComputerName Test1-Win2k12 上述命令将自动重启计算机 Test1-Win2k12,如果您有多台远程计算机要重启,则可以使用逗号 (,) 分隔多台计算机。例如,Restart-Computer -ComputerName Test1-Win2k12, Test2-Win2k12 在上面的示例中,重启信号将同时发送到两台计算机。您还可以使用管道来重启远程计算机。例如,"Test1-Win2k12", "Test2-Win2k12" | Restart-Computer -Verbose 或 (Get-Content C:\Servers.txt) | Restart-Computer -Verbose 一些服务器依赖于其他服务器,因此主服务器 ... 阅读更多
490 次浏览
要使用 PowerShell 生成强密码,我们可以使用 8 个或更多字符的密码。在下面的示例中,我们将使用 8 个字符的密码,您可以根据自己的方便更改字符数。您可以将此脚本绑定到 Windows 窗体,并将其提供给 IT 帮助台,为新用户设置密码。在这个例子中,我们将使用 33 到 126 之间的随机整数并将其转换为字符,考虑到它们是字符的 ASCII 值。您可以在提供的表格中找到更多关于 ASCII 值的信息 ... 阅读更多
要使用不同的凭据复制项目,您需要在 Copy-Item cmdlet 中使用凭据参数。例如,Copy-Item C:\temp\* -Destination \\Remoteshare\c$\temp -Credential (Get-Credential) 或 $creds = (Get-Credential) Copy-Item C:\temp\* -Destination \\Remoteshare\c$\temp -Credential $creds
现在,使用 PowerShell 压缩或提取(解压)文件或文件夹很容易。PowerShell 从 PowerShell 5.1 版本添加了 Archive 模块 (Microsoft.PowerShell.Archive) 的功能。如果您有较旧版本的 PowerShell(版本 4.0 或更低版本),则可以从网站或通过命令行下载并安装该模块。但是,仅下载和安装或手动将 Archive 模块复制到 Module 文件夹不会起作用,因为它需要 .Net framework 4.5 提供的一些依赖 DLL 文件,因此如果您低于 4.5,则还需要考虑升级 .Net framework ... 阅读更多
3K+ 次浏览
当您编写脚本时,如果您希望用户从多个值中选择一个选项,并根据该选项执行命令,我们通常可以使用 Switch 命令,为此,我们将在下面的脚本中询问用户选择。还有另一种 .Net 方法可以创建用户菜单,我们将在上面提到的描述的示例之后看到它。a. Switch 命令方法对于基于 Switch 命令的用户选择,我们将首先显示给用户的提示信息,然后通过 Read-Host 命令让用户进行选择,如下所示 ... 阅读更多
11K+ 次浏览
SSL 证书对于网站来说非常重要。它们通过激活 HTTPS 安全连接,在客户端和服务器端之间安全地交换信息方面起着关键作用。在下面的文章中,我们将使用 PowerShell 获取证书的有效期(开始日期和过期日期)。为此,我们需要发出 httpwebrequest,但在此之前,我们将忽略以下命令的 SSL 警告。[Net.ServicePointManager]::ServerCertificateValidationCallback = {$true} 然后我们将通过调用 .Net 类来发出 HTTP web 请求。$url = "https://www.microsoft.com/" $req = [Net.HttpWebRequest]::Create($url) 当我们检查 ... 阅读更多
8K+ 次浏览
PowerShell 中的 Try/Catch 块用于处理脚本中产生的错误。具体来说,错误应该是终止错误。PowerShell 中的 Finally 块并非每次都必须与 Try/Catch 一起编写,但它无论是否发生错误都会执行。因此,当您使用 Try 块时,Catch 块是必须的,但 Finally 块不是必须的。带有终止错误的 Try/Catch 块 - 下面是无 finally 块的终止错误示例。示例 try { 这是不允许的 "这是允许的" } catch { Write-Host "发生错误" -BackgroundColor DarkRed } 输出 PS C:\WINDOWS\system32> ... 阅读更多