none
A specified logon session does not exist. It may already have been terminated RRS feed

  • Question

  • Hello, everyone! I recently meet a strange problem about double hop.

    I try to run the following PowerShell command

    $credential = Get-Credential
    
    $computerName = "frxp02361Dmbssh"
    
    $psdrive1 = @{
        Name = "PSDrive1"
        PSProvider = "FileSystem"
        Root = "\\mbssh01\Tool"
        Credential = $credential
    }
    
    $psdrive2 = @{
        Name = "PSDrive2"
        PSProvider = "FileSystem"
        Root = "\\dyn\AX"
        Credential = $credential
    }
    
    $psdrive3 = @{
        Name = "PSDrive3"
        PSProvider = "FileSystem"
        Root = "\\scmlabe3\SCM"
        Credential = $credential
    }
    
    $psdrive4 = @{
        Name = "PSDrive4"
        PSProvider = "FileSystem"
        Root = "\\codeflow\public"
        Credential = $credential
    }
    
    Invoke-Command -ComputerName $computerName -ScriptBlock {
         New-PSDrive @using:psdrive1
         New-PSDrive @using:psdrive2
         New-PSDrive @using:psdrive3
         New-PSDrive @using:psdrive4
    }

    Finally, I successfully create new PSDrives of "\\mbssh01\Tool", "\\scmlabe3\SCM", "\\codeflow\public" EXCEPT FOR "\\dyn\AX"

    I received the following error:

    Name           Used (GB)     Free (GB) Provider      Root                                CurrentLocatio PSComputerNam
                                                                                                          n e
    ----           ---------     --------- --------      ----                                -------------- -------------
    PSDrive1                                             \\mbssh01\Tool                                     frxp02361D...
    A specified logon session does not exist. It may already have been terminated
        + CategoryInfo          : InvalidOperation: (PSDrive2:PSDriveInfo) [New-PSDrive], Win32Exception
        + FullyQualifiedErrorId : CouldNotMapNetworkDrive,Microsoft.PowerShell.Commands.NewPSDriveCommand
        + PSComputerName        : frxp02361Dmbssh
    
    PSDrive3                                             \\scmlabe3\SCM                                     frxp02361D...
    PSDrive4                                             \\codeflow\public                                  frxp02361D...

    We can see the command "New-PSDrive @using:psdrive2" failed.

    But the other three commands all succeed.

    I have tested that I can access the folder "\\dyn\AX" in File Explorer when I login into the remote computer.

    Can anyone help me? I will be very grateful!




    • Edited by ppnman Friday, July 12, 2019 3:18 AM
    Friday, July 12, 2019 3:14 AM

