Может ли кто-нибудь сказать мне, почему я не справился с этим кодом?
1, я подключаюсь к базе данных 2, я запрашиваю полезную информацию из базы данных (получить путь) 3, я проверил свободное пространство по запрошенному пути
Вот мои коды:
######connect to windows authentication local database################################
$connection= new-object system.data.sqlclient.sqlconnection #Set new object to connect to sql database
$Connection.ConnectionString ="server=.;database=sharespace;trusted_connection=True" # Connectiongstring setting for local machine database with window authentication
Write-host "connection information:"
$connection #List connection information
Write-host "connect to database successful."
$connection.open() #Connecting successful
#########query drop paths############################################################
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand #setting object to use sql commands
$SqlQuery = "select Droppath from sharespace" #setting query "get drop paths"
$SqlCmd.CommandText = $SqlQuery # get query
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter #
$SqlAdapter.SelectCommand = $SqlCmd #
$SqlCmd.Connection = $Connection
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
#$Connection.Close()
$DataSet.Tables[0].rows[1]
#############check free space form drop paths###########################################
$var=$dataset.tables[0].rows[1] #
#$var.system.data.datarow
$var.droppath
$map = new-Object -com wscript.Network
$map.mapNetworkDrive("v:",$($var.droppath))
$fso = new-Object -com Scripting.FileSystemObject
$do = $fso.getdrive("v:")
$do.AvailableSpace
$do.TotalSize
#$var|get-member
$map.RemoveNetworkDrive("v:")
$Connection.Close()
Я уверен, что запрошенный мной путь действителен, потому что я тестирую этот путь с помощью cmd. Но здесь я потерпел неудачу .... Журналы ошибок:
Exception calling "MapNetworkDrive" with "2" argument(s): "The network location cannot be reached. For information about network troubleshooting, see Windows Help."
At D:\checkfreespace.ps1:47 char:21
+ $map.mapNetworkDrive <<<< ("v:",$($var.droppath))
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : ComMethodTargetInvocation
Exception calling "GetDrive" with "1" argument(s): "Exception from HRESULT: 0x800A0044 (CTL_E_DEVICEUNAVAILABLE)"
At D:\checkfreespace.ps1:51 char:20
+ $do = $fso.getdrive <<<< ("v:")
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : ComMethodTargetInvocation
Exception calling "RemoveNetworkDrive" with "1" argument(s): "This network connection does not exist."
At D:\checkfreespace.ps1:59 char:24
+ $map.RemoveNetworkDrive <<<< ("v:")
+ CategoryInfo : NotSpecified: (:) [], MethodInvocationException
+ FullyQualifiedErrorId : ComMethodTargetInvocation
Произошла ваша первая ошибка:
$map.mapNetworkDrive <<<< ("v:",$($var.droppath))
Сетевое расположение недоступно
Так в чем же ценность $var.droppath
, и доступно ли это вне этого скрипта?