Skip to content

Instantly share code, notes, and snippets.

Embed
What would you like to do?
Script powershell para buscar ficheros en perfiles Citrix (UPM, FSLogix,...)
# 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