This is awesome Jonathan. I have been watching and testing this project. I will try the newest one as getting diagrams of the Veeam environment will be very beneficial for me in my role.
Wow! @jcolonfzenpr this is so nice and usefull! Thank you for this. Another great tool for documentation. I did a quick check and compared it to your video…
The -DiagramType 'Backup-Infrastructure' seems to not working for me, as the result will still show the last used value. For example, the result for Backup-to-Repository… every single String is working, except Backup-Infrastructure.
I will also check it on another environment, thanks again - love it :)
Update: did a check on another environment, also the string Backup-Infrastructure is only displaying the last used String… In this environment, i have also an attached SMB Repository, two different Hardened Repositories and the listet Object Storage. But only this one Object Storage is shown.
If i can provide you with more details to troubleshoot, just ping me. Maybe i’m the only one with this issue, but anyway, no stress - take your time. I appreciate it.
Update#2: enjoy your Ko-fi :-)
Hi,
What do you mean here: Update: did a check on another environment, also the string Backup-Infrastructure is only displaying the last used String…
CommandType Name Version Source ----------- ---- ------- ------ Cmdlet Get-VBRServerSession 12.2.0.334 Veeam.Backup.PowerShell
PS C:\Users\jocolon\>
Can you check if the Veeam Powershell module are installed?
Get-Module -ListAvailable Veeam*
Best regards,
I figured it out - I was using Powershell 7 environment which is not supported. I changed my terminal in Windows to use PS5 and now it works. Sorry about that. LOL
Hi ,
The Get-VBRServerSession cmdlet is part of the veeam powershell modules.
CommandType Name Version Source ----------- ---- ------- ------ Cmdlet Get-VBRServerSession 12.2.0.334 Veeam.Backup.PowerShell
PS C:\Users\jocolon\>
Can you check if the Veeam Powershell module are installed?
Get-Module -ListAvailable Veeam*
Best regards,
I figured it out - I was using Powershell 7 environment which is not supported. I changed my terminal in Windows to use PS5 and now it works. Sorry about that. LOL
I'm glad you were able to run the script. Any bugs or improvements you can recommend feel free to let me know.
I will add code to verify the Powershell version!
@jcolonfzenpr -- issue now after changing to PS5 when running. See errors below.
Graph : You cannot call a method on a null-valued expression. At C:\Program Files\WindowsPowerShell\Modules\Veeam.Diagrammer\0.6.4\Src\Public\New-VeeamDiagram.ps1:398 char:29 + ... cript:Graph = Graph -Name VeeamVBR -Attributes $MainGraphAttributes { + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) lGraph], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull,Graph
Get-ChildItem : Cannot find path 'E:\Diagrams\Output.pdf' because it does not exist. At C:\Program Files\WindowsPowerShell\Modules\PSGraph\2.1.38.27\PSGraph.psm1:917 char:17 + Get-ChildItem $PSBoundParametersC"DestinationPath"] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (E:\Diagrams\Output.pdf:String) tGet-ChildItem], ItemNotFoundException + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
Get-ChildItem : Cannot find path 'C:\Users\administrator.HOME\AppData\Local\Temp\8\TempOutPut.png' because it does not exist. At C:\Program Files\WindowsPowerShell\Modules\PSGraph\2.1.38.27\PSGraph.psm1:917 char:17 + Get-ChildItem $PSBoundParameters"DestinationPath"] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (C:\Users\admini...\TempOutPut.png:String) Get-ChildItem], ItemNotFound Exception + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
Export-Diagrammer : Cannot bind argument to parameter 'Path' because it is null. At C:\Program Files\WindowsPowerShell\Modules\Veeam.Diagrammer\0.6.4\Src\Public\New-VeeamDiagram.ps1:507 char:30 + ... utDiagram = Export-Diagrammer -GraphObj ($Graph | Select-String -Patt ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) ~Write-Error], WriteErrorException + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Export-Diagrammer
It seems to be this diagram option - Backup-Infrastructure
I have tried some others and they work fine.
@jcolonfzenpr -- issue now after changing to PS5 when running. See errors below.
Graph : You cannot call a method on a null-valued expression. At C:\Program Files\WindowsPowerShell\Modules\Veeam.Diagrammer\0.6.4\Src\Public\New-VeeamDiagram.ps1:398 char:29 + ... cript:Graph = Graph -Name VeeamVBR -Attributes $MainGraphAttributes { + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) lGraph], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull,Graph
Get-ChildItem : Cannot find path 'E:\Diagrams\Output.pdf' because it does not exist. At C:\Program Files\WindowsPowerShell\Modules\PSGraph\2.1.38.27\PSGraph.psm1:917 char:17 + Get-ChildItem $PSBoundParametersC"DestinationPath"] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (E:\Diagrams\Output.pdf:String) tGet-ChildItem], ItemNotFoundException + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
Get-ChildItem : Cannot find path 'C:\Users\administrator.HOME\AppData\Local\Temp\8\TempOutPut.png' because it does not exist. At C:\Program Files\WindowsPowerShell\Modules\PSGraph\2.1.38.27\PSGraph.psm1:917 char:17 + Get-ChildItem $PSBoundParameters"DestinationPath"] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (C:\Users\admini...\TempOutPut.png:String) Get-ChildItem], ItemNotFound Exception + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
Export-Diagrammer : Cannot bind argument to parameter 'Path' because it is null. At C:\Program Files\WindowsPowerShell\Modules\Veeam.Diagrammer\0.6.4\Src\Public\New-VeeamDiagram.ps1:507 char:30 + ... utDiagram = Export-Diagrammer -GraphObj ($Graph | Select-String -Patt ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) ~Write-Error], WriteErrorException + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Export-Diagrammer
I think the error is permission related, change the --OutputFolderPath to something inside your user profile path Ex : C:\Users\administrator.HOME\ and let me know.
Looking forward to testing this out @jcolonfzenpr ...after I resolve my performance issue
Thanks for sharing. Will let you know if I run into any issues.
@jcolonfzenpr -- issue now after changing to PS5 when running. See errors below.
Graph : You cannot call a method on a null-valued expression. At C:\Program Files\WindowsPowerShell\Modules\Veeam.Diagrammer\0.6.4\Src\Public\New-VeeamDiagram.ps1:398 char:29 + ... cript:Graph = Graph -Name VeeamVBR -Attributes $MainGraphAttributes { + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) lGraph], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull,Graph
Get-ChildItem : Cannot find path 'E:\Diagrams\Output.pdf' because it does not exist. At C:\Program Files\WindowsPowerShell\Modules\PSGraph\2.1.38.27\PSGraph.psm1:917 char:17 + Get-ChildItem $PSBoundParametersC"DestinationPath"] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (E:\Diagrams\Output.pdf:String) tGet-ChildItem], ItemNotFoundException + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
Get-ChildItem : Cannot find path 'C:\Users\administrator.HOME\AppData\Local\Temp\8\TempOutPut.png' because it does not exist. At C:\Program Files\WindowsPowerShell\Modules\PSGraph\2.1.38.27\PSGraph.psm1:917 char:17 + Get-ChildItem $PSBoundParameters"DestinationPath"] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (C:\Users\admini...\TempOutPut.png:String) Get-ChildItem], ItemNotFound Exception + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
Export-Diagrammer : Cannot bind argument to parameter 'Path' because it is null. At C:\Program Files\WindowsPowerShell\Modules\Veeam.Diagrammer\0.6.4\Src\Public\New-VeeamDiagram.ps1:507 char:30 + ... utDiagram = Export-Diagrammer -GraphObj ($Graph | Select-String -Patt ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) ~Write-Error], WriteErrorException + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Export-Diagrammer
I think the error is permission related, change the --OutputFolderPath to something inside your user profile path Ex : C:\Users\administrator.HOME\ and let me know.
Sounds good. I will report back.
Also how do you use the -Filename parameter to specify a filename? Do you have an example? I tried to use it but probably not doing it right. LOL
@jcolonfzenpr -- issue now after changing to PS5 when running. See errors below.
Graph : You cannot call a method on a null-valued expression. At C:\Program Files\WindowsPowerShell\Modules\Veeam.Diagrammer\0.6.4\Src\Public\New-VeeamDiagram.ps1:398 char:29 + ... cript:Graph = Graph -Name VeeamVBR -Attributes $MainGraphAttributes { + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (:) lGraph], RuntimeException + FullyQualifiedErrorId : InvokeMethodOnNull,Graph
Get-ChildItem : Cannot find path 'E:\Diagrams\Output.pdf' because it does not exist. At C:\Program Files\WindowsPowerShell\Modules\PSGraph\2.1.38.27\PSGraph.psm1:917 char:17 + Get-ChildItem $PSBoundParametersC"DestinationPath"] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (E:\Diagrams\Output.pdf:String) tGet-ChildItem], ItemNotFoundException + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
Get-ChildItem : Cannot find path 'C:\Users\administrator.HOME\AppData\Local\Temp\8\TempOutPut.png' because it does not exist. At C:\Program Files\WindowsPowerShell\Modules\PSGraph\2.1.38.27\PSGraph.psm1:917 char:17 + Get-ChildItem $PSBoundParameters"DestinationPath"] + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : ObjectNotFound: (C:\Users\admini...\TempOutPut.png:String) Get-ChildItem], ItemNotFound Exception + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand
Export-Diagrammer : Cannot bind argument to parameter 'Path' because it is null. At C:\Program Files\WindowsPowerShell\Modules\Veeam.Diagrammer\0.6.4\Src\Public\New-VeeamDiagram.ps1:507 char:30 + ... utDiagram = Export-Diagrammer -GraphObj ($Graph | Select-String -Patt ... + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : NotSpecified: (:) ~Write-Error], WriteErrorException + FullyQualifiedErrorId : Microsoft.PowerShell.Commands.WriteErrorException,Export-Diagrammer
I think the error is permission related, change the --OutputFolderPath to something inside your user profile path Ex : C:\Users\administrator.HOME\ and let me know.
Sounds good. I will report back.
Also how do you use the -Filename parameter to specify a filename? Do you have an example? I tried to use it but probably not doing it right. LOL
This is the way it is used, if you have any error let me know
Hi,
What do you mean here: Update: did a check on another environment, also the string Backup-Infrastructure is only displaying the last used String…
ModuleType Version Name ExportedCommands ---------- ------- ---- ---------------- Script 0.2.4 Diagrammer.Core {Convert-DiaTableToHTML, Get-DiaHtmlLabel, Get-DiaHtmlNodeTable, Get-DiaHtmlTable...} Script 0.6.4 Veeam.Diagrammer New-VeeamDiagram
PS C:\Users\jocolon\>
Thanks for the kofi contribution :)
I mean, for example, when used backup-to-sobr as diagramtype, it’s working… when then use backup-infrastructure as diagramtype, the result will in my case be the same result as used before (so on this example, backup-to-sobr). i had also checked if I’m running on version 5, which is on both environments the case.
But as seen by Chris, I think he is running in the same behavior reagarding the backup-infrastructure diagramtype
Can’t currently provide more information, as I’m sitting with mobile next to my sleeping toddler
If any of you could send me the log I could identify where the bug is.
To do this it is required to run the script with the debug option turned on in powershell using the following commands:
Enable powershell debugging:
$global:VerbosePreference = 'Continue' $global:DebugPreference = 'Continue' Start-Transcript -Path .\Output.log New-VeeamDiagram -Target <-- change this part --> Stop-Transcript
The commands generate the Output.log file which you can send to me at:
@jcolonfzenpr -- sent you the log output from my homelab VBK server. Hopefully it helps fix the issue.
@jcolonfzenpr let me know if you also need a second log, wouldn’t be a problem
@jcolonfzenpr let me know if you also need a second log, wouldn’t be a problem
If you can send me the log it would be a great help.
Hi Jonathan, reports have been sent to you by mail
In this environment, i have also an attached SMB Repository, two different Hardened Repositories and the listet Object Storage. But only this one Object Storage is shown.
If i can provide you with more details to troubleshoot, just ping me. Maybe i’m the only one with this issue, but anyway, no stress - take your time. I appreciate it.
Can you show me the output of this cmdlet?
Get-VBRBackupRepository | Select-Object -Property Type
Any news on the Backup-Infrastructure report type and were the logs sent helpful? Just checking as the other reports are working well and are fantastic!
In this environment, i have also an attached SMB Repository, two different Hardened Repositories and the listet Object Storage. But only this one Object Storage is shown.
If i can provide you with more details to troubleshoot, just ping me. Maybe i’m the only one with this issue, but anyway, no stress - take your time. I appreciate it.
Can you show me the output of this cmdlet?
Get-VBRBackupRepository | Select-Object -Property Type
yes for sure:
PS C:\Users\Administrator> Get-VBRBackupRepository | Select-Object -Property Type
Type ---- Nfs LinuxHardened WasabiS3 LinuxHardened
And sorry, it was not a SMB share, it was NFS :-)
Any news on the Backup-Infrastructure report type and were the logs sent helpful? Just checking as the other reports are working well and are fantastic!
I think I've fixed it, I hope to release a new version soon for you to test. :)
In this environment, i have also an attached SMB Repository, two different Hardened Repositories and the listet Object Storage. But only this one Object Storage is shown.
If i can provide you with more details to troubleshoot, just ping me. Maybe i’m the only one with this issue, but anyway, no stress - take your time. I appreciate it.
Can you show me the output of this cmdlet?
Get-VBRBackupRepository | Select-Object -Property Type
yes for sure:
PS C:\Users\Administrator> Get-VBRBackupRepository | Select-Object -Property Type
Type ---- Nfs LinuxHardened WasabiS3 LinuxHardened
And sorry, it was not a SMB share, it was NFS :-)
It’s Nfs and not NfsShare! Thanks
Fixed!
Any news on the Backup-Infrastructure report type and were the logs sent helpful? Just checking as the other reports are working well and are fantastic!
I think I've fixed it, I hope to release a new version soon for you to test. :)
Great! Looking forward to the fix and will test it when ready.