Wciąż nowy w PowerShell, ale miałem zadanie dowiedzieć się, jak utworzyć i uruchomić skrypt PowerShell na każdej stacji roboczej w naszej domenie, aby pobierał status Bitlocker, a następnie zapisywał informacje w pliku CSV. Używamy labtech jako naszego zdalnego systemu, więc chcemy uruchomić skrypt na każdej maszynie, ponieważ nasz inżynier nie chce, aby cokolwiek działało na samym DC (pierwotnie zamierzał pobrać wszystkie nazwy stacji roboczych z jednostki organizacyjnej, a następnie sprawdzić status na każdym z nich ). Problem polega na tym, że wydaje się, że pierwsza maszyna, na której skrypt działa, tworzy plik, a następnie przejmuje własność, skutecznie blokując wszystkie inne maszyny przed zapisem do pliku. Doceniamy wszelkie sugestie, aby skierować mnie w dobrym kierunku. Dzięki.
$Computer = hostname
Write-Host "Getting Bitlocker Status..." -ForegroundColor Green
function ErrorLog {
$ErrorMessage = $_.Exception.Message
$Date = Get-Date
$Date ERROR: "$ErrorMessage" | out-file *path* -Append
exit
}
try
{
$Status = manage-bde C: -cn $Computer -status | Select-String "Conversion Status:", "Percentage Encrypted:", "Protection Status:", "Lock Status:"
}
catch
{
ErrorLog
}
finally
{
$Date = Get-Date
"$Date Successful BitLocker Check" | out-file *path* -Append
}
Write-Host "Sending info to CSV file..." -ForegroundColor Green
try{
$ConvStatus = $Status.line | Select-String "Conversion Status:"
$Percentage = $Status.line | Select-String "Percentage Encrypted:"
$LockStatus = $Status.line | Select-String "Lock Status:"
$Object = New-Object PSObject -Property @{
ComputerName = $Computer
ConversionStatus = $ConvStatus.ToString().trim("Conversion Status:")
PercentageEncrypted = $Percentage.ToString().trim("Percentage Encrypted:")
LockStatus = $LockStatus.ToString().trim("Lock Status:")
}
$Object | Select-Object ComputerName, ConversionStatus, PercentageEncrypted, LockStatus | Export-CSV *path* -NoTypeInformation -Append -Force
}
catch {
ErrorLog
}
finally
{
$Date = Get-Date
"$Date CSV written to $Path" | out-file *path* -Append
}