viernes, 22 de mayo de 2015

YouTube descargar videos

Como nos pasa a todos no siempre disponemos de una conexión a internet y nos gustaría poder continuar viendo algún video de youtube. Seguro que para la mayoria no os voy a contar nada nuevo, pero por si acaso hay alguno tan rezagado como yo, os explicaré como descargarse un video sin necesidad de instalarse nada.

Hay que sustituir el principio de la cadena "https://www.youtube.com" por "https://ssyoutube.com"

Es tan sencillo como, por ejemplo este link "https://www.youtube.com/watch?v=WWf4yNzlg1U"



Lo transformamos en 

https://ssyoutube.com/watch?v=WWf4yNzlg1U



A la derecha nos saldar en que calidad queremos descargar



Y ya lo tenemos!!!


Otra opción

Por ejemplo este link "https://www.youtube.com/watch?v=WWf4yNzlg1U"  poner https://www.youtube1s.com/watch?v=WWf4yNzlg1U"  

Y Listos!!



Gon. Mayo 2015

jueves, 21 de mayo de 2015

PowerShell. Actualizar un campo del Directorio Activo.

Nos ha llegado el momento de cruzar la información de RRHH con nuestro AD. Para tener un campo común único usaremos el Employee, con lo que tendremos que actulizar este campo de nuestro AD.

Set-EmployeeID.ps1: conecta con el PDCEmulator del dominio en el que se ejecuta y cambia el valor del atributo EmployeeID, de los usuarios contenidos en el fichero de importación, al que haya en ese mismo fichero. El fichero de importación es un fichero de valores separados por tabulador (el script permite pasarle el parámetro -Delimiter para especificar otro delimitador). Este fichero contiene dos columnas sAMAccountName y EmployeeID. Es necesario ser administrador del dominio, o administrador delegado con derecho a cambiar el atributo EmployeeID, para que el script funcione.

Crea el fichero "Set-EmployeeID.ps1" con el texto:

<#
.Synopsis
   Actualiza el EmployeeID de los usuarios según un fichero de valores separados
.DESCRIPTION
   El presente script actualiza el atributo EmployeeID de los usuarios que están
   en el fichero de valores separados por tabulador (de forma predeterminada, se
   se pueden usar otros separadosres). En el fichero hay dos columnas sAMAccountName
   y EmployeeID. El script busca dad uno de los usuarios según su sAMAccountName y
   actualiza su atributo EmployeeID al valor que indica la columan EmployeeID del
   fichero. Esta actualización la hace con el objeto que se encuentra en el PDCEmulator
   del dominio al que pertenece el equipo desde el que se lanza el script.
.PARAM ImportFile
   Es la ruta y nombre del fichero (pueden usarse rutas absolutas o relativas así
   como sólo el nombre si el inductor de Powershell está situado en la carpeta donde
   se ubica el fichero). Se trata de un fichero de valores separados por tabulador
   o el caracter que se pase como parametro delimiter.
   Si se omite, este parámetro tiene el valor Set-EmployeeID.tab con la ruta donde
   está ubicado el script (si el script está en c:\Scripts el fichero será
   c:\Scripts\Set-EmployeeID.tab).
   El fichero contiene dos columnas sAMAccountName (nombre pre Windows 2000 del usuario)
   y EmployeeID.
.PARAM Delimiter
   Caracter delimitador del fichero de entrada. Si se omite será el tabulador.
.EXAMPLE
   PS C:\Scripts> .\Set-EmployeeID.ps1
   Se actualiza el atributo EmployeeID en base al fichero de valores separados por
   tabulador c:\Scripts\Set-EmployeeID.tab
.EXAMPLE
   PS C:\Scripts> .\Set-EmployeeID.ps1 -ImportFile c:\ListadosAD\EmployeeID.csv -Delimiter ","
   Se actualiza el atributo EmployeeID en base al fichero de valores separados por comas
   c:\ListadosAD\EmployeeID.csv
.NOTES
   Requiere el módulo de Active Directory de Powershell
#>

param(
    [String] $ImportFile="$(Split-Path -Path $Myinvocation.MyCommand.Path -Parent)\Set-EmployeeID.tab",
    [String] $Delimiter = "`t"
    )

If((Get-Module ActiveDirectory) -eq $null){Import-Module ActiveDirectory}
$DC = (Get-ADDomain).PDCEmulator
$Users = Import-Csv -Path "$ImportFile" -Delimiter $Delimiter
ForEach($User In $Users)
{
    Set-ADUser -Identity $User.sAMAccountName -EmployeeID $User.EmployeeID -Confirm:$false
}


El fichero "EmployeeID.csv" que es donde tendremos el campo usuario y número empleado con el formato:

Con lo que tendremos un resultado como:






GoN Mayo 2015

miércoles, 20 de mayo de 2015

PS Exportar listado de usuarios.



