1

我正在开发一个 Powershell 脚本,我可以使用它在已禁用 TPM 的用户计算机上启用、激活和获取 TPM 的所有权。对于那些不知道的人,TPM 是允许 Bitlocker 正常工作的板载部件。我有几个关于我目前所拥有的以及如何完成我的脚本的问题。我对 Powershell 非常陌生,所以如果我的要求是基本的,我提前道歉。我四处搜索并找到了所有方面的帮助,直到我在脚本中的位置。我发现的大部分内容都指向必须将密码设置为脚本的一部分,但由于我们的域控制器正在处理该部分,因此我试图避免这种情况。我可以走得更远,我也需要。

这是我到目前为止所拥有的:

# This script will find whether or not a specified PC\Laptop 
# has its TPM enabled, activated, and owned 
# All of these are needed in order for Bitlocker to work correctly.
# It will also enable, activate, and assign ownership if
# any of these parameters are not set correctly.
# THE MACHINE THIS IS RUN ON WILL NEED TO BE VPN'D OR PHYSICALLY CONNECTED TO THE DOMAIN

# This sets the variable $Tpm so the longer version of the command is no longer needed
$Tpm = Get-wmiobject -Namespace ROOT\CIMV2\Security\MicrosoftTpm -Class Win32_Tpm 

# This Enables the TPM on the target mahcine
{$Tpm.IsEnabled().isenabled

if ($Tpm.IsEnabled().isenabled -eq "False") {$Tpm.Enable()} 
else {write-host "TPM in Enabled"}
}

# This activates the TPM on the target machine
{$Tpm.IsActivated().isactivated

if ($Tpm.IsActivated().isactivated -eq "False") {$Tpm.Activate()} 
else {write-host "TPM in Activated"}
}

# This takes ownership of the TPM on the target of the machine
# This portion will require user interaction since a acknoledgement 
# will need to be confirmed on the screen.
# There are 3 parts to this portion, Clear, Take Ownership, Authorization

# This will clear the TPM so ownership can be established
{$Tpm.Clear()}

# This will take ownership of the TPM 

我的问题是:

  1. 语法对于我必须工作的内容是否正确?

  2. 由于 Bitlocker 是由域 MBAM MDOP 实例运行的,因此启用 TPM 后是否需要进一步操作?如果是这种情况,请忽略我的其余问题。

  3. 我可以编写一个这样的 Powershell 脚本,让它像批处理文件一样执行这些多个功能吗?

  4. 如果一切都正确,既然我处于清晰阶段并且我需要拥有 TPM 的所有权,我该如何在不需要输入密码的情况下执行此操作,因为我们的域控制器将持有所有密钥和密码字符串?我们不希望允许用户为 Bitlocker 编写自己的密码。

4

2 回答 2

1

语法对于我必须工作的内容是否正确?

我不明白您为什么选择使用 WMI cmdlet 来管理 TPM。您应该能够使用TPM 管理 PowerShell cmdletmanage-bde命令行实用程序。不要重新发明自行车。:)

作为旁注,当您将来尝试通过 PowerShell 访问 WMI 时,请尝试使用CIM cmdlet而不是 WMI。

我可以编写一个这样的 Powershell 脚本,让它像批处理文件一样执行这些多个功能吗?

使用基于 WMI/CIM 的方法,您可以编写自己的模块或函数并运行这些函数或您自己编写的 cmdlet。但是,当有内置的 TPM 管理模块和manage-bde实用程序时,您真的需要编写自己的模块或函数吗?

于 2017-09-26T13:47:56.677 回答
0

您可以使用几个 Trusted​Platform​Module PowerShell cmdlet。我认为他们会申请

首先,为确保您从“clean: tpm”开始,请使用 Clear-TPM cmdlet。

然后使用 Enable-TPM。

在此处阅读更多信息:

https://docs.microsoft.com/en-us/powershell/module/trustedplatformmodule/?view=win10-ps

Dave Franklyn,Windows 和 IT 设备 MVP

于 2018-07-02T13:53:35.187 回答