Last active
April 10, 2020 22:03
-
-
Save raulunzue/d6101db08c56fb3c44a85d19f6af0f8d to your computer and use it in GitHub Desktop.
Script powershell para buscar ficheros en perfiles Citrix (UPM, FSLogix,...)
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# Script ElBlogdeNegu de Raúl Unzué | |
# Se recorre el escritorio de perfiles FSLogix y UPM buscando ficheros WS | |
# Si no hay ficheros WS genera un fichero en blanco | |
# https://www.maquinasvirtuales.eu/powershell-script-busqueda-de-ficheros-en-perfiles-citrix/ | |
# SABER EL USUARIO | |
$usuario=C:\windows\system32\whoami.exe | |
# ELIMINAR DOMINIO PARA LIMPIAR NOMBRE | |
$usuariomodificado=$usuario.Substring(8) | |
# Chequear si se encuentra el archivo | |
$rutaperfil = "\\NAS01\perfiles_citrix$\$usuariomodificado.NEGU\Desktop" | |
$Existe = Test-Path $rutaperfil | |
$rutaperfil2 = "\\NAS01\perfiles_citrix$\$usuariomodificado.V2\Desktop" | |
$Existe2 = Test-Path $rutaperfil2 | |
If ($Existe -eq $True) { | |
#Write-Host "Existe ruta .NEGU" | |
# BUSCAR FICHEROS WS EN ESCRITORIO | |
Get-ChildItem -Path \\NAS01\perfiles_citrix$\$usuariomodificado.NEGU\Desktop\ -Recurse -Include "*.ws" -Name | Out-file -Filepath \\NAS01\perfiles_citrix$\$usuariomodificado.NEGU\Desktop\listadows.txt | |
# BUSCAR VARIABLE | |
$table = @() | |
ForEach ($file in (Get-Content \\NAS01\perfiles_citrix$\$usuariomodificado.NEGU\Desktop\listadows.txt)) | |
{ | |
# Reemplazar texto en fichero WS | |
#(Get-Content \\NAS01\perfiles_citrix$\$usuariomodificado.NEGU\Desktop\$file) | ForEach-Object { $_ -replace "24x80", "27x132" } | Set-Content \\NAS01\perfiles_citrix$\$usuariomodificado.NEGU\Desktop\$file | |
#Write-Host "Fichero que estamos trabajando $file" | |
$clave= Select-String -Path \\NAS01\perfiles_citrix$\$usuariomodificado.NEGU\Desktop\$file -Pattern 'WorkStationID=' | |
#Extraer a texto plano variable ScreenSize | |
Select-String -Path \\NAS01\perfiles_citrix$\$usuariomodificado.NEGU\Desktop\$file -Pattern 'ScreenSize=' > \\NAS01\aplicaciones\WS_USERS\screensize-$usuariomodificado-$file.txt | |
# EXPORTAR VARIABLES A CSV | |
$objRecord = New-Object psobject -Property @{Logon=$usuario;Usuario=$usuariomodificado;Fichero=$file;WorkStationID=$clave} | |
$Table += $objrecord | |
} | |
} ElseIf ($Existe2 -eq $True) { | |
#Write-Host "No existe" | |
# BUSCAR FICHEROS WS EN ESCRITORIO | |
Get-ChildItem -Path \\NAS01\perfiles_citrix$\$usuariomodificado.V2\Desktop\ -Recurse -Include "*.ws" -Name | Out-file -Filepath \\NAS01\perfiles_citrix$\$usuariomodificado.V2\Desktop\listadows.txt | |
# BUSCAR VARIABLE | |
$table = @() | |
ForEach ($file in (Get-Content \\NAS01\perfiles_citrix$\$usuariomodificado.V2\Desktop\listadows.txt)) | |
{ | |
# Reemplazar texto en fichero WS | |
#(Get-Content \\NAS01\perfiles_citrix$\$usuariomodificado.V2\Desktop\$file) | ForEach-Object { $_ -replace "24x80", "27x132" } | Set-Content \\NAS01\perfiles_citrix$\$usuariomodificado.V2\Desktop\$file | |
#Write-Host "Fichero que estamos trabajando $file" | |
$clave= Select-String -Path \\NAS01\perfiles_citrix$\$usuariomodificado.V2\Desktop\$file -Pattern 'WorkStationID=' | |
#Extraer a texto plano variable ScreenSize | |
Select-String -Path \\NAS01\perfiles_citrix$\$usuariomodificado.V2\Desktop\$file -Pattern 'ScreenSize=' > \\NAS01\aplicaciones\WS_USERS\screensize-$usuariomodificado-$file.txt | |
# EXPORTAR VARIABLES A CSV | |
$objRecord = New-Object psobject -Property @{Logon=$usuario;Usuario=$usuariomodificado;Fichero=$file;WorkStationID=$clave} | |
$Table += $objrecord | |
} | |
} | |
Else { | |
#Write-Host "No existe" | |
# BUSCAR FICHEROS WS EN ESCRITORIO | |
Get-ChildItem -Path C:\Users\$usuariomodificado\Desktop\ -Recurse -Include "*.ws" -Name | Out-file -Filepath C:\Users\$usuariomodificado\Desktop\listadows.txt | |
# BUSCAR VARIABLE | |
$table = @() | |
ForEach ($file in (Get-Content C:\Users\$usuariomodificado\Desktop\listadows.txt)) | |
{ | |
# Reemplazar texto en fichero WS | |
#(Get-Content C:\Users\$usuariomodificado\Desktop\$file) | ForEach-Object { $_ -replace "24x80", "27x132" } | Set-Content C:\Users\$usuariomodificado\Desktop\$file | |
#Write-Host "Fichero que estamos trabajando $file" | |
$clave= Select-String -Path C:\Users\$usuariomodificado\Desktop\$file -Pattern 'WorkStationID=' | |
#Extraer a texto plano variable ScreenSize | |
Select-String -Path C:\Users\$usuariomodificado\Desktop\$file -Pattern 'ScreenSize=' > \\NAS01\aplicaciones\WS_USERS\screensize-$usuariomodificado-$file.txt | |
# EXPORTAR VARIABLES A CSV | |
$objRecord = New-Object psobject -Property @{Logon=$usuario;Usuario=$usuariomodificado;Fichero=$file;WorkStationID=$clave} | |
$Table += $objrecord | |
} | |
} | |
# EXPORTAMOS FICHERO CSV | |
$table | export-csv \\NAS01\aplicaciones\WS_USERS\report-$usuariomodificado.csv -NoTypeInformation | |
If ($Existe -eq $True) { | |
# ELIMINAMOS FICHERO TEMPORAL | |
Remove-Item \\NAS01\perfiles_citrix$\$usuariomodificado.NEGU\Desktop\listadows.txt | |
} ElseIf ($Existe2 -eq $True) { | |
Remove-Item \\NAS01\perfiles_citrix$\$usuariomodificado.V2\Desktop\listadows.txt | |
} | |
Else { | |
Remove-Item C:\Users\$usuariomodificado\Desktop\listadows.txt | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment