我正在开发一个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
我的问题是:
我的工作语法是否正确?
一旦启用了TPM,我是否还需要更进一步?因为Bitlocker正在由域MBAM MDOP实例运行?如果是这种情况,请忽略我的其余问题。
我可以编写一个像这样的Powershell脚本来让它像批处理文件一样按顺序执行这些多个功能吗?
如果一切正常,现在我处于清晰的阶段,我需要获得TPM的所有权,我怎么能这样做,因为我们的域控制器将持有所有密码,因此我不需要输入密码键和密钥字符串?我们不希望允许用户为Bitlocker制作自己的密码。
答案 0 :(得分:1)
我的工作语法是否正确?
我不明白为什么您选择使用WMI cmdlet来管理TPM。您应该能够使用TPM management PowerShell cmdlets或manage-bde
命令行实用程序。不要重新发明自行车。 :)
作为旁注,如果您将来尝试通过PowerShell访问WMI,请尝试CIM cmdlets而不是WMI。
我可以像这样写一个Powershell脚本来让它来执行这些 多个函数按顺序就像我要批处理文件一样?
使用基于WMI / CIM的方法,您可以编写自己的模块或函数,并运行函数或自编的cmdlet。但是,当有内置的TPM管理模块和manage-bde
实用程序时,您真的需要编写自己的模块或函数吗?
答案 1 :(得分:0)
您可以使用几个TrustedPlatformModule PowerShell cmdlet。我认为他们会适用
首先,要确保您从“干净:tpm”开始,请使用Clear-TPM cmdlet。
然后使用Enable-TPM。
在此处详细了解它:
https://docs.microsoft.com/en-us/powershell/module/trustedplatformmodule/?view=win10-ps
Dave Franklyn,Windows和IT部门的MVP