Contenidos
Para realizar el ejemplo se ha utilizado el siguiente enlace https://www.jesusninoc.com/02/26/utilizar-sesiones-de-las-aplicaciones-web-en-powershel
Desde un PowerShell crear una sesión y almacenarla en un fichero
1 2 3 4 5 6 7 8 |
# Creo la sesión con un valor, almaceno dicho valor (Invoke-WebRequest http://localhost:88/primero.php -SessionVariable session).content # Obtener los valores de la cookie, visto en https://hochwald.net/get-cookies-from-powershell-webrequestsession/ [pscustomobject]$CookieInfoObject = ((($session).Cookies).GetType().InvokeMember('m_domainTable', [Reflection.BindingFlags]::NonPublic -bor [Reflection.BindingFlags]::GetField -bor [Reflection.BindingFlags]::Instance, $null, (($session).Cookies), @())) $CookieInfoObject.Values.values $CookieInfoObject.Values.values | Out-File sesion.txt |

Después abrir otro PowerShell e importar la sesión guardada
- Microsoft.PowerShell.Commands.WebRequestSession: WebRequestSession para mantener información sobre la sesión.
- System.Net.Cookie: proporciona un conjunto de propiedades y métodos que se usan para administrar las cookies. Esta clase no puede heredarse.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
# Desde otra consola de PowerShell cargo los valores que están en el fichero sesion.txt utilizando los objetos Microsoft.PowerShell.Commands.WebRequestSession y System.Net.Cookie (Invoke-WebRequest http://localhost:88/segundo.php).content $session = [Microsoft.PowerShell.Commands.WebRequestSession]::new() $cookie = [System.Net.Cookie]::new() $cookie.Name = (Get-Content .\sesion.txt)[9].Split(":")[1].Trim() $cookie.Value = (Get-Content .\sesion.txt)[14].Split(":")[1].Trim() $cookie.Domain = (Get-Content .\sesion.txt)[6].Split(":")[1].Trim() $session.Cookies.Add($cookie) (Invoke-WebRequest http://localhost:88/segundo.php -WebSession $session).content |