{"id":1228,"date":"2014-03-04T11:00:31","date_gmt":"2014-03-04T10:00:31","guid":{"rendered":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/?p=1228"},"modified":"2014-03-04T11:09:15","modified_gmt":"2014-03-04T10:09:15","slug":"sharepoint-2013-como-ejecutar-comandos-powershell-desde-nuestras-soluciones","status":"publish","type":"post","link":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-como-ejecutar-comandos-powershell-desde-nuestras-soluciones\/","title":{"rendered":"SharePoint 2013 C\u00f3mo ejecutar comandos PowerShell desde nuestras soluciones de SharePoint"},"content":{"rendered":"<p>PowerShell se ha convertido en una herramienta indispensable hoy en d\u00eda en nuestros desarrollos, es una herramienta que hace de \u00abpegamento\u00bb entre developers e IT Pros. Los IT Pros est\u00e1n contentos porque se ejecuta en una consola en blanco y negro, mientras que los developers utilizan un lenguaje de programaci\u00f3n para poder realizar todas las tareas que anteriormente no pod\u00edan realizar.<\/p>\n<p>M\u00e1s all\u00e1 de su uso, PowerShell es relativamente importante en SharePoint porque podemos realizar operaciones de forma mucho m\u00e1s r\u00e1pida que sin la necesidad, bien de generar una aplicaci\u00f3n de consola, o un proyecto en Visual Studio. Con la ventaja a\u00f1adida de que si te equivocas no debes de volver a generar el c\u00f3digo fuente, instalarlo, desplegarlo, reiniciar el IIS, etc. De alguna forma, se puede comparar al modo en que se utiliza JavaScript.<\/p>\n<p>Si observamos la cantidad de comandos que podemos ejecutar, pr\u00e1cticamente tenemos la misma funcionalidad que con el modelo de objetos servidor (hablo naturalmente de soluciones OnPremise) m\u00e1s todas las operaciones de Administraci\u00f3n del servidor (Copias de seguridad, creaci\u00f3n de WebApplication, levantar servicios, et..). En un principio, podemos pensar que no tengo la necesidad de ejecutar ning\u00fan comando PowerShell desde ninguna soluci\u00f3n de SharePoint, esto es la teor\u00eda.<!--more--><br \/>\nSeg\u00fan empiezas a utilizar PowerShell y vas comprobando de su potencia, su uso es mucho mayor, empiezas por peque\u00f1as funciones hasta que incluyes alg\u00fan Cmdlets (pod\u00e9is ver este <a href=\"http:\/\/www.compartimoss.com\/revistas\/numero-17\/powershell-cmdlets-crearlos-morir\" target=\"_blank\">art\u00edculo <\/a>del gran Maestro Gustavo Velez de c\u00f3mo implementarlo).<\/p>\n<p>Ahora bien, el uso de PowerShell o la forma en que los departamentos de IT se organizan, no tiene porqu\u00e9 ser la misma forma que t\u00fa consideras m\u00e1s optima o la que deber\u00eda de ser adecuada para un entorno SharePoint. En este momento, es cuando te das cuenta que tu forma de trabajar no encaja con la exigida por el cliente. Tienes dos formas: una perder el cliente y otra, adaptarte al requisito del cliente. Naturalmente, la opci\u00f3n 1 no esta ni mucho menos contemplada salvo que realmente sea un disparate lo que propone.<\/p>\n<p>Ahora bien, dentro de los entornos en los que nos encontramos tenemos 3 opciones:<\/p>\n<ol>\n<li>Todos los despliegues de la soluci\u00f3n es mediante PowerShell<\/li>\n<li>Todos los despliegues son haciendo uso de un WSP y desplegarlos mediante PowerShell.<\/li>\n<li>Un entorno hibrido: \u00a0utilizar bien WSP o PowerShell dependiendo de qu\u00e9 es mejor en cada momento.<\/li>\n<\/ol>\n<p>La opci\u00f3n 3 es la mejor, pero como todo en esta vida, quiz\u00e1s no escojas la mejor opci\u00f3n.<\/p>\n<p>Ahora bien, si necesitamos realizar todo con PowerShell est\u00e1 claro que podemos utilizar nuestra DLL en PowerShell de una forma muy simple. Mirar este ejemplo:<\/p>\n<pre class=\"brush: powershell; title: ; notranslate\" title=\"\">\r\n$dll=&quot;C:\\Encamina.Enmarcha.ALM.dll&quot;\r\n$dllCommon=&quot;C:\\ENCAMINA.Sharepoint.Common.dll&quot;\r\n&#x5B;System.Reflection.Assembly]::LoadFile($dll)\r\n&#x5B;System.Reflection.Assembly]::LoadFile($dllCommon)\r\n$site= &quot;http:\/\/democolabora&quot;\r\n&#x5B;Encamina.Enmarcha.ALM.Run]::ExtractContent($site, $null);\r\n<\/pre>\n<p>Pero en el caso contrario, \u00bfC\u00f3mo lo podemos hacer? Pues tambi\u00e9n es posible. Gracias a mi compa\u00f1ero<a href=\"https:\/\/twitter.com\/adderin\" target=\"_blank\"> Adrian Del Rinc\u00f3n<\/a> en <a href=\"http:\/\/www.encamina.com\" target=\"_blank\">ENCAMINA <\/a>hemos implementando una funcionalidad para conseguir tal efecto. Para ello bastar\u00eda con el siguiente c\u00f3digo:<\/p>\n<pre class=\"brush: csharp; title: ; notranslate\" title=\"\">\r\npublic\u00a0static\u00a0Collection&lt;PSObject&gt;\u00a0RunPowerShell(string\u00a0scriptFile,\u00a0string\u00a0scriptParameters\u00a0=\u00a0&quot;&quot;)\r\n\u00a0\u00a0{\r\n\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var\u00a0runspaceConfiguration\u00a0=\u00a0RunspaceConfiguration.Create();\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var\u00a0runspace\u00a0=\u00a0RunspaceFactory.CreateRunspace(runspaceConfiguration);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0runspace.Open();\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var\u00a0scriptInvoker\u00a0=\u00a0new\u00a0RunspaceInvoke(runspace);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0scriptInvoker.Invoke(&quot;Set-ExecutionPolicy\u00a0Unrestricted&quot;);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var\u00a0pipeline\u00a0=\u00a0runspace.CreatePipeline();\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var\u00a0scriptCommand\u00a0=\u00a0new\u00a0Command(scriptFile);\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if\u00a0(!string.IsNullOrEmpty(scriptParameters))\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0foreach\u00a0(var\u00a0commandParm\u00a0in\u00a0scriptParameters.Split('\u00a0').Select(scriptParameter\u00a0=&gt;\u00a0new\u00a0CommandParameter(null,\u00a0scriptParameter)))\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0scriptCommand.Parameters.Add(commandParm);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var\u00a0commandParam\u00a0=\u00a0new\u00a0CommandParameter(&quot;IsOutsideCmd&quot;,\u00a0true);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0scriptCommand.Parameters.Add(commandParam);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0pipeline.Commands.Add(scriptCommand);\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0try\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0var\u00a0results\u00a0=\u00a0pipeline.Invoke();\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return\u00a0results;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0catch\u00a0(Exception)\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0{\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0return\u00a0null;\r\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\r\n\u00a0\u00a0}\r\n<\/pre>\n<p>La funci\u00f3n no tiene m\u00e1s misterio que, por un lado, se solicita la ruta donde esta ubicado el fichero PowerShell. Ahora bien, a la hora de implementar este fichero PowerShell hay que tener con cuidado con los mensajitos que se muestran por la consola, dado que no estamos en el mismo contexto producir\u00e1n un fallo. Es decir, si escribimos Write-Host \u00ab&#8230;\u00bb no funcionara. El motivo es claro porque no tiene ubicaci\u00f3n para mostrar el mensaje. Para solucionar esta limitaci\u00f3n en lugar de utilizar Write-Host mejor utilizar Write-Output y mostrar estos mensajes en un fichero para posteriormente comprobar si la ejecuci\u00f3n ha ido correctamente.<\/p>\n<h2>\u00bfPor qu\u00e9 necesito ejecutar PowerShell dentro de un WSP?<\/h2>\n<p>Principalmente para adaptarnos a todos los entornos posibles, y hacer que nuestra forma de trabajar sea la misma independientemente del entorno en el que nos encontremos y podamos sacar el m\u00e1ximo provecho a la situaci\u00f3n. Nosotros disponemos de un framework propio \u00abENMARCHA\u00bb que su funcionalidad es establecer unos patrones, unas funciones, una ayuda para que podamos conseguir nuestro desarrollo m\u00e1s \u00e1gil y que pueda guiar a trabajar de la forma que pensamos que es m\u00e1s eficiente y correcta, en algunas ocasiones tendremos que ejecutarlo desde PowerShell, otras veces desde la soluci\u00f3n, pero independientemente de donde se invoca, siempre se esta comportando de la misma forma y con el mismo c\u00f3digo.<\/p>\n<!-- AddThis Advanced Settings generic via filter on the_content --><!-- AddThis Share Buttons generic via filter on the_content --><span class=\"et_bloom_bottom_trigger\"><\/span>","protected":false},"excerpt":{"rendered":"<p>PowerShell se ha convertido en una herramienta indispensable hoy en d\u00eda en nuestros desarrollos, es una herramienta que hace de \u00abpegamento\u00bb entre developers e IT Pros. Los IT Pros est\u00e1n contentos porque se ejecuta en una consola en blanco y &hellip; <a href=\"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-como-ejecutar-comandos-powershell-desde-nuestras-soluciones\/\">Continue reading <span class=\"meta-nav\">&rarr;<\/span><\/a><!-- AddThis Advanced Settings generic via filter on get_the_excerpt --><!-- AddThis Share Buttons generic via filter on get_the_excerpt --><\/p>\n","protected":false},"author":8,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[10],"tags":[150],"class_list":["post-1228","post","type-post","status-publish","format-standard","hentry","category-powershell","tag-powershell"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v18.2.1 (Yoast SEO v27.3) - https:\/\/yoast.com\/product\/yoast-seo-premium-wordpress\/ -->\n<title>SharePoint 2013 C\u00f3mo ejecutar comandos PowerShell desde nuestras soluciones de SharePoint - Desarrollando sobre SharePoint<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-como-ejecutar-comandos-powershell-desde-nuestras-soluciones\/\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:title\" content=\"SharePoint 2013 C\u00f3mo ejecutar comandos PowerShell desde nuestras soluciones de SharePoint - Desarrollando sobre SharePoint\" \/>\n<meta name=\"twitter:description\" content=\"PowerShell se ha convertido en una herramienta indispensable hoy en d\u00eda en nuestros desarrollos, es una herramienta que hace de \u00abpegamento\u00bb entre developers e IT Pros. Los IT Pros est\u00e1n contentos porque se ejecuta en una consola en blanco y &hellip; Continue reading &rarr;\" \/>\n<meta name=\"twitter:label1\" content=\"Escrito por\" \/>\n\t<meta name=\"twitter:data1\" content=\"Adri\u00e1n D\u00edaz\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tiempo de lectura\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutos\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-como-ejecutar-comandos-powershell-desde-nuestras-soluciones\\\/#article\",\"isPartOf\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-como-ejecutar-comandos-powershell-desde-nuestras-soluciones\\\/\"},\"author\":{\"name\":\"Adri\u00e1n D\u00edaz\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"headline\":\"SharePoint 2013 C\u00f3mo ejecutar comandos PowerShell desde nuestras soluciones de SharePoint\",\"datePublished\":\"2014-03-04T10:00:31+00:00\",\"dateModified\":\"2014-03-04T10:09:15+00:00\",\"mainEntityOfPage\":{\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-como-ejecutar-comandos-powershell-desde-nuestras-soluciones\\\/\"},\"wordCount\":882,\"commentCount\":0,\"keywords\":[\"powershell\"],\"articleSection\":[\"powershell\"],\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-como-ejecutar-comandos-powershell-desde-nuestras-soluciones\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-como-ejecutar-comandos-powershell-desde-nuestras-soluciones\\\/\",\"url\":\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-como-ejecutar-comandos-powershell-desde-nuestras-soluciones\\\/\",\"name\":\"SharePoint 2013 C\u00f3mo ejecutar comandos PowerShell desde nuestras soluciones de SharePoint - Desarrollando sobre SharePoint\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#website\"},\"datePublished\":\"2014-03-04T10:00:31+00:00\",\"dateModified\":\"2014-03-04T10:09:15+00:00\",\"author\":{\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\"},\"inLanguage\":\"es\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"http:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/sharepoint-2013-como-ejecutar-comandos-powershell-desde-nuestras-soluciones\\\/\"]}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#website\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/\",\"name\":\"Desarrollando sobre SharePoint\",\"description\":\"Arquitectura, buenas pr\u00e1cticas y desarrollo sobre la nueva herramienta de Microsoft SharePoint 2016\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"es\"},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/#\\\/schema\\\/person\\\/c9bfaede1bfba9564bb7f500788782bb\",\"name\":\"Adri\u00e1n D\u00edaz\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"es\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g\",\"caption\":\"Adri\u00e1n D\u00edaz\"},\"description\":\"Adri\u00e1n D\u00edaz es Ingeniero Inform\u00e1tico por la Universidad Polit\u00e9cnica de Valencia. Es MVP de Microsoft en la categor\u00eda Office Development desde 2014, MCPD de SharePoint 2010, Microsoft Active Profesional y Microsoft Comunity Contribuitor 2012. Cofundador del grupo de usuarios de SharePoint de Levante LevaPoint. Lleva desarrollando con tecnolog\u00edas Microsoft m\u00e1s de 10 a\u00f1os y desde hace 3 a\u00f1os est\u00e1 centrado en el desarrollo sobre SharePoint. Actualmente es Software &amp; Cloud Architect Lead en ENCAMINA.\",\"url\":\"https:\\\/\\\/blogs.encamina.com\\\/desarrollandosobresharepoint\\\/author\\\/desarrollandosobresharepoint\\\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"SharePoint 2013 C\u00f3mo ejecutar comandos PowerShell desde nuestras soluciones de SharePoint - Desarrollando sobre SharePoint","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-como-ejecutar-comandos-powershell-desde-nuestras-soluciones\/","twitter_card":"summary_large_image","twitter_title":"SharePoint 2013 C\u00f3mo ejecutar comandos PowerShell desde nuestras soluciones de SharePoint - Desarrollando sobre SharePoint","twitter_description":"PowerShell se ha convertido en una herramienta indispensable hoy en d\u00eda en nuestros desarrollos, es una herramienta que hace de \u00abpegamento\u00bb entre developers e IT Pros. Los IT Pros est\u00e1n contentos porque se ejecuta en una consola en blanco y &hellip; Continue reading &rarr;","twitter_misc":{"Escrito por":"Adri\u00e1n D\u00edaz","Tiempo de lectura":"4 minutos"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-como-ejecutar-comandos-powershell-desde-nuestras-soluciones\/#article","isPartOf":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-como-ejecutar-comandos-powershell-desde-nuestras-soluciones\/"},"author":{"name":"Adri\u00e1n D\u00edaz","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"headline":"SharePoint 2013 C\u00f3mo ejecutar comandos PowerShell desde nuestras soluciones de SharePoint","datePublished":"2014-03-04T10:00:31+00:00","dateModified":"2014-03-04T10:09:15+00:00","mainEntityOfPage":{"@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-como-ejecutar-comandos-powershell-desde-nuestras-soluciones\/"},"wordCount":882,"commentCount":0,"keywords":["powershell"],"articleSection":["powershell"],"inLanguage":"es","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-como-ejecutar-comandos-powershell-desde-nuestras-soluciones\/#respond"]}]},{"@type":"WebPage","@id":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-como-ejecutar-comandos-powershell-desde-nuestras-soluciones\/","url":"http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-como-ejecutar-comandos-powershell-desde-nuestras-soluciones\/","name":"SharePoint 2013 C\u00f3mo ejecutar comandos PowerShell desde nuestras soluciones de SharePoint - Desarrollando sobre SharePoint","isPartOf":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#website"},"datePublished":"2014-03-04T10:00:31+00:00","dateModified":"2014-03-04T10:09:15+00:00","author":{"@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb"},"inLanguage":"es","potentialAction":[{"@type":"ReadAction","target":["http:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/sharepoint-2013-como-ejecutar-comandos-powershell-desde-nuestras-soluciones\/"]}]},{"@type":"WebSite","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#website","url":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/","name":"Desarrollando sobre SharePoint","description":"Arquitectura, buenas pr\u00e1cticas y desarrollo sobre la nueva herramienta de Microsoft SharePoint 2016","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"es"},{"@type":"Person","@id":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/#\/schema\/person\/c9bfaede1bfba9564bb7f500788782bb","name":"Adri\u00e1n D\u00edaz","image":{"@type":"ImageObject","inLanguage":"es","@id":"https:\/\/secure.gravatar.com\/avatar\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/fe10b9eaf8ce4565ec75fba5a0d121c16186696e515cad2bedd42f6cf54e2007?s=96&d=mm&r=g","caption":"Adri\u00e1n D\u00edaz"},"description":"Adri\u00e1n D\u00edaz es Ingeniero Inform\u00e1tico por la Universidad Polit\u00e9cnica de Valencia. Es MVP de Microsoft en la categor\u00eda Office Development desde 2014, MCPD de SharePoint 2010, Microsoft Active Profesional y Microsoft Comunity Contribuitor 2012. Cofundador del grupo de usuarios de SharePoint de Levante LevaPoint. Lleva desarrollando con tecnolog\u00edas Microsoft m\u00e1s de 10 a\u00f1os y desde hace 3 a\u00f1os est\u00e1 centrado en el desarrollo sobre SharePoint. Actualmente es Software &amp; Cloud Architect Lead en ENCAMINA.","url":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/author\/desarrollandosobresharepoint\/"}]}},"_links":{"self":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/posts\/1228","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/comments?post=1228"}],"version-history":[{"count":0,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/posts\/1228\/revisions"}],"wp:attachment":[{"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/media?parent=1228"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/categories?post=1228"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogs.encamina.com\/desarrollandosobresharepoint\/wp-json\/wp\/v2\/tags?post=1228"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}