PowerShell script exchange
Post Reply
matteu
Veeam Legend
Posts: 823
Liked: 128 times
Joined: May 11, 2018 8:42 am
Contact:

NAS proxy

Post by matteu »

Hello,

I do proxy inventory and I don't find how I can find my NAS proxy status (enable / disable).

I use Get-VBRBackupRepository cmdlet but there is no more than id,descriptions,serverName,ConcurrentTaskNumber.

I try Get-VBRBackupRepository | get-member but there is no methods available.
I use this result to get the type of this object and it's : Veeam.Backup.PowerShell.Cmdlets.VBRNASProxyServer

But this static class has no method available to find it.

I probably did something wrong and I'm pretty sure it's not the good class...

How can I find the static class for NAS proxy ?
How can I find the proxy NAS status ?

Thanks
oleg.feoktistov
Veeam Software
Posts: 2010
Liked: 670 times
Joined: Sep 25, 2019 10:32 am
Full Name: Oleg Feoktistov
Contact:

Re: NAS proxy

Post by oleg.feoktistov »

Hi matteu,

Since you mentioned both backup repository and nas proxy server, it is unclear to me which proxy type you mean.
Is it about NAS proxy server you use when backing up a file share?

Thanks,
Oleg
matteu
Veeam Legend
Posts: 823
Liked: 128 times
Joined: May 11, 2018 8:42 am
Contact:

Re: NAS proxy

Post by matteu »

You're right sorry !

I don't find where I can edit my post...

I mean proxy :)

Get-VBRBackupRepository is not the real command I did ^^. The good one is Get-VBRNASProxyServer

I don't find where I can see if it's enabled or disabled
oleg.feoktistov
Veeam Software
Posts: 2010
Liked: 670 times
Joined: Sep 25, 2019 10:32 am
Full Name: Oleg Feoktistov
Contact:

Re: NAS proxy

Post by oleg.feoktistov »

You are right, there isn't any status available. Nor can I find any workaround to get it as the methods from CNASServerProxy class don't work.
I noted it as an enhancement request for future versions. Thanks!
matteu
Veeam Legend
Posts: 823
Liked: 128 times
Joined: May 11, 2018 8:42 am
Contact:

Re: NAS proxy

Post by matteu »

ok !

thanks
soncscy
Veteran
Posts: 643
Liked: 312 times
Joined: Aug 04, 2019 2:57 pm
Full Name: Harvey
Contact:

Re: NAS proxy

Post by soncscy » 1 person likes this post

Hey all,

Dug a bit with a decompiler, and looks like this is maintained under the CFileProxy class:

Code: Select all

PS C:\Users\Administrator> [Veeam.Backup.Core.CFileProxy]::GetAll()


Id            : 50cbf622-129e-482a-9197-d67e5bb1fb1f
Name          : Backup Proxy
Description   : Created by Veeam Backup & Replication
Info          : Veeam.Backup.Model.CBackupProxyInfo
HostId        : 6745a759-2205-4cd2-b172-8ec8f7e60ef8
Host          : Veeam.Backup.Core.Common.CHost
Type          : File
IsDisabled    : False
Options       : Veeam.Backup.Model.CDomFileProxyOptions
MaxTasksCount : 2
ChassisType   : ViVirtual



PS C:\Users\Administrator>
It also carries a method [Find|Get]ByHost(guid hostId) so I suppose you could parse with GetAll() or somehow parse on the hostIDs (lookup with Get-VBRServer I believe?)

Hope it helps!
oleg.feoktistov
Veeam Software
Posts: 2010
Liked: 670 times
Joined: Sep 25, 2019 10:32 am
Full Name: Oleg Feoktistov
Contact:

Re: NAS proxy

Post by oleg.feoktistov »

Kudos to Harvey, it works! I completely forgot about this class. Thanks!
matteu
Veeam Legend
Posts: 823
Liked: 128 times
Joined: May 11, 2018 8:42 am
Contact:

Re: NAS proxy

Post by matteu »

Thank you for your help.

It works perfectly like this :

Code: Select all

    $NASProxyReq = Get-VBRNASProxyServer
    foreach ($element in $NASProxyReq)
    {
        [pscustomobject]@{
            Name = $element.server.Name
            Type = "NAS"
            
            Disabled = [Veeam.Backup.Core.CFileProxy]::GetByHost($element.Server.id).isdisabled
            MaxTasks = $element.ConcurrentTaskNumber
            TransportMode = "<N/A>"
            UseSSL = "<N/A>"
            FailoverToNetwork = "<N/A>"
            AutoDetectVolume = "<N/A>"
            CacheSize = "<N/A>"  
            CachePath = "<N/A>"  
        }
    }
Maybe I'm not sure I work well when I try to find some specifinc information.

If I want to find information about repository :
1) get-command get-*repository* -module veeam
2) I try all command like : get-xxxxrepository | get-member
3) I try available method and class with names near to what I want manually and expect to find the information I want.

Is there a better way to find it ?

Finally, what do you mean by a decompiler ? How can you find the class on which the information is stored so easely ?

I'm sorry but I'm pretty sure I'm not enough efficient with powershell because I don't know enough how I can quickly find informations I need...
oleg.feoktistov
Veeam Software
Posts: 2010
Liked: 670 times
Joined: Sep 25, 2019 10:32 am
Full Name: Oleg Feoktistov
Contact:

Re: NAS proxy

Post by oleg.feoktistov » 1 person likes this post

You could also:
4) Use Show-Object cmdlet from PowershellCookBook module to explore class properties and methods:

Code: Select all

$job = Get-VBRJob -Name 'Backup Job'
$job | Show-Object 
5) Take advantage of IntelliSense in VSCode / Powershell ISE like I described earlier in the other thread.
6) Utilize decompiler, which is a tool that takes executable file (dll library in our case) and creates source code out of it. I rarely use it, but when I do, it's dotPeek by JetBrains.

Thanks!
matteu
Veeam Legend
Posts: 823
Liked: 128 times
Joined: May 11, 2018 8:42 am
Contact:

Re: NAS proxy

Post by matteu »

WOW !!!!

Many many many thank you for this module !!!!
Amazing to know it. I install it now because it will save me so so much time....

For vs code or ISE I use it but it's not so easy than this module :) . It's a long time to test all attribute and method with intellisense or get-member to know them.

ok for decompiler :)
Post Reply

Who is online

Users browsing this forum: No registered users and 7 guests