Contenidos
- Introducción
- Software
- Listar software
- Ejemplos
- Listar programas instalados
- Seleccionar el nombre y versión de los programas instalados
- Indicar si hay algún antivirus instalado
- Número de programas instalados
- Agrupar los programas cuyo nombre sea «Microsoft»
- Indicar si está instalado Gimp
- Agrupa los programas cuyo vendedor sea Microsoft
- Indicar el número de programas cuyo nombre sea Microsoft (agrupar)
- Mostrar programas instalados por familia
- Agrupar por familia los programas instalados
- Indicar cuántos programas hay por familia
- Ejercicios
- Ejemplos
- Buscar software
- Instalar software
- Desinstalar software
- Control de aplicaciones
- Listar software
- Actualizaciones
- Listar actualizaciones
- Ejemplos
- Ver el nombre de las actualizaciones
- Ver el ID de las actualizaciones
- Ver si hay una actualización instalada
- Listar por descripción las actualizaciones instaladas en el equipo
- Agrupar actualizaciones por descripción
- Agrupar actualizaciones por descripción y mostrar el nombre de la agrupación
- Listar por fecha las actualizaciones instaladas en el equipo
- Ejemplos
- Listar actualizaciones
- Antivirus
Introducción
El software es la parte intangible (que no se puede tocar) del ordenador, es un elemento lógico y se define como un conjunto de órdenes e instrucciones que al ejecutarse sirven para realizar alguna tarea (los programas sin ejecutar son simples archivos en disco). Con el software se saca partido al ordenador, sin software el ordenador sería un conjunto de placas, tarjetas y cables sin ninguna utilidad.
Los sistemas operativos hay instalados programas por defecto pero también se pueden instalar otros.
El software se puede dividir en tipos:
- Software de sistema. Conjunto de programas que administran los recursos del ordenador.
- Software de programación. Es el conjunto de herramientas que sirven para crear nuevos programas, éstos se crean utilizando un lenguaje de programación. Un lenguaje de programación es un conjunto de símbolos, reglas sintácticas y semánticas que indican cómo hacer un programa. Todas las órdenes o instrucciones que forman el programa se escriben en unos archivos llamados códigos fuente.
- Software de aplicación. Se refiere a los programas que permiten realizar tareas a los usuarios con conocimientos básicos de informática. Les permite sacar provecho al ordenador y así realizar tareas relacionadas con su actividad como, por ejemplo, escribir un documento, enviar un mail, etc.
Software
Cuando se habla de software tenemos que tener en cuenta qué se puede hacer con el mismo:
- Instalar.
- Actualizar.
- Downgrade (devolver el software a una antigua versión).
- Desinstalar.
La instalación y desinstalación de programas es una tarea importante y se tiene que hacer con control, no hay que instalar un programa sin estar seguro de lo que hace, y siempre hay que conocer la fuente de donde proviene el programa.
Los sistemas operativos tienen instalado por defecto multitud de programas que nos permiten realizar gran cantidad de tareas como escribir documentos, escuchar música, navegar por Internet, etc. Sin embargo, esto no es suficiente para la mayoría de los usuarios y es probable que necesiten instalarse nuevos programas como, por ejemplo, un navegador de Internet distinto al que tiene el sistema operativo por defecto, un conjunto de herramientas ofimáticas más completo, etc.
Aunque lo normal es instalar una sola vez un programa, a veces hay algún problema en el programa y es necesario reinstalar algún archivo o el programa entero.
Es importante tener el software correctamente instalado, indentificado y controlar el acceso a los programas por parte de los usuarios.
Las operaciones que se pueden realizar sobre el software son:
Listar software
Cmdlet
Get-Package
Parámetros y alias de los parámetros para el cmdlet Get-Package
Name {} RequiredVersion {} MinimumVersion {} MaximumVersion {} AllVersions {} Force {} ForceBootstrap {} Verbose {vb} Debug {db} ErrorAction {ea} WarningAction {wa} InformationAction {infa} ErrorVariable {ev} WarningVariable {wv} InformationVariable {iv} OutVariable {ov} OutBuffer {ob} PipelineVariable {pv} ProviderName {Provider} IncludeWindowsInstaller {} IncludeSystemComponent {} AdditionalArguments {} Destination {} ExcludeVersion {} Scope {} SkipDependencies {} PackageManagementProvider {} Type {} AllowClobber {} SkipPublisherCheck {} InstallUpdate {} NoPathUpdate {}
WMI
Get-WmiObject win32_Product Get-WmiObject -query "select name from win32_product"
Ejemplos
Listar programas instalados
Get-Package | Select-Object Name (Get-WmiObject -Class Win32_Product).name Get-WmiObject -query "select name from win32_product" | select Name
Seleccionar el nombre y versión de los programas instalados
Get-Package | Select-Object Name, Version (Get-WmiObject -Class Win32_Product) | Select-Object name,version
Indicar si hay algún antivirus instalado
((Get-Package).name) | Select-String 'Defender' ((Get-WmiObject -Class Win32_Product).name) | Select-String 'Antivirus'
Número de programas instalados
((Get-Package).name).count ((Get-WmiObject -Class Win32_Product).name).count
Agrupar los programas cuyo nombre sea «Microsoft»
Get-Package | Select-String "Microsoft" | Group-Object (Get-WmiObject -Class Win32_Product) | Select-String "Microsoft" | Group-Object
Indicar si está instalado Gimp
if(((Get-Package).name) | Select-String "Microsoft"){"Instalado"} if(((Get-WmiObject -Class Win32_Product).name) | Select-String "Gimp"){"Instalado"}
Agrupa los programas cuyo vendedor sea Microsoft
(Get-WmiObject -Class Win32_Product).vendor | Select-String "Microsoft" | Group-Object
Indicar el número de programas cuyo nombre sea Microsoft (agrupar)
((Get-Package).Name | Select-String "Microsoft" | Group-Object).Count ((Get-WmiObject -Class Win32_Product).vendor | Select-String "Microsoft" | Group-Object).Count
Mostrar programas instalados por familia
((Get-WmiObject -Class Win32_Product).name) | %{$_.split(' ')[0]}
Agrupar por familia los programas instalados
((Get-WmiObject -Class Win32_Product).name) | %{$_.split(' ')[0]} | Group-Object
Indicar cuántos programas hay por familia
((Get-WmiObject -Class Win32_Product).vendor | Group-Object)
Ejercicios
Crear una función que indique si se ha instalado un programa
function ProgramaInstalado($programa) { if(((Get-WmiObject -Class Win32_Product).name) | Select-String $programa){"Instalado"} } ProgramaInstalado VMware Player
Buscar en el registro información sobre programas
$name='Google' $producto=(Get-WmiObject -Class Win32_Product) foreach($uno in $producto) { if($uno.name -match $name) { $valor=$uno.IdentifyingNumber $valor=$valor.replace('{','') $valor=$valor.replace('}','') } } Get-ChildItem hklm:\ -rec -ea SilentlyContinue | % { if($_ -match $valor){$_} }
Buscar software
Cmdlet
Find-Package
Parámetros y alias de los parámetros para el cmdlet Find-Package
IncludeDependencies {} AllVersions {} Source {} Credential {} Proxy {} ProxyCredential {} Name {} RequiredVersion {} MinimumVersion {} MaximumVersion {} Force {} ForceBootstrap {} Verbose {vb} Debug {db} ErrorAction {ea} WarningAction {wa} InformationAction {infa} ErrorVariable {ev} WarningVariable {wv} InformationVariable {iv} OutVariable {ov} OutBuffer {ob} PipelineVariable {pv} ProviderName {Provider} ConfigFile {} SkipValidate {} Headers {} FilterOnTag {} Contains {} AllowPrereleaseVersions {} PackageManagementProvider {} PublishLocation {} ScriptSourceLocation {} ScriptPublishLocation {} Type {} Filter {} Tag {} Includes {} DscResource {} RoleCapability {} Command {}
Ejemplos
Buscar la herramienta ZoomIt
Find-Package zoomit
Instalar software
Para instalar programas es necesario controlar el hardware del equipo, el software instalado en el equipo por el tema de incompatibilidades, las versiones y las licencias.
Cmdlet
Install-Package
Parámetros y alias de los parámetros para el cmdlet Install-Package
InputObject {} Name {} RequiredVersion {} MinimumVersion {} MaximumVersion {} Source {} Credential {} Proxy {} ProxyCredential {} AllVersions {} Force {} ForceBootstrap {} Verbose {vb} Debug {db} ErrorAction {ea} WarningAction {wa} InformationAction {infa} ErrorVariable {ev} WarningVariable {wv} InformationVariable {iv} OutVariable {ov} OutBuffer {ob} PipelineVariable {pv} WhatIf {wi} Confirm {cf} ProviderName {Provider} IncludeWindowsInstaller {} IncludeSystemComponent {} AdditionalArguments {} ConfigFile {} SkipValidate {} Headers {} FilterOnTag {} Contains {} AllowPrereleaseVersions {} Destination {} ExcludeVersion {} Scope {} SkipDependencies {} PackageManagementProvider {} PublishLocation {} ScriptSourceLocation {} ScriptPublishLocation {} Type {} Filter {} Tag {} Includes {} DscResource {} RoleCapability {} Command {} AllowClobber {} SkipPublisherCheck {} InstallUpdate {} NoPathUpdate {}
Ejemplo
Instalar software buscándolo previamente
Find-Package zoomit | Install-Package
Desinstalar software
Cmdlet
Uninstall-Package
Parámetros y alias de los parámetros para el cmdlet Uninstall-Package
InputObject {} Name {} RequiredVersion {} MinimumVersion {} MaximumVersion {} AllVersions {} Force {} ForceBootstrap {} Verbose {vb} Debug {db} ErrorAction {ea} WarningAction {wa} InformationAction {infa} ErrorVariable {ev} WarningVariable {wv} InformationVariable {iv} OutVariable {ov} OutBuffer {ob} PipelineVariable {pv} WhatIf {wi} Confirm {cf} ProviderName {Provider} IncludeWindowsInstaller {} IncludeSystemComponent {} AdditionalArguments {} Destination {} ExcludeVersion {} Scope {} SkipDependencies {} PackageManagementProvider {} Type {} AllowClobber {} SkipPublisherCheck {} InstallUpdate {} NoPathUpdate {}
Ejemplo
Desinstalar software
Uninstall-Package zoomit
Control de aplicaciones
AppLocker mejora las características de control de aplicaciones y la funcionalidad de las directivas de restricción de software. AppLocker tiene nuevas capacidades y extensiones que le permiten crear reglas para permitir o denegar que las aplicaciones se ejecuten en función de identidades únicas de archivos y especificar qué usuarios o grupos pueden ejecutar dichas aplicaciones.
Con AppLocker, puede:
- Controle los siguientes tipos de aplicaciones: archivos ejecutables (. exe y. com), scripts (. js,. ps1,. vbs,. cmd y. bat), archivos de Windows Installer (. MST,. msi y. msp) y archivos DLL (. dll y. ocx), y aplicaciones empaquetadas y los instaladores de aplicaciones empaquetadas (Appx).
- Defina reglas basadas en atributos de archivo derivados de la firma digital, como el editor, el nombre de producto, el nombre de archivo y la versión de archivo. Por ejemplo, puede crear reglas basadas en el atributo Editor persistente a través de las actualizaciones, o bien puede crear reglas para una versión específica de un archivo.
- Asignar una regla a un grupo de seguridad o a un usuario individual.
- Crear excepciones a ciertas reglas. Por ejemplo, puede crear una regla que permita que se ejecuten todos los procesos de Windows excepto el editor del registro (regedit. exe).
- Usar el modo de solo auditoría para implementar la directiva y ver qué impacto tendría antes de aplicarla.
- Importar y exportar reglas. La importación y la exportación afectan a toda la Directiva. Por ejemplo, si exporta una directiva, se exportan todas las reglas de todas las colecciones de reglas, incluida la configuración de aplicación de las colecciones de reglas. Si importa una directiva, se sobrescriben todos los criterios de la directiva existente.
- Simplificar la creación y la administración de reglas de AppLocker mediante cmdlets de Windows PowerShell.
Cmdlet
Get-AppLockerPolicy
Parámetros y alias de los parámetros para el cmdlet Get-AppLockerPolicy
Name Aliases ---- ------- Local {} Domain {} Effective {} Ldap {} Xml {} Verbose {vb} Debug {db} ErrorAction {ea} WarningAction {wa} InformationAction {infa} ErrorVariable {ev} WarningVariable {wv} InformationVariable {iv} OutVariable {ov} OutBuffer {ob} PipelineVariable {pv}
Ejemplo
Obtener y probar una política de AppLocker para los ejecutables que haya en System32
Este ejemplo obtiene la política local de AppLocker en la computadora y luego prueba la política usando el cmdlet Test-AppLockerPolicy para probar si el grupo Todos podrá ejecutar los archivos .exe en C: \Windows\System32.
Get-AppLockerPolicy -Local | Test-AppLockerPolicy -Path C:\Windows\System32\*.exe -User Todos
Actualizaciones
Cada día aparecen nuevas vulnerabilidades en los sistemas operativos y en los programas, es importante mantener el sistema operativo actualizado con los últimos parches de seguridad.
Las actualizaciones sirven para evitar problemas o corregirlos, de esta forma el sistema operativo se mantiene seguro. Las actualizaciones son necesarias para los sistemas operativos.
Los sistemas de gestión de actualizaciones permiten que éstas se descarguen y se instalen con orden, de no ser así podrían aparecer problemas si el sistema operativo comenzara a descargar todas las actualizaciones a la vez, en algunos casos pueden llegar a saturar ciertos recursos como, por ejemplo, la conexión de red. Para resolver este problema algunos sistemas operativos tienen programas que descargan las actualizaciones y las envían a otros ordenadores a la red de una manera ordenada.
Gracias a los sistemas de actualizaciones, el tiempo que va desde que se registra un fallo hasta que se corrige es muy pequeño.
Las actualizaciones pueden ser del sistema operativo, de programas, de controladores, etc.
Listar actualizaciones
Cmdlet
Get-HotFix
Parámetros y alias de los parámetros para el cmdlet Get-HotFix
Id {HFID} Description {} ComputerName {CN, __Server, IPAddress} Credential {} Verbose {vb} Debug {db} ErrorAction {ea} WarningAction {wa} InformationAction {infa} ErrorVariable {ev} WarningVariable {wv} InformationVariable {iv} OutVariable {ov} OutBuffer {ob} PipelineVariable {pv}
El cmdlet visto en el apartado anterior también sirve para ver actualizaciones
Get-Package
Ejemplos
Ver el nombre de las actualizaciones
Get-HotFix Get-Package | Select-Object Name | Select-String "Actualización"
Ver el ID de las actualizaciones
Get-HotFix | Select-Object HotFixID
Ver si hay una actualización instalada
$kb=Read-Host 'NúmeroActualización' ((Get-HotFix).hotfixid | Select-String $kb)
Listar por descripción las actualizaciones instaladas en el equipo
Get-HotFix | Select-Object Description (Get-HotFix).Description
Agrupar actualizaciones por descripción
Get-HotFix | Group-Object Description (Get-HotFix).Description | Group-Object
Agrupar actualizaciones por descripción y mostrar el nombre de la agrupación
(Get-HotFix | Group-Object Description).Name
Listar por fecha las actualizaciones instaladas en el equipo
Get-HotFix | Sort-Object InstalledOn
Antivirus
Uno de los programas principales para evitar la propagación de aplicaciones no deseadas es el antivirus.
El antivirus que se utiliza en Windows es Windows Defender.
Examinar el equipo en busca de virus se utiliza el cmdlet
Start-MpScan
Parámetros y alias de los parámetros para el cmdlet Start-MpScan
ScanPath {} ScanType {} CimSession {Session} ThrottleLimit {} AsJob {} Verbose {vb} Debug {db} ErrorAction {ea} WarningAction {wa} InformationAction {infa} ErrorVariable {ev} WarningVariable {wv} InformationVariable {iv} OutVariable {ov} OutBuffer {ob} PipelineVariable {pv}
Para ver las últimas definiciones del antivirus se utiliza el cmdlet
(Get-MpThreatCatalog).ThreatName
Parámetros y alias de los parámetros para el cmdlet Get-MpThreatCatalog
ThreatID {ID} CimSession {Session} ThrottleLimit {} AsJob {} Verbose {vb} Debug {db} ErrorAction {ea} WarningAction {wa} InformationAction {infa} ErrorVariable {ev} WarningVariable {wv} InformationVariable {iv} OutVariable {ov} OutBuffer {ob} PipelineVariable {pv}
Ejemplos
Ver últimos escaneos
(Get-MpComputerStatus).FullScanEndTime (Get-MpComputerStatus).FullScanStartTime (Get-MpComputerStatus).QuickScanEndTime (Get-MpComputerStatus).QuickScanStartTime
Última actualización de firmas
(Get-MpComputerStatus).NISSignatureLastUpdated (Get-MpComputerStatus).AntivirusSignatureLastUpdated
Última actualización del Antispayware
(Get-MpComputerStatus).AntispywareSignatureLastUpdated
Para actualizar las definiciones en el antivirus se utiliza el cmdlet
Update-MpSignature
Parámetros y alias de los parámetros para el cmdlet Update-MpSignature
UpdateSource {} CimSession {Session} ThrottleLimit {} AsJob {} Verbose {vb} Debug {db} ErrorAction {ea} WarningAction {wa} InformationAction {infa} ErrorVariable {ev} WarningVariable {wv} InformationVariable {iv} OutVariable {ov} OutBuffer {ob} PipelineVariable {pv}