|
1 | 1 | function New-PSDCClone { |
2 | | -<# |
| 2 | + <# |
3 | 3 | .SYNOPSIS |
4 | 4 | New-PSDCClone creates a new clone |
5 | 5 |
|
|
400 | 400 | # Get the image id from the database |
401 | 401 | Write-PSFMessage -Message "Selecting image from database" -Level Verbose |
402 | 402 | try { |
403 | | - $query = "SELECT ImageID FROM dbo.Image WHERE ImageLocation = '$ParentVhd'" |
404 | | - $imageId = (Invoke-DbaSqlQuery -SqlInstance $pdcSqlInstance -Database $pdcDatabase -Query $query -EnableException).ImageID |
| 403 | + $query = "SELECT ImageID, ImageName FROM dbo.Image WHERE ImageLocation = '$ParentVhd'" |
| 404 | + $resultImage = Invoke-DbaSqlQuery -SqlInstance $pdcSqlInstance -Database $pdcDatabase -Query $query -EnableException |
405 | 405 | } |
406 | 406 | catch { |
407 | 407 | Stop-PSFFunction -Message "Couldnt execute query for retrieving image id" -Target $query -ErrorRecord $_ -Continue |
408 | 408 | } |
409 | 409 |
|
410 | 410 |
|
411 | | - if ($null -ne $imageId) { |
| 411 | + if ($null -ne $resultImage.ImageID) { |
412 | 412 |
|
413 | 413 | $cloneLocation = "$Destination\$CloneName.vhdx" |
414 | 414 |
|
|
417 | 417 | $query = " |
418 | 418 | DECLARE @CloneID INT; |
419 | 419 | EXECUTE dbo.Clone_New @CloneID = @CloneID OUTPUT, -- int |
420 | | - @ImageID = $imageId, -- int |
| 420 | + @ImageID = $($resultImage.ImageID), -- int |
421 | 421 | @HostID = $hostId, -- int |
422 | 422 | @CloneLocation = '$cloneLocation', -- varchar(255) |
423 | 423 | @AccessPath = '$accessPath', -- varchar(255) |
424 | 424 | @SqlInstance = '$($server.DomainInstanceName)', -- varchar(50) |
425 | | - @DatabaseName = '$cloneDatabase', -- varchar(100) |
| 425 | + @DatabaseName = '$cloneDatabase', -- varchar(100) |
426 | 426 | @IsEnabled = $active -- bit |
| 427 | +
|
| 428 | + SELECT @CloneID AS CloneID |
427 | 429 | " |
428 | 430 |
|
429 | 431 | Write-PSFMessage -Message "Query New Clone`n$query" -Level Debug |
430 | 432 |
|
431 | 433 | # execute the query |
432 | 434 | try { |
433 | | - $null = Invoke-DbaSqlQuery -SqlInstance $pdcSqlInstance -Database $pdcDatabase -Query $query -EnableException |
| 435 | + $result = Invoke-DbaSqlQuery -SqlInstance $pdcSqlInstance -Database $pdcDatabase -Query $query -EnableException |
434 | 436 | } |
435 | 437 | catch { |
436 | 438 | Stop-PSFFunction -Message "Couldnt execute query for adding clone" -Target $query -ErrorRecord $_ -Continue |
|
442 | 444 | } |
443 | 445 |
|
444 | 446 | # Add the results to the custom object |
445 | | - [PSCustomObject]@{ |
446 | | - ImageID = $imageId |
447 | | - HostID = $hostId |
448 | | - CloneLocation = $cloneLocation |
449 | | - AccessPath = $accessPath |
450 | | - SqlInstance = $server.DomainInstanceName |
451 | | - DatabaseName = $cloneDatabase |
452 | | - IsEnabled = $active |
453 | | - } |
| 447 | + [PSDCClone]$clone = New-Object PSDCClone |
| 448 | + |
| 449 | + $clone.CloneID = $result.CloneID |
| 450 | + $clone.CloneLocation = $cloneLocation |
| 451 | + $clone.AccessPath = $accessPath |
| 452 | + $clone.SqlInstance = $server.DomainInstanceName |
| 453 | + $clone.DatabaseName = $cloneDatabase |
| 454 | + $clone.IsEnabled = $active |
| 455 | + $clone.ImageID = $resultImage.ImageID |
| 456 | + $clone.ImageName = $resultImage.ImageName |
| 457 | + $clone.ImageLocation = $ParentVhd |
| 458 | + $clone.HostName = $hostname |
| 459 | + |
| 460 | + return $clone |
454 | 461 |
|
455 | 462 | } # End for each database |
456 | 463 |
|
|
0 commit comments