希望有人可以帮忙,因为我在这里碰到了一点我的头... 我有一个简单的CSV文件,2列,1个用于HostName,1个用于密码。 例如;
主机名,密码
计算机1,密码1
计算机2,密码2
等
我需要做的是根据运行脚本的设备的HostName从CSV读取密码。 这是针对BitLocker PIN加密的,因此我不会在当前的PowerShell脚本中指定PIN,而是从CSV读取值并使用它进行加密。
干杯,
答案 0 :(得分:1)
通常,您可以获取对象(CSV)文件并使用where-object进行过滤。一旦将其填入变量,您就可以使用"来调用该属性。"
$Comp1 = Get-MyCSV | Where {$_.HostName -eq Computer1}
$Comp1.Password
答案 1 :(得分:0)
现在解决了感谢输入的问题。
$ InSecureString = Import-Csv" C:\ EncryptionPasswords.csv" $ BitLockerPassword = $ InSecureString.Where({$ PSItem.ComputerName -eq $ env:COMPUTERNAME})。密码 $ BitLockerPassword
然后调用$ BitLockerPassword变量并转换为SecureString。
答案 2 :(得分:0)
每次需要根据主机名检索密码时,使用Where-Object
的替代方法是从值中创建hashtable
:
$LookupTable = @{}
Import-Csv .\passwords.csv |ForEach-Object {
$LookupTable[$_.HostName] = ConvertTo-SecureString $_.Password -AsPlainText -Force
}
现在,您可以直接从哈希表中检索相应的密码作为安全字符串:
$MachineName = $env:ComputerName
Enable-BitLocker -MountPoint "C:" -Pin $LookupTable[$MachineName] -TPMandPinProtector