Ha salido la necesidad de exportar todos los usuarios de nuestro directorio activo con un numero concreto de campos. Se ha decidido hacerlo con PowerShell.

Entre las pocas cosas que muestra se ve si el usuario esta bloqueado o deshabilitado.





·     Export-ADUsers.ps1: conecta con el PDCEmulator del dominio en el que se ejecuta y exporta todos los usuarios a un fichero de valores separados por tabulador (el script permite pasarle el parámetro -Delimiter para especificar otro delimitador). La ruta y nombre del fichero de exportación se puede pasar como parámetro u omitirse;  si se omite, se llamará yyyyMMdd_HHmm_Export-ADUsers.tab y estará en la misma carpeta del script (yyyyMMdd_HHmm se refiere a la fecha y hora en ese formato; por ejemplo 19 de Mayo de 2015 a las 14:30 sería 20150519_1430). Para no tener problemas con acentos, eñes, etc., el fichero de exportación está codificado como Unicode. La columna con la OU contiene el nombre distintivo (distinguishedName) de la OU en la que está el usuario.

Copiar en un Fichero con el nombre "Export-ADUsers.ps1" el siguiente texto:


<#
.Synopsis
   Exporta a un fichero de valores separados los usuarios del dominio
.DESCRIPTION
   El presente script exporta a un fichero de valores separados por tabulador, o el
   caracter que se especifique, los atributos Name, sAMAccountName, Enabled,
   LockedOut, mail, EmployeeID y OU (el nombre distintivo de la OU) de los usuario
   del dominio en el que se ejecuta.
.PARAM ExportFile
   Es la ruta y nombre del fichero (pueden usarse rutas absolutas o relativas así
   como sólo el nombre si el inductor de Powershell está situado en la carpeta donde
   se ubicará el fichero). Se trata de un fichero de valores separados por tabulador
   o el caracter que se pase como parametro delimiter.
   Si se omite, este parámetro tiene el valor yyyyMMdd_HHmm_Export-ADUsers.tab con
   la ruta donde está ubicado el script (si el script está en c:\Scripts el fichero será
   c:\Scripts\20150519_1430_Export-ADUser.tab).
.PARAM Delimiter
   Caracter delimitador del fichero de exportación. Si se omite será el tabulador.
.EXAMPLE
   PS C:\Scripts> .\Export-ADUsers.ps1
   Se exportan los usuarios al fichero de valores separados por tabulador
   c:\Scripts\20150519_1423_Export-ADUser.tab
.EXAMPLE
   PS C:\tmp> .\Export-ADUsers.ps1 -ExportFile c:\tmp\Usuarios.csv -Delimiter ","

   PS C:\PStest> .\Export-ADUsers.ps1 -ExportFile c:\PSTest\Usuarios.csv -Delimiter ","

   Se exportan los usuaios al fichero de valores separados por comas
   c:\ListadosAD\Usuarios.csv
.NOTES
   Requiere el módulo de Active Directory de Powershell
#>

param(
    $ExportFile="$(Split-Path -Path $Myinvocation.MyCommand.Path -Parent)\$(Get-Date -Format "yyyyMMdd`_HHmm")`_Export-ADUsers.tab",
    $Delimiter = "`t"
    )

If((Get-Module ActiveDirectory) -eq $null){Import-Module ActiveDirectory}
$Users = @()
$DC = (Get-ADDomain).PDCEmulator
$Properties = "Name,sAMAccountName,Enabled,LockedOut,mail,EmployeeID" -split ","
Get-AdUser -Filter * -Server $DC -Properties $Properties | ForEach{ `

   $User = New-Object PsCustomObject
   
   ForEach($Property In $Properties)
    {
        Add-Member -InputObject $User -MemberType NoteProperty -Name $Property -Value $_.$Property
    }
    $tempOU = $_.DistinguishedName -Replace "\\,",[char]20 
    $arrOU = $tempOU -split ","
    $OU = $arrOU[1..($arrOU.Count - 1)] -Replace [char]20,"\," 
    Add-Member -InputObject $User -MemberType NoteProperty -Name OU -Value "$($OU)"
    $USers += $User
}
$Users | Export-Csv -Path "$ExportFile" -Encoding Unicode -Delimiter $Delimiter -NoTypeInformation -Force


La ejecución:

Es posible que previamente tengas que hacer:



Luego ya será bastante fácil trabajar con esta información desde por ejemplo un Excel:

Con las Window 8 viene una herramienta para trabajar pon ps1



==========

Una opción básica de sacar un mayor número de información con un solo comando podría ser:
get-aduser -Filter * | Export-csv c:\tmp\usuarios.csv


===========

Unos comandos sencillo que nos pueden ayudar a localizar usuarios:


*Todos los usuarios y sus propiedades:
Get-ADUser -Filter * -Properties *

*Para un usuario hay que poner el contenido del campo  samAccountName no el de UserPrincipalName:
Get-ADUser Fernando.sanchez.alons -Properties *


Gon. Mayo 2015