这是我根据自己的在线研究编写的脚本,但我对 PowerShell 不熟悉,不知道第一行具体做什么。如果脚本在 Windows 10 PC 上本地运行,是否需要它,还是仅适用于 Windows 服务器上的域/Active Directory/?
该脚本的目的是使用 PowerShell 控制台检索 Bitlocker 恢复密钥的副本。
这是我目前的脚本:
# what does this line do?
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned
# move to script folder to run ".\Get-BitlockerRecovery.ps1"
cd PS_scripts
# run ".\Get-BitlockerRecovery.ps1"
.\Get-BitlockerRecovery.ps1
# return to starting point
cd ..
以下是“.\Get-BitlockerRecovery.ps1”中的代码:
# Identify all Bitlocker volumes
$BitlockerVolumers = Get-BitLockerVolume
# For each volume (object), get the RecoveryPassowrd and display it.
$BitlockerVolumers |
ForEach-Object {
$MountPoint = $_.MountPoint
$RecoveryKey = [string]($_.KeyProtector).RecoveryPassword
if ($RecoveryKey.Length -gt 5) {
Write-Output ("The drive $MountPoint has a recovery key $RecoveryKey.")
}
}
我发现了这一点,但不完全明白它是否适用于我的情况,因为它提到“适用于 Windows 服务器计算机”。
RemoteSigned。要求从 Internet 下载的所有脚本和配置文件都由受信任的发布者签名。Windows 服务器计算机的默认执行策略。
链接:https://docs.microsoft.com/en-us/powershell/module/microsoft.powershell.security/set-executionpolicy?view=powershell-7.1
再次强调,我是 PowerShell 新手,所以请使用 ELI5。
另外,如果您在其他地方发现任何其他错误,请告诉我。
答案1
我是 PowerShell 新手,不知道第一行到底起什么作用。
PowerShell 的设计比批处理更安全。因此,默认情况下,Windows 会限制运行 PowerShell 脚本。如果该脚本(可能未经授权)正在下载恶意软件或创建其他安全漏洞,则允许脚本执行会很危险。
在第一行的情况下,设置了执行策略(对脚本的限制),以便在本地创建的脚本可以毫无问题地运行,但是由 Windows 确定从另一台计算机(例如互联网)获取的脚本会受到额外的限制。
如果脚本在 Windows 10 PC 上本地运行,是否需要它?
据我所知,新安装的(非服务器)Windows 不允许自动运行 PowerShell 脚本——需要设置执行策略才能允许脚本运行(尽管非 Windows 计算机的执行策略显然Unrestricted
从 PowerShell 6.0+ 开始设置为允许脚本运行)。但是,这不一定需要为每个脚本都执行。也就是说,您可以从命令行更改这些设置一次,而不是逐个脚本更改。
我发现了这一点,但不完全明白它是否适用于我的情况,因为它提到“适用于 Windows 服务器计算机”。
它表明这RemoteSigned
是 Windows Server 上 PowerShell 的默认执行策略,而不是Undefined
(我相信)非服务器版本的 Windows - 并不是说它仅适用于 Windows Server。