SYNTAX ERROR - скрипт дискового пространства в powershell - PullRequest
0 голосов
/ 25 апреля 2020

Может кто-нибудь помочь мне с этим? Я запустил приведенный ниже скрипт, чтобы получить место на диске сервера SQL Server, но я получаю сообщение об ошибке, показанное здесь. LAPTOP-45 - это имя компьютера для SQL Сервера, а Power SQL - это имя базы данных.

*$params = @{"Server"="LAPTOP-45";"Database"="PowerSQL"}

Function writeDiskInfo
{
    param($server,$devId,$volName,$frSpace,$totSpace)
    $totSpace=[math]::Round(($totSpace/1073741824),2)
    $frSpace=[Math]::Round(($frSpace/1073741824),2)
    $usedSpace = $totSpace - $frspace
    $usedSpace=[Math]::Round($usedSpace,2)
    $freePercent = ($frspace/$totSpace)*100
    $freePercent = [Math]::Round($freePercent,0)

    $InsertResults = @"INSERT INTO [PowerSQL].[dbo].[TLOG_DiskDetails](servername, DriveName, DriveLabel, TotalCapacity, UsedCapacity, FreeSpace, FreeSpacePercentage)
                       VALUES (''$SERVER'', ''$devId'', ''$volName'', $totSpace, $usedSpace, $frSpace, $freePercent)
"@       
         invoke-sqlcmd @params -Query $InsertResults
}

Function Get-ServerDiskStatus ($SQLInstance)
{
    $dp = Get-WmiObject win32_logicaldisk -ComputerName $SQLInstance|  Where-Object {$_.drivetype -eq 3}

    foreach ($item in $dp)
    {
        writeDiskInfo $SQLInstance $item.DeviceID $item.VolumeName $item.FreeSpace $item.Size
    }
}

$Srv = invoke-sqlcmd @params -Query "SELECT ServerName from dbo.WinServers "

foreach ($Instance in $srv)
{
    Get-ServerDiskStatus $Instance.ServerName
}*
...