Jump to content
Software FX Community

JuanC

Staff
  • Posts

    863
  • Joined

  • Last visited

  • Days Won

    1

Everything posted by JuanC

  1. There is only one feature we are aware of that is not implemented in x64 platforms at this time: Digitally signing a PGF and checking its signature. We plan to implement this in a future build. Most of our developers are using Vista x64 so we know we are shipping all the required C++ components compiled for the x64 platform. Regards, JuanC
  2. When we say personalization we are referring to a feature in PowerGadgets where gadgets will remember previously used settings, these can be simple such as window location and size or customizations to any visual attributes e.g chart colors, gallery type, fonts, etc. This is particular handy for floating gadgets as you can place them in a specific location in your desktop and they will remember their layout for future sessions. Personalized gadgets are simply files saved with a PGT extension (as they are in fact identical to templates you create using the -config parameter). The location of these files is a subdirectory of the current user's roaming profile and the actual path depends on the operating system. In Vista:C:\Users\<YourUserName>\AppData\Roaming\PowerGadgets, LLC\PowerGadgets\Personalization In XP:C:\Documents and Settings\<YourUserName>\Application Data\PowerGadgets, LLC\PowerGadgets\Personalization Some of the implementation details depend on how gadgets are created, also note that gadgets in the sidebar are handled differently than desktop gadgets. We will talk about sidebar personalization in a future post. PowerShell Gadgets By default PowerShell created gadgets will not be personalized as we need some way to identify a specific gadget, this is done when you use the -name parameter as follows ps | out-chart -values WorkingSet -name PSCHart By assigning a name we can now store and remember any personalizations to the gadget. A file named PSChart.pgt will be saved if you modify any of the gadget settings. Groups are a little different, e.g. ps | out-chart -values WorkingSet -group MyGroup -name Processesget-date -uformat %r | out-gauge -group MyGroup -name Time In this case we will save the global settings such as window size and location in a file named MyGroup.pgt while visual attributes will be saved on MyGroup.Processes.pgt and MyGroup.Time.pgt. Note that we also use the name to label the current tab in a gadget group. PowerGadgets Creator Gadgets generated using Creator are automatically personalized, to support this we generate a GUID when a gadget file is created or you use the Save As menu option, this means that personalization templates will have very long names but we do not expect users to handle these files and it allows us to expose this feature without the need to prompt a name. This also means that personalizations are not lost if you rename your gadget files or move them to a different folder. In groups, the file names for individual items in a group are saved concatenating the GUID with the item's index. Personalizations also use a sort of version number, when you make modifications to a PGF PowerGadgets creator will increment its version so that old customizations are ignored, additionally you can turn off personalization by unchecking the "Edit - Desktop Settings - Personalizable" menu item. Note that these GUIDs used for personalization only so if you want 2 or more PGF files to share its personalizations you could use notepad or any other text editor to copy the <GUID> tag. JuanC
  3. To show how DrillDown_script allows you to interactively analyze your data and link multiple PowerShell scripts we will build a series of scripts used to monitor multiple IIS web servers. We will start with a chart showing Current Connections for all of our servers. IISServers.ps1 $servers = "webserver1", "webserver2", "webserver3" Get-WmiObject Win32_PerfFormattedData_W3SVC_WebService -computername $servers -filter "Name='_Total'" -property __SERVER, CurrentConnections | select __Server,CurrentConnections I tried to speed this script by both filtering and specifying the output properties at the get-wmiobject call, trying to minimize network traffic and hopefully wmi execution but it still feels a little sluggish. If you know how to improve the performance of this remote wmi command please add a comment to this post. IISServers | out-chart -drilldown_script IISServer -drilldown_parameter {$_.__Server} -refresh 0:0:30 -legendbox_visible false Now we need to make sure our IISServer.ps1 script handles a parameter which will have one of the server names, on this script we will list information on a per-site basis, please be aware that when you double click on a bar you will get detailed information for the specific server but on a busy server this new detailed information might be different than the "Total" showed on the previous chart as it will be fresh data. IISServer.ps1 $computer = $args[0] $title = "Current Connections for " + $computer Get-WmiObject Win32_PerfFormattedData_W3SVC_WebService -computername $computer -property __SERVER, Name, CurrentConnections | select Name, CurrentConnections, __SERVER | where {$_.Name -ne "_Total"} | out-chart -title $title -drilldown_script IISSite -drilldown_parameter {$_.__Server},{$_.Name} -refresh 0:0:30 -gallery pie Note that in this script we are actually getting the data and immediately sending it to the chart, normally we recommend you try to keep your "data/business-layer" scripts separated from the presentation scripts but this make this sample a little easier. You could split it into 2 scripts if desired. Also note we are again piping the server name to the out-chart cmdlet, we do this in order to be able to pass this parameter to our third script when double clicking. Finally IISSite.ps1 will show the real-time trend information for a specific site on a server, in this case because the script will return one "record" of information, out-chart will automatically add points every time the refresh timer ticks. IISSite.ps1 $computer = $args[0] $site = $args[1] $title = "Site " + $site + " on " + $computer $filter = "Name = '"+$site+"'" Get-WmiObject Win32_PerfFormattedData_W3SVC_WebService -computername $computer -filter $filter -property Name, CurrentConnections, BytesTotalPersec | select Name, CurrentConnections, BytesTotalPersec | out-chart -values CurrentConnections,BytesTotalPersec -refresh 0:0:30 -disableauto AxisY -series_1_axisy AxisY2 -gallery Lines -title $title -legendbox_dock bottom -axisy_TextColor DarkBlue -axisy2_TextColor DarkRed Some notes about this chart We are using -disableAuto and -series1_axisy in the out-chart cmdlet, normally PowerGadgets will analyze your data to see if multiple Y axes are required, this analysis is not repeated when adding points to avoid an axis suddenly appearing/disappearing. We want to make sure we force the use of 2 Y axes in case the data for CurrentConnections and BytesTotalPerSec on the first point collected are both small as later they will most likely differ. The legend window will be placed at the bottom using -legendbox_dock to improve space usage. We are changing the color used to paint the axis labels to make more clear the relation between each line and its axis, if you hover one of the lines or the legend box we will also highlight the appropriate element while dimming non-related items. When PowerGadgets detects a realtime chart that adds points is not using X axis labels it will automatically set the label to the time the data was collected. DrillDown to a console window Sometimes listing text is actually the best choice, if you want to drilldown to a script that just outputs data to the console you can do so by adding the -drilldown_console flag, e.g. if double clicking on a server in IISServer.ps1 should just list all web sites including the number of connections for each site you would remove the out-chart call in IISServer.ps1 so that it just returns the request data and then add -drilldown_console to the out-chart that gets data from IISServers.ps1. If you forget to add -drilldown_console we will still run IISServer.ps1 but you will not see its output. I try to make most of the sample code in my posts not to require any attachments (databases, etc.) as I feel this gives you a chance of quickly experimenting with it, obviously if you are using invoke-sql to connect gadgets to databases you can easily apply the concepts in this post to add drill down interactivity to your gadgets. JuanC
  4. This is a bug where we are internally resetting the gadget size to 0 when set to Custom. We have fixed this issue in our current build, If you want to get it before it is released as a public build, please contact tech support (see website for details). Note that after getting a new build you will have to remove the personalization of this gadget or resave it using the creator, we will add a blog post about this feature soon (I will add a reply with a link to the article as soon as it is uploaded) JuanC
  5. The licensed version you are using is probably out of date. You can check the version of the installer by right clicking on the installer exe and check the FileVersion. Note that our most recent trial is build 2588. JuanC
  6. Another option would be to use our gradient fill mode instead of using conditional attributes, in this mode bar/area charts will use gradient from the "main color" (up) to the "alternate color" (down). 10,5,20,12,14,18,6 | out-chart -gallery area -AllSeries_FillMode gradient -palette highcontrast -Series_0_AlternateColor DarkBlue10,5,20,12,14,18,6 | out-chart -gallery area -AllSeries_FillMode gradient -palette highcontrast -Series_0_Color "#FF00FF00" -Series_0_AlternateColor "#2000FF00" Note that in the second sample we are specifying both the main and alternate color and using a semi transparent color for alternate. JuanC cfxzoom.wmv
  7. There are some cmdlet parameters in PowerGadgets where we support powershell script blocks, although its support may not be obvious. We think they enable important scenarios so I will try to describe them here. Parameters that normally specify fields: In out-chart (or out-map) the -values and -label parameters allow you to specify one or more fields to be plotted and the field to be used as labels. Both parameters support scriptblocks which allow the following: ps | out-chart -values {$_.WorkingSet/$_.Handles} ps | out-chart -values @{Expression={$_.WorkingSet/$_.Handles};Name="WorkingSet per Handle"} ps | out-chart -values CPU -label {$_.ProcessName + "-" + $_.ID} Note that the expression will also be used as the series title, to fix this you can use trick in the second line where a hashtable is created with 2 elements, the expression and the name to be used, you may need to resize the chart vertically to see the labels in the third sample. Almost any out-gauge parameter Because out-gauge is normally used to display one value, we can use additional fields in the data for almost any parameter supported by out-gauge, e.g. imagine you want a digital panel that changes color when the displayed value is bigger than a specified value. RandomData.ps1 $random = new-object System.Random $value = [system.Int32] ($random.NextDouble() * 20); $prevValue = [system.Int32] ($random.NextDouble() * 20); $color = "Green" if ($value -lt 8) { $color = "Red" } $obj = new-object System.object add-member -inputobject $obj -membertype NoteProperty -Name Sales -value $value add-member -inputobject $obj -membertype NoteProperty -Name Color -value $color add-member -inputobject $obj -membertype NoteProperty -Name PrevSales -value $prevValue $obj This script returns an object with 3 properties the value to be displayed and a color property which depends on the value (PrevSales will be used in our next sample), you can then use this data as follows .\Randomdata.ps1 | out-gauge -type digital -value Sales -appearance_color {$_.Color} -refresh 0:0:2 .\Randomdata.ps1 | out-gauge -type radial -value Sales -mainindicator_color {$_.Color} -refresh 0:0:2 /TeamBlogImages/ScriptBlocksupportinPowerGadgets_D4C/image02.png /TeamBlogImages/ScriptBlocksupportinPowerGadgets_D4C/image04.png A similar scenario would be to show a value for the current year/month in a gauge while at the same time showing the value for the previous year/month as a reference. .\Randomdata.ps1 | out-gauge -type radial -value Sales -mainscale_indicators_add marker -mainscale_indicators_1_size 0.75 -mainscale_indicators_1_value {$_.PrevSales} /TeamBlogImages/ScriptBlocksupportinPowerGadgets_D4C/image0_thumb1.png In this case we are adding an indicator to the main scale and then settings its size to be 0.75, the value property for this marker will be the PrevSales property returned by our script. If you want to customize this further you would probably want to use our template editor (out-gauge -config), create a template with an extra indicator, set any of its properties and then use this template as follows .\Randomdata.ps1 | out-gauge -type radial -value Sales -template ExtraIndicator -mainscale_indicators_1_value {$_.PrevSales} Please feel free to post any questions or suggestions as comments or in the forums, most of these features are the direct result of your feedback. JuanC
  8. Please note that by using format-table as the last element in your pipe, you are transforming the output into a table and although on the console it looks like the right data, properties are buried deep into the output, e.g. In a folder with a couple of CSV files type the following command dir *.csv | get-member You will see many properties and methods supported by the System.IO.FileInfo object, this means that potentially any of the numerical properties could be charted and any string properties could be used as labels. Now type the following dir *.csv | ft Length,Name | get-member Now instead of the 2 properties you will see a bunch of Internal objects like FormatStartData, GroupStartData, etc. none of these objects will show Length or Name as properties. You have 2 options to get the chart you want 1) Use select-object (select) instead of format-table (ft) get-exchangeserver | where-object {$_.IsHubTransportServer -eq $True} | get-queue | select {$_.Identity.ToString()}, MessageCount | out-chart[edit]Note that because Identity is a complex object you want to use ToString() in the select cmdlet This cmdlet selects a subset of properties so that in the console the output looks similar to that of format-table but under the covers this cmdlet is doing a very different job. It is creating a new object that supports only the properties you selected, You can confirm this by typing dir *.csv | select Length,Name | get-member 2) use -values and -label in out-chart to specify the columns you want to use get-exchangeserver | where-object {$_.IsHubTransportServer -eq $True} | get-queue | out-chart -values MessageCount -label {$_.Identity}[edit]Note that because Identity is a complex object you want to use a scriptblock in the label parameter. You can also use Identity.ToString as in option 1. Regards, JuanC
  9. There was a bug in an interim PowerGadgets build that could exhibit the behavior you are describing (hang when using an expression like $_.), please send an email to support at powergadgets dot com and we will send you an updated build. JuanC
  10. From within EMS you should be able to add-pssnapin PowerGadgets 10,20,15 | out-chart Once this works you can start experimenting invoking exchange cmdlets and piping their results to out-chart/out-gauge/out-map JuanC
  11. $items = get-childitem $args foreach($item in $items) { if ($item -is [system.IO.DirectoryInfo]) { $obj = new-object System.Object add-member -inputobject $obj -membertype NoteProperty -Name Folder -value $item add-member -inputobject $obj -membertype ScriptProperty -Name Length -value { $elem = get-childitem $this.Folder.FullName -include *.* -recurse | measure-object -sum length; if ($elem -eq $null) {return 0;} else {return $elem.Sum;} } write-output $obj } } See this post for information on using this script and powergadgets drilldown JuanC
  12. To illustrate how you can drilldown into hierarchical data using PowerGadgets and PowerShell, we will try to build a map of any folder in your hard disk showing the total size of all its subdirectories. There are many full blown apps that do this but I hope that in the process you will learn a few PowerShell tricks and discover how to use drilldown in PowerGadgets. Let's start building the script that populates our gadget. My first try resulted in a script called get-size.ps1 which looks like this. I have a scripts folder on my machine and this folder was added to the Path environment variable. $items = get-childitem $args foreach($item in $items) { if ($item -is [system.IO.DirectoryInfo]) { add-member -inputobject $item -membertype ScriptProperty -Name Length -value { $elem = get-childitem $this.FullName -include *.* -recurse | measure-object -sum length; if ($elem -eq $null) {return 0;} else {return $elem.Sum;} } write-output $item } } The meat of the script is in the add-member call, we are adding a new property to the directoryinfo object called Length and its value is a script that when executed will return the size of all the files and subdirectories in it. Calculating the size of a folder is achieved by the following get-childitem $this.FullName -include *.* -recurse | measure-object -sum length This first approach has a big drawback, if you just execute get-foldersize the output will be identical to doing get-item, in order to see the result of the calculations you have to type get-foldersize | select Name,Length. The reason for this is how PowerShell outputs data to the console but it also reveals an interesting feature, if you execute both commands on a big folder you will notice that get-foldersize is quick while get-foldersize | Select Name,Length is actually doing the calculations. This means that our code will only be executed on demand. Lazy evaluation is not important for this particular script but it could be prove to be a valuable feature in other scripts. Let's tweak our script to make it easier to see its results $items = get-childitem $args foreach($item in $items) { if ($item -is [system.IO.DirectoryInfo]) { $obj = new-object System.Object add-member -inputobject $obj -membertype NoteProperty -Name Folder -value $item add-member -inputobject $obj -membertype ScriptProperty -Name Length -value { $elem = get-childitem $this.Folder.FullName -include *.* -recurse | measure-object -sum length; if ($elem -eq $null) {return 0;} else {return $elem.Sum;} } write-output $obj } } This new version of our script is a little more verbose - note that we are now creating an empty object and adding 2 properties to it - but if you just type get-foldersize you will get the results you are looking for. Note that we are adding a property called Folder and we are returning the DirectoryInfo object, we are lucky enough that its ToString method just returns the name but we have all the DirectoryInfo properties at our disposal. This is a good compromise between showing relevant information when simply typing the command but still allowing full access to all folder properties, e.g. the following command will give you the name, total size and attributes of all the subdirectories. get-foldersize | Select {$_.Folder.Name},Length,{$_.Folder.Mode} Now we are ready to start interacting our script with PowerGadgets, the obvious command foldersize | out-chart will give you a bar chart showing the subdirectories sizes but you will not see any meaningful labels. This is due to how out-chart decides which properties should be plotted (any numerical properties although the algorithm is a little more complex than this) and which properties can be considered labels (any string properties). Because we decided that our Folder property will contain the full DirectoryInfo object, out-chart decides that it cannot be used as the label. Clearly this is something we can improve in future versions. For now you have to type the following get-foldersize | out-chart -label Folder -value Length /TeamBlogImages/DrillDownpart1.Hierarchicaldata_E115/FolderSizeChart2.png Let's add drill down capabilities to this by using drilldown_parameter, this allows you to specify which parameter(s) to pass when drilling down, e.g. when you double click on a bar, in our case we want to pass the full name of the child subdirectory to our get-foldersize script so we will just say get-foldersize | out-chart -label Folder -value Length -drilldown_parameter {$_.Folder.FullName} If you execute this command in a folder with subdirectories you will notice that when you double click on a bar the chart refreshes to show the size of the subdirectories of the folder you clicked on. To get back to the previous chart you can right click on the background of the chart and select back. If you are using build 2585 or later you can even use your mouse back button to return to the previous chart. If you double click a folder with no subdirectories you will get "No Data Available". Obviously full blown apps can provide many more features for this problem, but getting an interactive gadget that shows subdirectory sizes recursively with only a 9-liner PowerShell script and the PowerGadgets cmdlet certainly sounds promising. There are several ways we can improve on the visualization of this gadget, a typical one would be to show folders with a specific condition -e.g. those bigger than 10MB in a different color. Note that the -condition_ parameter actually exposes many visual attributes so you can control the color used, whether point labels are visible, etc. get-foldersize | out-chart -label Folder -value Length -drilldown_parameter {$_.Folder.FullName} -condition {$_.Length -gt 10MB} -condition_Color DarkRed /TeamBlogImages/DrillDownpart1.Hierarchicaldata_E115/FolderSizeCondition_thumb5.png Up to this point everything I described here is officially supported so to make this blog post a little more valuable I would like to show a totally unsupported but nonetheless cool feature, squarified treemaps are sometimes used in this kind of scenarios as they are able to convey size comparisons in a way where screen real-state use is maximized. Even though PowerGadgets does not natively support this as a gallery type, it supports the concepts of gallery extensions, and one of the ones we wrote as a proof of concept is a treemap extension. To use this you need to check if ChartFX.WinForms.TreeMap.dll is present in your PowerGadgets folder. get-foldersize | out-chart -label Folder -value Length -drilldown_parameter {$_.Folder.FullName} -gallery treemap /TeamBlogImages/DrillDownpart1.Hierarchicaldata_E115/FolderSizeTreemap.png I hope this post will get you interested on what you can achieve when using drilldown, in a future post we will show how to drilldown to a different script and other drilldown features. JuanC
  13. Yes, we create a separate process to host our gadgets. JuanC
  14. One more thing, we have done some recent work on our cmdlets (out-chart, out-gauge, out-map) in order to support credentials when refreshing. If you are planning to use -refresh or manually refresh using right-click you will need our current build. We are still doing some tests but we can certainly make it available to anyone interested. Our current build will also prompt for the credentials password once more, this is a little complicated to explain in detail in this thread but we are planning to fix this in future builds. JuanC
  15. I have used a technique discussed in a couple of blogs such as http://abhishek225.spaces.live.com/blog/cns!13469C7B7CE6E911!273.entry Generate an encrypted version of your password read-host -assecurestring | convertfrom-securestring| out-file Encrypted.txt Get a secure string $secret = cat Encrypted.txt | convertto-securestring Translate to a "clear-text" representation if needed $Ptr=[system.Runtime.InteropServices.Marshal]::SecureStringToCoTaskMemUnicode($secret) $str=[system.Runtime.InteropServices.Marshal]::PtrToStringUni($Ptr) Use $str here Clean-up the clear text string [system.Runtime.InteropServices.Marshal]::ZeroFreeCoTaskMemUnicode($ptr) I have not tested the constructor suggested by SapienScripter but if they support a secure string you could pass $secret instead of $str and remove all the Runtime.Interop calls. This would give you more security as the password would always be handled as a secure string. AFAIK, the call to convert the password to a secure string uses DPAPI so it uses some user/machine info. Because of this you probably would have to repeat the read-host part if you want to use this script in multiple computers. JuanC
  16. >> Is it normal behaviour for gadgets on windows XP to be accompanied by a completely blank extra window that when closed, closes all the associated gadgets? We have fixed this bug in our current build, we expect to upload a new build in the next couple of weeks. If you or others want to test it sooner than this we can make it available. >> and also hopefully not show each gadget in the Alt-Tab process list? I suppose that might not be too easy though. We understand that when creating several desktop gadgets, these windows may clutter the UI. One of the things we did to alleviate this is that all floating gadgets will not appear in the task bar. Your suggestion is great as the alt-tab list also gets crowded with gadgets. We have a new parameter tentative called ToolWindow that would hide gadgets from the alt-tab process list. As it is right now you can combine it with floating or you can use it on its own. Although the ToolWindow name may not be intuitive, turning this style seems to be the way to get a window hidden from alt-tab and if you do not use floating, the caption will in fact be the one used for Tool Windows (e.g. toolbars, etc.). We are also considering whether this flag should be automatically used for floating gadgets. Any feedback on this behavior (naming, defaults, etc.) would be greatly appreciated. JuanC
  17. I am assuming that by "exposed the database connection strings" you are talking about the user and password info. When you are using invoke-sql we support 2 scenarios where this information is securely handled a) Using Windows Authentication: by using your windows credentials your PS1 will contain no user information and you will not get any additional prompts. Using the -credential parameter: Support for this feature was added recently and allows you to specify only the user name with the powershell standard credential handling taking care of prompting for the password. Using this approach will result in an additional prompt for a password but will keep your information confidential. Note that we could provide a tool to encrypt the connection string but we feel this will give users a false sense of security. In order to decrypt it on any machine we would have to include the private key in our exe so it would be just a matter of time before somebody exposes it and renders this encryption useless. So if you are coming from the powershell approach we offer 2 secure ways where your password is not compromised. Still there are probably millions of users who stay away from Windows Authentication and reuse a common security credential for all clients. These users can hardcode the password in the PS1 and as long as they keep the PS1 files in a secure location this approach will not expose anything they are not already exposing with the single-credential client app. Note also that if you are running PS1 scripts, Powershell supports digitally signing those strings to protect you from running scripts from an untrusted source but it does not support encrypting the scripts to protect the information in them. To summarize we are trying to strike a balance between security and usability and we are hoping we expose this clearly to our customers, most of what I described here also applies to gadgets created using the PowerGadgets creator. If you have any suggestions on how we can improve please let us know. JuanC
  18. How many points does the chart has at the begining? We have different refresh strategies when we see a chart with multiple points against a chart with just one. Can you please try creating a gadget that contains only the chart, we have fixed some refresh issues in multi-components gadgets so this would let us know if you are experiencing a related problem. If you want to test a newer build please send a message to support at powergadgets dot com and mention this thread, we will be uploading a new build in the next couple of weeks but we can make it available. Regards, JuanC
  19. Jpg looks really bad with line art such as bar/line/area charts so the only reason to support it would be for some app that does not support png or bitmap. We will support it if customers demand it. We appreciate your feedback JuanC
  20. In our current implementation, we are using -credentials and it works with an SMTP server that knows nothing about domains or windows authentication. We even tested an SMTP user named as a windows user but using a totally different password so we think the credentials approach should work with Yahoo SMTP. Also we should be adding SSL support in the next build. Should we still allow the user to supply passwords in the script? We are trying to figure out where to draw the line between ease-of-use and allowing our users to be insecure. Regards, JuanC
  21. We have an implementation that follows your recommendation, it accepts both get-process | send-mail get-process | out-string | send-mail There is an interesting scenario we wanted to share with you, what would you expect is the output of the following command dir *.csv | send-mail a) Is it an email with the text output generated by get-childitem Is it an email that includes the csv as attachments? I am guessing you can say "give me both and a parameter that specifies which method to use" but we want to know which is the behavior you expect to be the default. Obviously if you do "dir *.csv | out-string | send-mail" we will send the output generated by get-childitem as we will not get the real files. JuanC
  22. We thought nobody would care much about this because bmps are not compressed so may not be too suitable for email. I am guessing that you are using a particular email client that does not support png. Our next public build will support the output parameter when sending email (wmf will not be supported at this time, only bmp and png). An addtional advantage of -output is that we will use the file name to name the attachment, e.g. out-chart -output MyChart.bmp | send-mail ... This will send the email including the attachment as a bitmap named MyChart. Note that we will be using a content type of "image/x-windows-bmp", please let us know if you think this content type will not work for you. Regards, JuanC
  23. We are testing adding authentication through the -credentials approach. It works fine but I wonder if the fact that you cannot hardcode the password into a ps1 is a security feature or an annoyance. I have not checked the powershell documentation on credentials too deeply so I wanted to hear what you think e.g. send-mail -to foo@bar.com -subject "Subject test" -credentials MyUser Then you would get the powershell standard credentials prompt. JuanC
  24. I just tested the creator using SQLServer and an IP address and the next button works fine provided I supply a valid database name. I also noticed we are not showing an error when the server or database name are incorrect, if you see a long delay it could be we are trying to connect to the database and failing. We will make sure our next build shows a message to let you know what went wrong. Regards, JuanC
  25. We support arrays in out-chart so you can say 10,20,12 | out-chart Using variables you can also do $a = 10,20,12 $a | out-chart Personally I think that the "creating objects" approach scales better, if you find out you are interested in another "field" you just add another property, also you can use your script for things other than a chart. If you want to show something else in the tooltip you can also do that. JuanC
×
×
  • Create New...