All replies

  • Hi,

    I am not sure about the actual issue because if psdrive2 is failed then psdrive3 & psdrive4 also must be failed.

    Can you please try as below:

    1. Use credential only in the invoke command and remove from the objects.

    $credential = Get-Credential
    
    $computerName = "frxp02361Dmbssh"
    
    $psdrive1 = @{
        Name = "PSDrive1"
        PSProvider = "FileSystem"
        Root = "\\mbssh01\Tool"
    }
    
    $psdrive2 = @{
        Name = "PSDrive2"
        PSProvider = "FileSystem"
        Root = "\\dyn\AX"
    }
    
    $psdrive3 = @{
        Name = "PSDrive3"
        PSProvider = "FileSystem"
        Root = "\\scmlabe3\SCM"
    }
    
    $psdrive4 = @{
        Name = "PSDrive4"
        PSProvider = "FileSystem"
        Root = "\\codeflow\public"
    }
    
    Invoke-Command -ComputerName $computerName -Credential $credential  -ScriptBlock {
         New-PSDrive @using:psdrive1
         New-PSDrive @using:psdrive2
         New-PSDrive @using:psdrive3
         New-PSDrive @using:psdrive4
    }

    2. Also try changing the order of the drive to verify that issue is with psdrive2 or with the 2nd object.

    As I am new to this forum, please ignore the mistakes... 


    • Edited by Imran_Khan Friday, July 12, 2019 4:02 PM typo
    Friday, July 12, 2019 4:01 PM
  • Hello, Imran_Khan_180, I am sorry for the late reply. I was ill yesterday and today feel better.

    Thanks for you suggestions, I have tried them.

    1. If I only use credential in Invoke-Command, I can indeed create four new PSDrives.

    >> $psdrive1 = @{
    >>     Name = "PSDrive1"
    >>     PSProvider = "FileSystem"
    >>     Root = "\\mbssh01\Tool"
    >> }
    >>
    >> $psdrive2 = @{
    >>     Name = "PSDrive2"
    >>     PSProvider = "FileSystem"
    >>     Root = "\\dyn\AX"
    >> }
    >>
    >> $psdrive3 = @{
    >>     Name = "PSDrive3"
    >>     PSProvider = "FileSystem"
    >>     Root = "\\scmlabe3\SCM"
    >> }
    >>
    >> $psdrive4 = @{
    >>     Name = "PSDrive4"
    >>     PSProvider = "FileSystem"
    >>     Root = "\\codeflow\public"
    >> }
    >>
    >> Invoke-Command -ComputerName $computerName -Credential $credential  -ScriptBlock {
    >>      New-PSDrive @using:psdrive1
    >>      New-PSDrive @using:psdrive2
    >>      New-PSDrive @using:psdrive3
    >>      New-PSDrive @using:psdrive4
    >>     \\mbssh01\Tool\RockVM\RockVM.ps1 /silent
    >> }                                                                                                                                                                                         
    Name           Used (GB)     Free (GB) Provider      Root                                                                  CurrentLocation PSComputerName
    ----           ---------     --------- --------      ----                                                                  --------------- --------------
    PSDrive1                                             \\mbssh01\Tool                                                                        frxp023700mbssh
    PSDrive2                                             \\dyn\AX                                                                              frxp023700mbssh
    PSDrive3                                             \\scmlabe3\SCM                                                                        frxp023700mbssh
    PSDrive4                                             \\codeflow\public                                                                     frxp023700mbssh
    Access is denied
        + CategoryInfo          : OperationStopped: (:) [], UnauthorizedAccessException
        + FullyQualifiedErrorId : System.UnauthorizedAccessException
        + PSComputerName        : frxp023700mbssh

    But you can see I can't access any resource under "\\mbssh01\Tool".

    But if I use credential inside the PSDrive object, I can access the resource under "\\mbssh01\Tool" although I can't create a new PSDrive for "\\dyn\AX".  Result is as following:

    >> $psdrive1 = @{ >> Name = "PSDrive1" >> PSProvider = "FileSystem" >> Root = "\\mbssh01\Tool" >> Credential = $credential >> } >> >> $psdrive2 = @{ >> Name = "PSDrive2" >> PSProvider = "FileSystem" >> Root = "\\dyn\AX" >> Credential = $credential >> } >> >> $psdrive3 = @{ >> Name = "PSDrive3" >> PSProvider = "FileSystem" >> Root = "\\scmlabe3\SCM" >> Credential = $credential >> } >> >> $psdrive4 = @{ >> Name = "PSDrive4" >> PSProvider = "FileSystem" >> Root = "\\codeflow\public" >> Credential = $credential >> } >> >> Invoke-Command -ComputerName $computerName -ScriptBlock { >> New-PSDrive @using:psdrive2 >> New-PSDrive @using:psdrive1 >> New-PSDrive @using:psdrive3 >> New-PSDrive @using:psdrive4 >> \\mbssh01\Tool\RockVM\RockVM.ps1 /silent >> }

    A specified logon session does not exist. It may already have been terminated A specified logon session does not exist. It may already have been terminated + CategoryInfo : InvalidOperation: (PSDrive2:PSDriveInfo) [New-PSDrive], Win32Exception + FullyQualifiedErrorId : CouldNotMapNetworkDrive,Microsoft.PowerShell.Commands.NewPSDriveCommand + PSComputerName : frxp023700mbssh Name Used (GB) Free (GB) Provider Root CurrentLocation PSComputerName ---- --------- --------- -------- ---- --------------- -------------- PSDrive1 \\mbssh01\Tool frxp023700mbssh PSDrive3 \\scmlabe3\SCM frxp023700mbssh PSDrive4 \\codeflow\public frxp023700mbssh Transcript started, output file is \\mbssh01\Tool\RockVM\Logs\RockVM_FRXP023700MBSSH_2019071465325.log Here is the information of the VM you will create Datastore : /silent Branch : AppMU Build : Latest InstallRetail : 0 InstallMR : 0 Memory : 25GB CopyPath : D:\VM Virtual Switch: Recycle : Do you confirm to continue? (Y/N):


    2. Change the order of there commands can't solve the problem.

    Sunday, July 14, 2019 1:59 PM
  • Hi,

    I am not sure about the actual issue because if psdrive2 is failed then psdrive3 & psdrive4 also must be failed.

    Can you please try as below:

    1. Use credential only in the invoke command and remove from the objects.

    $credential = Get-Credential
    
    $computerName = "frxp02361Dmbssh"
    
    $psdrive1 = @{
        Name = "PSDrive1"
        PSProvider = "FileSystem"
        Root = "\\mbssh01\Tool"
    }
    
    $psdrive2 = @{
        Name = "PSDrive2"
        PSProvider = "FileSystem"
        Root = "\\dyn\AX"
    }
    
    $psdrive3 = @{
        Name = "PSDrive3"
        PSProvider = "FileSystem"
        Root = "\\scmlabe3\SCM"
    }
    
    $psdrive4 = @{
        Name = "PSDrive4"
        PSProvider = "FileSystem"
        Root = "\\codeflow\public"
    }
    
    Invoke-Command -ComputerName $computerName -Credential $credential  -ScriptBlock {
         New-PSDrive @using:psdrive1
         New-PSDrive @using:psdrive2
         New-PSDrive @using:psdrive3
         New-PSDrive @using:psdrive4
    }

    2. Also try changing the order of the drive to verify that issue is with psdrive2 or with the 2nd object.

    As I am new to this forum, please ignore the mistakes... 


    I can do nothing about the problem, and I even suspect it's a bug of powershell.
    Sunday, July 14, 2019 2:04 PM
  • Hi,

    Thanks for your question.

    Is the "\\mbssh01\Tool" shared folder on your target computer frxp02361Dmbssh?

    The "second hop problem" refers to a situation like the following:

    You are logged in to ServerA.
    From ServerA, you start a remote PowerShell session to connect to ServerB.
    A command you run on ServerB via your PowerShell Remoting session attempts to access a resource on ServerC.
    Access to the resource on ServerC is denied, because the credentials you used to create the PowerShell Remoting session are not passed from ServerB to ServerC.

     You can use CredSSP to solve the second-hop problem.

    Please refer the link below:

    https://devblogs.microsoft.com/scripting/enable-powershell-second-hop-functionality-with-credssp/

    Best regards,

    Lee


    Just do it.

    Monday, July 15, 2019 6:35 AM
    Moderator
  • I know CredSSP is a solution, but I can not try it.

    Because CredSSP does not comply the security policy of my company.

    Thanks for your advice.

    I have spent days in solving the problem, but it seems that I can't solve it.

    Thursday, July 18, 2019 1:50 AM
  • Hi,

    Was your issue resolved?

    If you resolved it using our solution, please "mark it as answer" to help other community members find the helpful reply quickly.

    If you resolve it using your own solution, please share your experience and solution here. It will be very beneficial for other community members who have similar questions.

    If no, please reply and tell us the current situation in order to provide further help.

    Best Regards,

    Lee


    Just do it.

    Wednesday, July 31, 2019 8:05 AM
    Moderator