我有一个简单的PowerShell脚本来检查网络上计算机上BitLocker驱动器加密的状态。我希望脚本能够确定文本文件中多台计算机的状态。
到目前为止,我的基本剧本是Nathan Rice帮助的:
$TextFilePath = Read-Host "What is the path to the text file?"
If (Test-Path $TextFilePath) {
$ComputersArray = Get-Content $TextFilePath
ForEach ($Computer in $ComputersArray) {
If (Test-Connection $Computer -Count 1) {
$ComputerStatus = manage-bde -status -cn "$Computer"
Write-Host($ComputerStatus)
} Else {
Write-Host("$Computer appears to be offline.")
}
}
} Else {
Write-Error "The text file was not found, check the path."
}
我修改了代码,但它只将一个结果写入文本文件,这意味着如果列表中有5台计算机,它只会写入第一台计算机的结果:
$TextFilePath = Read-Host "What is the path to the text file?"
If (Test-Path $TextFilePath){
$ComputersArray = Get-Content $TextFilePath
ForEach ($Computer in $ComputersArray) {
If (Test-Connection $Computer -Count 1) {
$ComputerStatus = manage-bde -status -cn "$Computer" |
Out-File -filepath "c:\users\enduser\Bitlocker-Status.txt"
} Else {
Write-Host("$Computer appears to be offline.")
}
}
} Else {
Write-Error "The text file was not found, check the path."
}
我希望将每个设备的结果写入列表。
答案 0 :(得分:3)
创建结果集合。循环之后,将集合写入文件。
$TextFilePath = Read-Host "What is the path to the text file?"
If (Test-Path $TextFilePath){
$ComputersArray = Get-Content $TextFilePath
$ComputerStatusCol = @()
ForEach ($Computer in $ComputersArray) {
If (Test-Connection $Computer -Count 1){
$ComputerStatus = manage-bde -status -cn "$Computer"
$ComputerStatusCol += $ComputerStatus
} Else {
Write-Host("$Computer appears to be offline.")
}
}
$ComputerStatusCol | Out-File -filepath "c:\users\enduser\Bitlocker-Status.txt"
} Else {
Write-Error "The text file was not found, check the path."
}
答案 1 :(得分:2)
您需要将参数-Append
添加到Out-File
,以便将输出附加到现有内容而不是替换它:
$ComputerStatus = manage-bde -status -cn "$Computer" |
Out-File -filepath "c:\users\enduser\Bitlocker-Status.txt" -append -force
答案 2 :(得分:0)
易于管理员使用的批处理文件。只需在我的一位客户AD Networks上进行设置即可,就像魅力一样: 设置一个.cdm文件,将其转储到netlogon文件夹中 脚本: echo计算机:%ComputerName%,用户名:%username%-驱动器C的Bitlocker检查:>>“ \ server \ share \ folder \ BitlockerCheck.log” manage-bde -status c:>>“ \ server \ share \ folder \ BitlockerCheck \ BitlockerCheck.log”
确保每个人都可以访问共享路径(域用户)编辑要在其中运行的容器的组策略(永远不要触摸默认域策略,如果您希望每个人都在顶部和名称上创建新策略Bitcloker状态检查)。 转到用户配置-策略-Windows设置-脚本右键单击登录,属性,添加-浏览到\ dcname \ netlogon \ filename.cmd单击确定,大约15分钟后(无需强制gpupdate),该文件将在用户登录时开始填充/ logoff。
在非BitLocker计算机上,它将显示计算机名称和用户,但不包含任何信息。在非常大的网络上可能很麻烦,但是您可以按OU拆分Gp脚本并分隔文件,因为大多数大公司没有所有人在一个容器中。