загрузка...
Дата публикации: 01.06.2021 17:21:34 |
В sql таблицу пишутся данные котрые считывает скрипт и переносит данные в архив
$sql = "SELECT [Path], [Newpath], [Oldpath] FROM [ADDRESS].[dbo].[toarch]"
$SqlConnection = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection.ConnectionString = "server=SQL1-RU;uid=sa;pwd=*******;Database=ADDRESS"
$SqlConnection2 = New-Object System.Data.SqlClient.SqlConnection
$SqlConnection2.ConnectionString = "server=SQL1-RU;uid=sa;pwd=*******;Database=ADDRESS"
$SqlConnection2.Open()
$SqlCmd = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd2 = New-Object System.Data.SqlClient.SqlCommand
$SqlCmd.CommandText = $sql
$SqlCmd.Connection = $SqlConnection
$SqlAdapter = New-Object System.Data.SqlClient.SqlDataAdapter
$SqlAdapter.SelectCommand = $SqlCmd
$DataSet = New-Object System.Data.DataSet
$SqlAdapter.Fill($DataSet)
$slash= "\ "
foreach ($res in $DataSet.Tables[0]) {
foreach ($str in $res){
$path= $str.Path
$newpath= $str.Newpath
$oldpath= $str.Oldpath
//net use \\если нужен доступ к шаре пишем тут путь /user:Admin ******** и логин пароль
robocopy $oldpath $newpath /MOVE /E
md $oldpath$slash
$sql = "UPDATE [dbo].[Main] SET [Arc]=1 WHERE [Path] = '" + $path + "'"
$SqlCmd2.CommandText = $sql
$SqlCmd2.Connection = $SqlConnection2
$SqlCmd2.ExecuteNonQuery()
$sql = "DELETE FROM [dbo].[toarch] WHERE [Path] = '" + $path + "'"
$SqlCmd2.CommandText = $sql
$SqlCmd2.Connection = $SqlConnection2
$SqlCmd2.ExecuteNonQuery()
try
{
$target = $newpath + $slash
$link ="\ссылка.lnk"
$file = $oldpath + $link
$shell = New-Object -comObject Wscript.Shell
$shortcut = $shell.CreateShortcut($file)
$shortcut.TargetPath = $target
$shortcut.Save()
}
catch
{
// тут что-то делаем если не создался ярлык
}
}
}
$SqlConnection.Close()
$SqlConnection2.Close()
Назад в раздел