Hi,
In below script i am able to query the NTFS security rights for the data files but i am unable to export into csv files.
Please help me to export the result to csv files.
Function Get-DBPermissions {
$serverarray = get-content c:\temp\instancelist.txt
ForEach ($instance in $serverarray)
{
Try
{
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | out-null
$s = New-Object ('Microsoft.SqlServer.Management.Smo.Server') $instance -Errorvariable Err -ErrorAction SilentlyContinue
$dbs=$s.Databases
foreach ($db in $dbs)
{
$dbname = $db.Name
$fileGroups = $db.FileGroups
ForEach ($fg in $fileGroups)
{
If ($fg)
{
$dbfiles = $fg.files.fileName -replace ":","$"
$srvname = ($instance.Split("\")[0])
$datafile ='\\'+$srvname+'\'+$dbfiles
write-host "Server:" $srvname "Data File:" $fg.files.fileName
get-acl $datafile | foreach { write-host "The owner is : " $_.Owner "`nNTFS Security rights : " $_.AccessToString }
Write-Host "`n"
}
}
}
}
Catch
{
$ErrorMessage = $Error.Contain
$FailedItem = $_.Exception.ItemName
}
if ($Err) { write-output ( $timestamp + " Unable to connect " + $s) >> "C:\temp\errorLog.txt"}
}
}
Get-DBPermissions