{"id":9117,"date":"2022-08-03T15:21:33","date_gmt":"2022-08-03T19:21:33","guid":{"rendered":"https:\/\/jdhitsolutions.com\/blog\/?p=9117"},"modified":"2022-08-03T15:21:36","modified_gmt":"2022-08-03T19:21:36","slug":"organizing-chaos-with-psworkitems-and-powershell","status":"publish","type":"post","link":"https:\/\/jdhitsolutions.com\/blog\/powershell\/9117\/organizing-chaos-with-psworkitems-and-powershell\/","title":{"rendered":"Organizing Chaos with PSWorkItems and PowerShell"},"content":{"rendered":"\n<p>I spend my working days living in a  PowerShell console. Over the years, I've developed many PowerShell modules to help me manage the chaos that is my work life. One area that always demands attention is managing my tasks and To-Dos. For several years I have been using the <a href=\"https:\/\/github.com\/jdhitsolutions\/MyTasks\" target=\"_blank\" rel=\"noreferrer noopener\">MyTasks module<\/a>. This module stored tasks and supporting information in a set of XML files. The code in the module treated the XML files as databases. I was trying to avoid a dependency on a SQL Server Express installation with the idea that would be overkill.<\/p>\n\n\n\n<p>ln the meantime, I finally got around to finishing and publishing the <a href=\"https:\/\/github.com\/jdhitsolutions\/MySQLite\" target=\"_blank\" rel=\"noreferrer noopener\">MySQLite <\/a>PowerShell module. This module has a set of PowerShell functions designed to simplify working with SQLite database files. This type of database has a much smaller footprint than SQL Server Express and would streamline my task management.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">PSWorkItem Database<\/h2>\n\n\n\n<p>All of this has led me to release a new PowerShell module called <a href=\"https:\/\/github.com\/jdhitsolutions\/PSWorkItem\" target=\"_blank\" rel=\"noreferrer noopener\">PSWorkitem<\/a>. This module takes the MySQLite module as a dependency and will only run on PowerShell 7 on 64bit Windows platforms. You can install the module from the PowerShell Gallery.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell\">Install-Module PSWorkItem -force<\/code><\/pre>\n\n\n\n<p>The installation process will also include the MySQLite module. Everything is stored in a single SQLite database file which you can create using <a href=\"https:\/\/bit.ly\/3PIdz4O\" target=\"_blank\" rel=\"noreferrer noopener\">Initialize-PSWorkItemDatabase<\/a>. <\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell\">Initialize=PSWWorkItemDatabase<\/code><\/pre>\n\n\n\n<p>The database will be created at <code>$Home\\PSWorkItem.db<\/code>. This path is saved to a global variable <code>PSWorkItemPath<\/code>,  which is defined when you import the module. All of the module commands that have a path to reference the PSWorkItem database use this global variable as the default value.<\/p>\n\n\n\n<p>To create a new PSWorkItem, specify the name, a category, and a due date. You can either specify the date and time or a number of days. The default is 30 days from now.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell\">New-PSWorkItem -name \"SRV2 backup\" -category SRV\nNew-PSWorkItem \"update resume\" Personal -DaysDue 15\nNew-PSWorkItem \"New AD User script\" Work -DueDate 8\/15\/2022 5:00PM<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Categories<\/h2>\n\n\n\n<p>All tasks, or PSWorkItems as I call them, have an associated category. The module will create default categories of Work, Personal, and Other. Categories are stored in their own table in the database file. You can add your categories.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell\">Add-PSWorkItemCategory -Name SRV -Description \"server management tasks\" <\/code><\/pre>\n\n\n\n<p>The module has several commands for managing categories. Use <a href=\"https:\/\/bit.ly\/3JlrafZ\" target=\"_blank\" rel=\"noreferrer noopener\">Get-PSWorkItemCategory<\/a> to view them.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-style-default\"><a href=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/08\/psworkitem-categories.png\"><img loading=\"lazy\" decoding=\"async\" width=\"438\" height=\"146\" src=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/08\/psworkitem-categories.png\" alt=\"PSWorkItem Categories\" class=\"wp-image-9118\" srcset=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/08\/psworkitem-categories.png 438w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/08\/psworkitem-categories-300x100.png 300w\" sizes=\"auto, (max-width: 438px) 100vw, 438px\" \/><\/a><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\">PSWorkItems<\/h2>\n\n\n\n<p>All of the object types in the module are based on class definitions. The module commands get data from the SQLite database and creates the appropriate object. The <code>PSWorkItem <\/code>type has a defined set of formatted views.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell\">Get-PSWorkItem<\/code><\/pre>\n\n\n\n<figure class=\"wp-block-image size-full is-style-default\"><a href=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/08\/psworkitems.png\"><img loading=\"lazy\" decoding=\"async\" width=\"685\" height=\"142\" src=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/08\/psworkitems.png\" alt=\"psworkitems defualt view\" class=\"wp-image-9119\" srcset=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/08\/psworkitems.png 685w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/08\/psworkitems-300x62.png 300w\" sizes=\"auto, (max-width: 685px) 100vw, 685px\" \/><\/a><\/figure>\n\n\n\n<p>The default is to display items that are due within 10 days, but you have options.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-style-default\"><a href=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/08\/get-psworkitem.png\"><img loading=\"lazy\" decoding=\"async\" width=\"766\" height=\"355\" src=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/08\/get-psworkitem.png\" alt=\"Get-PSWorkItem syntax\" class=\"wp-image-9120\" srcset=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/08\/get-psworkitem.png 766w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/08\/get-psworkitem-300x139.png 300w\" sizes=\"auto, (max-width: 766px) 100vw, 766px\" \/><\/a><\/figure>\n\n\n\n<p>By default, tasks due within the next day or overdue will be displayed in red. Tasks due within three days will be displayed in yellow. The formatting is using $PSStyle values, so you might get different results depending on your console or terminal color theme.<\/p>\n\n\n\n<p>In addition, the module will create a global variable called <code>PSWorkItemCategory<\/code>. This is a hashtable where the key is a defined category, and the value is a PSStyle or ANSI escape sequence.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell\">$global:PSWorkItemCategory = @{\n    \"Work\"     = $PSStyle.Foreground.Cyan\n    \"Personal\" = $PSStyle.Foreground.Green\n}<\/code><\/pre>\n\n\n\n<p>You can easily add your custom entries.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell\">$PSWorkItemCategory.Add(\"Event\",\"`e[38;5;153m\")<\/code><\/pre>\n\n\n\n<h2 class=\"wp-block-heading\">Modifying PSWorkItems<\/h2>\n\n\n\n<p>You can update or modify existing tasks by their ID.<\/p>\n\n\n\n<figure class=\"wp-block-image size-full is-style-default\"><a href=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/08\/set-psworkitem.png\"><img loading=\"lazy\" decoding=\"async\" width=\"700\" height=\"136\" src=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/08\/set-psworkitem.png\" alt=\"modify a PSWorkItem\" class=\"wp-image-9121\" srcset=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/08\/set-psworkitem.png 700w, https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/08\/set-psworkitem-300x58.png 300w\" sizes=\"auto, (max-width: 700px) 100vw, 700px\" \/><\/a><\/figure>\n\n\n\n<p>When a task is complete, you can mark it as such.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code lang=\"powershell\" class=\"language-powershell\">Complete-PSWorkItem -id 8<\/code><\/pre>\n\n\n\n<p>You should be able to use the module commands to manage everything. But you can always fall back to a more hands-on approach using the commands in the MySQLite module.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Summary<\/h2>\n\n\n\n<p>I am already finding the new module to be much easier to use. I moved the database file to a shared folder in DropBox and created a symbolic link to $HOME on my desktop and laptop. This allows me to use the module commands on either system and keep everything synchronized. I hope you'll read the project's README to learn more and give this module a try. If nothing else, I'd like to think that the PSWorkItem module can serve as a template for future PowerShell modules built around a SQLite database. I have at least one other project in mind.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>I spend my working days living in a PowerShell console. Over the years, I&#8217;ve developed many PowerShell modules to help me manage the chaos that is my work life. One area that always demands attention is managing my tasks and To-Dos. For several years I have been using the MyTasks module. This module stored tasks&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_publicize_message":"New on the blog: Managing Chaos with #PowerShell and SQLite","jetpack_publicize_feature_enabled":true,"jetpack_social_post_already_shared":true,"jetpack_social_options":{"image_generator_settings":{"template":"highway","default_image_id":0,"font":"","enabled":false},"version":2}},"categories":[4,8],"tags":[468,221,534,540,672],"class_list":["post-9117","post","type-post","status-publish","format-standard","hentry","category-powershell","category-scripting","tag-database","tag-module","tag-powershell","tag-scripting","tag-sqlite"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.5 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>Organizing Chaos with PSWorkItems and PowerShell &#8226; The Lonely Administrator<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/jdhitsolutions.com\/blog\/powershell\/9117\/organizing-chaos-with-psworkitems-and-powershell\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Organizing Chaos with PSWorkItems and PowerShell &#8226; The Lonely Administrator\" \/>\n<meta property=\"og:description\" content=\"I spend my working days living in a PowerShell console. Over the years, I&#039;ve developed many PowerShell modules to help me manage the chaos that is my work life. One area that always demands attention is managing my tasks and To-Dos. For several years I have been using the MyTasks module. This module stored tasks...\" \/>\n<meta property=\"og:url\" content=\"https:\/\/jdhitsolutions.com\/blog\/powershell\/9117\/organizing-chaos-with-psworkitems-and-powershell\/\" \/>\n<meta property=\"og:site_name\" content=\"The Lonely Administrator\" \/>\n<meta property=\"article:published_time\" content=\"2022-08-03T19:21:33+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-08-03T19:21:36+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/08\/psworkitem-categories.png\" \/>\n<meta name=\"author\" content=\"Jeffery Hicks\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@JeffHicks\" \/>\n<meta name=\"twitter:site\" content=\"@JeffHicks\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Jeffery Hicks\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"3 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/9117\\\/organizing-chaos-with-psworkitems-and-powershell\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/9117\\\/organizing-chaos-with-psworkitems-and-powershell\\\/\"},\"author\":{\"name\":\"Jeffery Hicks\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#\\\/schema\\\/person\\\/d0258030b41f07fd745f4078bdf5b6c9\"},\"headline\":\"Organizing Chaos with PSWorkItems and PowerShell\",\"datePublished\":\"2022-08-03T19:21:33+00:00\",\"dateModified\":\"2022-08-03T19:21:36+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/9117\\\/organizing-chaos-with-psworkitems-and-powershell\\\/\"},\"wordCount\":643,\"commentCount\":5,\"publisher\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#\\\/schema\\\/person\\\/d0258030b41f07fd745f4078bdf5b6c9\"},\"image\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/9117\\\/organizing-chaos-with-psworkitems-and-powershell\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/psworkitem-categories.png\",\"keywords\":[\"Database\",\"module\",\"PowerShell\",\"Scripting\",\"sqlite\"],\"articleSection\":[\"PowerShell\",\"Scripting\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/9117\\\/organizing-chaos-with-psworkitems-and-powershell\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/9117\\\/organizing-chaos-with-psworkitems-and-powershell\\\/\",\"url\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/9117\\\/organizing-chaos-with-psworkitems-and-powershell\\\/\",\"name\":\"Organizing Chaos with PSWorkItems and PowerShell &#8226; The Lonely Administrator\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/9117\\\/organizing-chaos-with-psworkitems-and-powershell\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/9117\\\/organizing-chaos-with-psworkitems-and-powershell\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/psworkitem-categories.png\",\"datePublished\":\"2022-08-03T19:21:33+00:00\",\"dateModified\":\"2022-08-03T19:21:36+00:00\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/9117\\\/organizing-chaos-with-psworkitems-and-powershell\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/9117\\\/organizing-chaos-with-psworkitems-and-powershell\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/9117\\\/organizing-chaos-with-psworkitems-and-powershell\\\/#primaryimage\",\"url\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/psworkitem-categories.png\",\"contentUrl\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/wp-content\\\/uploads\\\/2022\\\/08\\\/psworkitem-categories.png\",\"width\":438,\"height\":146},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/powershell\\\/9117\\\/organizing-chaos-with-psworkitems-and-powershell\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"PowerShell\",\"item\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/category\\\/powershell\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Organizing Chaos with PSWorkItems and PowerShell\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/\",\"name\":\"The Lonely Administrator\",\"description\":\"Practical Advice for the Automating IT Pro\",\"publisher\":{\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#\\\/schema\\\/person\\\/d0258030b41f07fd745f4078bdf5b6c9\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\\\/\\\/jdhitsolutions.com\\\/blog\\\/#\\\/schema\\\/person\\\/d0258030b41f07fd745f4078bdf5b6c9\",\"name\":\"Jeffery Hicks\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg\",\"caption\":\"Jeffery Hicks\"},\"logo\":{\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg\"}}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"Organizing Chaos with PSWorkItems and PowerShell &#8226; The Lonely Administrator","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":"https:\/\/jdhitsolutions.com\/blog\/powershell\/9117\/organizing-chaos-with-psworkitems-and-powershell\/","og_locale":"en_US","og_type":"article","og_title":"Organizing Chaos with PSWorkItems and PowerShell &#8226; The Lonely Administrator","og_description":"I spend my working days living in a PowerShell console. Over the years, I've developed many PowerShell modules to help me manage the chaos that is my work life. One area that always demands attention is managing my tasks and To-Dos. For several years I have been using the MyTasks module. This module stored tasks...","og_url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/9117\/organizing-chaos-with-psworkitems-and-powershell\/","og_site_name":"The Lonely Administrator","article_published_time":"2022-08-03T19:21:33+00:00","article_modified_time":"2022-08-03T19:21:36+00:00","og_image":[{"url":"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/08\/psworkitem-categories.png","type":"","width":"","height":""}],"author":"Jeffery Hicks","twitter_card":"summary_large_image","twitter_creator":"@JeffHicks","twitter_site":"@JeffHicks","twitter_misc":{"Written by":"Jeffery Hicks","Est. reading time":"3 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/9117\/organizing-chaos-with-psworkitems-and-powershell\/#article","isPartOf":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/9117\/organizing-chaos-with-psworkitems-and-powershell\/"},"author":{"name":"Jeffery Hicks","@id":"https:\/\/jdhitsolutions.com\/blog\/#\/schema\/person\/d0258030b41f07fd745f4078bdf5b6c9"},"headline":"Organizing Chaos with PSWorkItems and PowerShell","datePublished":"2022-08-03T19:21:33+00:00","dateModified":"2022-08-03T19:21:36+00:00","mainEntityOfPage":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/9117\/organizing-chaos-with-psworkitems-and-powershell\/"},"wordCount":643,"commentCount":5,"publisher":{"@id":"https:\/\/jdhitsolutions.com\/blog\/#\/schema\/person\/d0258030b41f07fd745f4078bdf5b6c9"},"image":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/9117\/organizing-chaos-with-psworkitems-and-powershell\/#primaryimage"},"thumbnailUrl":"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/08\/psworkitem-categories.png","keywords":["Database","module","PowerShell","Scripting","sqlite"],"articleSection":["PowerShell","Scripting"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/jdhitsolutions.com\/blog\/powershell\/9117\/organizing-chaos-with-psworkitems-and-powershell\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/9117\/organizing-chaos-with-psworkitems-and-powershell\/","url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/9117\/organizing-chaos-with-psworkitems-and-powershell\/","name":"Organizing Chaos with PSWorkItems and PowerShell &#8226; The Lonely Administrator","isPartOf":{"@id":"https:\/\/jdhitsolutions.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/9117\/organizing-chaos-with-psworkitems-and-powershell\/#primaryimage"},"image":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/9117\/organizing-chaos-with-psworkitems-and-powershell\/#primaryimage"},"thumbnailUrl":"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/08\/psworkitem-categories.png","datePublished":"2022-08-03T19:21:33+00:00","dateModified":"2022-08-03T19:21:36+00:00","breadcrumb":{"@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/9117\/organizing-chaos-with-psworkitems-and-powershell\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/jdhitsolutions.com\/blog\/powershell\/9117\/organizing-chaos-with-psworkitems-and-powershell\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/9117\/organizing-chaos-with-psworkitems-and-powershell\/#primaryimage","url":"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/08\/psworkitem-categories.png","contentUrl":"https:\/\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/08\/psworkitem-categories.png","width":438,"height":146},{"@type":"BreadcrumbList","@id":"https:\/\/jdhitsolutions.com\/blog\/powershell\/9117\/organizing-chaos-with-psworkitems-and-powershell\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"PowerShell","item":"https:\/\/jdhitsolutions.com\/blog\/category\/powershell\/"},{"@type":"ListItem","position":2,"name":"Organizing Chaos with PSWorkItems and PowerShell"}]},{"@type":"WebSite","@id":"https:\/\/jdhitsolutions.com\/blog\/#website","url":"https:\/\/jdhitsolutions.com\/blog\/","name":"The Lonely Administrator","description":"Practical Advice for the Automating IT Pro","publisher":{"@id":"https:\/\/jdhitsolutions.com\/blog\/#\/schema\/person\/d0258030b41f07fd745f4078bdf5b6c9"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/jdhitsolutions.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":["Person","Organization"],"@id":"https:\/\/jdhitsolutions.com\/blog\/#\/schema\/person\/d0258030b41f07fd745f4078bdf5b6c9","name":"Jeffery Hicks","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg","url":"https:\/\/secure.gravatar.com\/avatar\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg","caption":"Jeffery Hicks"},"logo":{"@id":"https:\/\/secure.gravatar.com\/avatar\/832ae5d438fdcfc1420d720cd1991307927de8a0b12f2342e81c30f773e21098?s=96&d=wavatar&r=pg"}}]}},"jetpack_publicize_connections":[],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"jetpack_likes_enabled":true,"jetpack-related-posts":[{"id":5219,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/5219\/introducing-a-powershell-to-do-manager\/","url_meta":{"origin":9117,"position":0},"title":"Introducing a PowerShell To-Do Manager","author":"Jeffery Hicks","date":"August 26, 2016","format":false,"excerpt":"I don't know about you but I always have a PowerShell session open and find it easier to manage my day right from a prompt.\u00a0 I find ways to use PowerShell whenever I can. Recently I started a project to help me manage my work and of course I created\u2026","rel":"","context":"In &quot;GitHub&quot;","block_context":{"text":"GitHub","link":"https:\/\/jdhitsolutions.com\/blog\/category\/github\/"},"img":{"alt_text":"image","src":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2016\/08\/image_thumb-1.png?resize=350%2C200","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2016\/08\/image_thumb-1.png?resize=350%2C200 1x, https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2016\/08\/image_thumb-1.png?resize=525%2C300 1.5x"},"classes":[]},{"id":9422,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/9422\/introducing-psreminderlite\/","url_meta":{"origin":9117,"position":1},"title":"Introducing PSReminderLite","author":"Jeffery Hicks","date":"August 14, 2024","format":false,"excerpt":"For several years, I have been using a PowerShell module I wrote called MyTickle to help me manage my reminders and events. I spend my days at a PowerShell prompt, and I wanted an easy way to keep track of upcoming events. The module relied on a SQL Server or\u2026","rel":"","context":"In &quot;GitHub&quot;","block_context":{"text":"GitHub","link":"https:\/\/jdhitsolutions.com\/blog\/category\/github\/"},"img":{"alt_text":"PSReminderTags","src":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2024\/08\/remindertags-300x148.png?resize=350%2C200&ssl=1","width":350,"height":200},"classes":[]},{"id":4529,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4529\/whats-the-weather\/","url_meta":{"origin":9117,"position":2},"title":"What\u2019s the Weather?","author":"Jeffery Hicks","date":"September 23, 2015","format":false,"excerpt":"I have used a PowerShell module I wrote a while ago to retrieve weather information from Yahoo.com. Yahoo offers a set of web APIs which are free to use, that will provide weather information for a given location. The location is determined by a \"Where On Earth ID\", or woeid.\u2026","rel":"","context":"In &quot;PowerShell&quot;","block_context":{"text":"PowerShell","link":"https:\/\/jdhitsolutions.com\/blog\/category\/powershell\/"},"img":{"alt_text":"clouds","src":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2015\/09\/092315_1158_WhatstheWea1.png?resize=350%2C200","width":350,"height":200},"classes":[]},{"id":8787,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/8787\/prerelease-of-psfunctiontools-for-powershell\/","url_meta":{"origin":9117,"position":3},"title":"Prerelease of PSFunctionTools for PowerShell","author":"Jeffery Hicks","date":"January 13, 2022","format":false,"excerpt":"At the end of last year wrote a series of blog posts describing tools and techniques for working with PowerShell scripts and functions. My goal was to build a framework of tools that I could use to automate PowerShell scripting work, such as creating a new module from a group\u2026","rel":"","context":"In &quot;PowerShell&quot;","block_context":{"text":"PowerShell","link":"https:\/\/jdhitsolutions.com\/blog\/category\/powershell\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/01\/psfunctiontools-commands.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/01\/psfunctiontools-commands.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/01\/psfunctiontools-commands.png?resize=525%2C300&ssl=1 1.5x, https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/01\/psfunctiontools-commands.png?resize=700%2C400&ssl=1 2x, https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/01\/psfunctiontools-commands.png?resize=1050%2C600&ssl=1 3x, https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2022\/01\/psfunctiontools-commands.png?resize=1400%2C800&ssl=1 4x"},"classes":[]},{"id":5833,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/5833\/new-powershell-projects-published\/","url_meta":{"origin":9117,"position":4},"title":"New PowerShell Projects Published","author":"Jeffery Hicks","date":"December 18, 2017","format":false,"excerpt":"Last week I published a few of the recent PowerShell modules I've been working on to the PowerShell Gallery. These projects had been in a beta phase while I worked out some last minute features. I was also waiting to see if there were any issues reported by you that\u2026","rel":"","context":"In &quot;PowerShell&quot;","block_context":{"text":"PowerShell","link":"https:\/\/jdhitsolutions.com\/blog\/category\/powershell\/"},"img":{"alt_text":"","src":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2017\/12\/image_thumb-6.png?resize=350%2C200&ssl=1","width":350,"height":200,"srcset":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2017\/12\/image_thumb-6.png?resize=350%2C200&ssl=1 1x, https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2017\/12\/image_thumb-6.png?resize=525%2C300&ssl=1 1.5x"},"classes":[]},{"id":4169,"url":"https:\/\/jdhitsolutions.com\/blog\/powershell\/4169\/friday-fun-updated-ise-scripting-geek-module\/","url_meta":{"origin":9117,"position":5},"title":"Friday Fun: Updated ISE Scripting Geek Module","author":"Jeffery Hicks","date":"January 9, 2015","format":false,"excerpt":"A few years ago I published a module with a number of functions and enhancements for the PowerShell ISE. This ISEScriptingGeek module has remained popular over the last few years. But I wrote it for PowerShell v2. I have also come up with a number of new additions to the\u2026","rel":"","context":"In &quot;Friday Fun&quot;","block_context":{"text":"Friday Fun","link":"https:\/\/jdhitsolutions.com\/blog\/category\/friday-fun\/"},"img":{"alt_text":"geek","src":"https:\/\/i0.wp.com\/jdhitsolutions.com\/blog\/wp-content\/uploads\/2015\/01\/geek-150x150.png?resize=350%2C200","width":350,"height":200},"classes":[]}],"_links":{"self":[{"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/9117","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/comments?post=9117"}],"version-history":[{"count":1,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/9117\/revisions"}],"predecessor-version":[{"id":9122,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/posts\/9117\/revisions\/9122"}],"wp:attachment":[{"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/media?parent=9117"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/categories?post=9117"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/jdhitsolutions.com\/blog\/wp-json\/wp\/v2\/tags?post=9117"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}