Досі новачок у powershell, але мені було доручено розібратися, як створити та запустити скрипт powerhell на кожній робочій станції нашого домену, щоб він перетягував статус Bitlocker, а потім записував інформацію у файл CSV. Ми використовуємо labtech як нашу віддалену систему, тому ми хочемо запустити скрипт на кожній машині, оскільки наш інженер не хоче, щоб щось працювало на самому DC (спочатку збирався витягнути всі назви робочих станцій з OU, а потім перевірити стан на кожному з них ). Проблема полягає в тому, що, здається, перша машина, яка запустила скрипт, створює файл, а потім отримує право власності, фактично блокуючи всі інші машини, не записуючи у файл. Вдячні за будь-які пропозиції щодо спрямування мене в правильному напрямку. Дякую.
$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
}