PowerShell – OneDrive Script Editing Available

In case you didn’t know, you can edit PowerShell scripts in your OneDrive folder. This makes it ideal for saving your code in the cloud and then access the scripts when needed from anywhere.

psonedrive_01_2016-11-23_19-07-05

psonedrive_02_2016-11-23_19-07-05

You can be very creative, and specially if working across plaform.

Check it out! Give it a try. The only thing you need is to have a Microsoft Outlook web account.

Feel free to experiment!

psonedrive_03_2016-11-23_19-07-05

Posted in PowerShell | Comments Off on PowerShell – OneDrive Script Editing Available

PowerShell – SSMS v17 RC1 changes in SMO support for SQL Server vNext

v17_rc1_ssms

Download available now. Get it here:
https://msdn.microsoft.com/en-us/library/mt238290.aspx

Yes! The SQL Server Management Studio v17 RC1 is the one updated for SQL Server vNext on Linux. This version brings new properties in SMO object to properly identify SQL Server vNext. So, using previous version of SMO object under Information collection won’t give you the correct information.

wrongplatformgui_2016-11-08_18-29-36

When using SSMS v17 RC1 you’ll get the correct information:

ssms_rc_linux

Also, you will notice the following properties added to the SMO Object “Information” class. Running the following command will give you the total count of properties on the “Information” Class:

($SQLSrvObj.Information | gm -MemberType Properties).count

1. On SQL Server 2014 – “Information” Class has 47 properties.
2. On SQL Server vNext – “Information” Class has 54 properties.

Using a previous version SSMS, in SMO, if we use the “Platform” property to identify a Windows machine as “NT x64”, this won’t work on a Linux machine. it still will show “NT x64” even in the GUI.

powershell2sqlwindows

This is why we need to use SSMS v17 RC1. This have the needed changes to SMO to properly identify the Linux platform correctly.

powershell2sqllinux

Below is the list of added properties in the SMO “Information” class:

DatabaseEngineEdition
DatabaseEngineType
HostDistribution
HostPlatform
HostRelease
HostServicePackLevel
HostSku

As you can see, we’ll need to revisit our customs SMO scripts if you need do inventory on our SQL Servers on our infrastructure.

Remember! The fun never stop when you’re learning new stuff!

Posted in PowerShell | Comments Off on PowerShell – SSMS v17 RC1 changes in SMO support for SQL Server vNext

SQL Server for Linux Cross-Platform Database Restore

Now that SQL Server vNext for Linux CTP1 is available, you want jump in and test you installing existing databases. You may want to use databases with compatibility to SQL Server 2012 and greater. As I’m not a full Linux Admin but this opportunity to setup and use SQL Server on Linux definitely has help stepup to learn about Linux OS.

sqlservervnext_2016-11-16_12-38-22

Check out Microsoft SQL Server vNext for Linux page:
https://www.microsoft.com/en-us/sql-server/sql-server-vnext-including-Linux

So, before you start working or trying to restore your Windows SQL Databases to SQL Server on Linux, there are a few things you may need to do. This will involved installing components which are not installed by default when first build your Linux System.

One thing I had to say with confidence! You WILL find all your answer on the internet. Any of the Linux Distro forum have your resolution to any of the issue you may encountered. Also, most of the time you Linux system will tell you (or gives a tip) what do with missing dependencies.

Other than that, there are Linux Application Updater solution to help keep your system up-to-date.

mslinux

Here’s some tips on what’s needed to connect Windows to Linux shared folders in Ubuntu LTS 16.04.1

1. understand your SQL Server database Linux path – as you may know this is totally different than you Windows database location. In Linux, your databases will be preferably stored at ‘var/opt/mssql/data‘ which ti will be seem on SSMS as ‘C:\data’ folder and this may change on later builds.

Linux path to SQL Databases = ‘var/opt/mssql/data

Windows in SSMS shows Linux path as = ‘C:\var\opt\mssql\data’  (path corrected for SQL Server CTP1)

ctp1_datafolder

2. Create a Windows Shared folder – This one is easy to do using the Windows Explorer. But, you will need to play with assigning permission. To speed up the processes (for testing) use “Everyone” with Read-Only.

winshared_01_2016-11-18_10-57-56

3. Creating a Linux Shared folder – You could use bash ‘sudo nautilus’ to create the folder using GUI. Or, straight command line:

$ sudo su
# mkdir /var/opt/mssql/data/TempSQLBackup
# chmod 777 TempSQLBackup

4. Install Linux application/Libraries/Dependencies – As I mention before, the internet will provide answers to any issues. Here I will provide some to the point solutions:

a. Install samba:

$ sudo apt-get install samba

b. *Add your domain name(or workgroup) to samba configuration:

$ sudo gedit /etc/samba/smb.conf

*note: Look for -> workgroup = WORKGROUP (or Domain)

c. Restart samba process:

$ sudo service smbd restart

5. Testing Linux can see the Windows Shared folder – Use this command:

$ smbclient -L IPAddr_or_Sysname -U UserName

windowssharefolder_linux

5. Connect to your Linux to Windows Shared folder command: (It will prompt for the user password)

$ sudo mount.cifs //10.0.0.31/TempSQLBackup /var/opt/msql/data/TempSQLBackup -o user=max_t

6. Verify you can see the windows backup files on Linux. (use nautilus or bash command)

sqllinux_xplatrestore_01_2016-08-01_12-25-16

Now, we can successfully restore a database from a Windows Shared folder. No need to FTP your Windows backup to Linux FTP site.

Using PowerShell

From your Windows client, Using PowerShell to restore your Windows Database Backup to Linux.  Using the SQL PowerShell cmdlet “Restore-SQLDatabase” available when installing SQL Server Management Studio.
Here’s a sample script:

Restore-SqlDatabase -ServerInstance orion -Database AdventureWorks2014.bak -BackupFile "C:/data/TempSQLBackup";

Keep in mind, for now you can manage your “SQL Server vNext for Linux” (up to some extend) using either the existing SQL PowerShell cmdlets or buidling your own PowerShell scripts with SMO.

Here’s an example using SMO:

sqllinux_platformmistake_2016-08-17_13-38-44

In above sample, although I have connected to a SQL Server Linux engine, the platform still showing as “NT x64”.  This issue has been addressed and will be corrected soon.

So, try running your Windows PowerShell scripts against your SQL Server Linux systems.

Keep Learning PowerShell!!

Posted in PowerShell | Comments Off on SQL Server for Linux Cross-Platform Database Restore

SQL Server vNext for Linux CTP1 is available now.

Yes! The doors are finally open for all interested in trying SQL Server for Linux. This is the first preview version and there are more to come. This was announced at the Microsoft Connect() event today.

sqlservervnext_2016-11-16_12-38-22

Go to this Link which is very well documented and download SQL Server for you Linux Disto:

https://www.microsoft.com/en-us/sql-server/sql-server-vnext-including-Linux#resources

You can start connecting to your Linux version using the latest SSMS and even use PowerShell from your Windows desktop.

screenshot-from-2016-11-16-13-13-56

Go and Get It!

Posted in PowerShell | Comments Off on SQL Server vNext for Linux CTP1 is available now.

SAPIEN PowerShell Studio Deploying Your Application

sapienstudio_00_2016-11-11_14-44-34

In our previous blog we build a GUI application and created the executable file using either the “Build” or “Build & Run” option under the “Deploy | Packager” section.

sapiendgsimply_04_2016-11-14_14-14-52

Although, this is optional, we could have created an MSI installer which will produce all the necessary steps to deploy the GUI application.

The flow to build your MSI installer would be:

1. “Deploy | Installer” – “Settings” – To enter all the information needed about this GUI application.

sapien_deploy_07_2016-11-15_13-18-25

2. Under “Product Details” – Describes your application in details. Notice you can chose any PowerShell version available.

sapien_deploy_01_2016-11-15_13-18-25

3. “Files/ Folder” – This section will set where your MSI files will be stored. You can add more resource file with it.

sapien_deploy_02_2016-11-15_13-18-25

4. “Signing” – (optional) Only if you want to sign your application solution with your signed certificate.

sapien_deploy_03_2016-11-15_13-18-25

After everything under setting has been configured, proceed to “Build” the installer.

sapien_deploy_04_2016-11-15_13-18-25

Now, we have created the GUI application MSI installer which can be distributed to other machines.

What about application “Deployment“?

sapien_deploy_08_2016-11-15_13-18-25

Under the “Deployment” section, basically we can use it to collect all the script files and store documentation to be deploy somewhere on the network or media device.

sapien_deploy_05_2016-11-15_13-18-25

sapien_deploy_06_2016-11-15_13-18-25

PowerShell Studio is a RAD full developer solution for PowerShell development:

Download the product for a evaluation:
https://www.sapien.com/software/powershell_studio

More information about PowerShell Studio:
https://www.sapien.com/assets/pdf/PowerShell_STUDIO.pdf

Posted in PowerShell | Comments Off on SAPIEN PowerShell Studio Deploying Your Application

SAPIEN PowerShell Studio GUI Simplicity

In my last blog I show how easy it is to use a template to build a simple GUI application with a datagrid. Then, we enabled one of the sample code with the Script section of the “Load” button in order the process and display the results. And, this was just a start!

sapienstudio_00_2016-11-11_14-44-34

Simplicity

Now, how about making the GUI more functional so you can type any PowerShell command and the provide the results in the datagrid pane.
We can use the same GUI application we build and add a text box to be use to type our command.

sapiendgsimply_01_2016-11-14_14-14-52

Then, we need to add the following snippet code in the “Load” button script section:

$scriptblock = $executioncontext.invokecommand.NewScriptBlock($textbox1.Text);
$MyGridObject = $null; $MyGridObject = Invoke-Command -Scriptblock $scriptblock;
Load-DataGridView -DataGridView $datagridviewResults -Item $MyGridObject -AutoSizeColumns DisplayedCells;

sapiendgsimply_02_2016-11-14_14-14-52

So, after adding both the Text box and the PowerShell code, we got ourselves a function GUI that can run your PowerShell script and display the results on the datagridview. By typing the following one-liner then press the “Load” button:

$d = Dir -file; $d | Select Name, length, directory;

sapiendgsimply_03_2016-11-14_14-14-52

And, this is just out of the box UX with little customization.

Next Step

Now, you won’t be able to run the PowerShell GUI application outside of PowerShell Studio. The next step will be to create an executable GUI application with the following steps from the menu:

1. Go to the Deploy menu, and click on “Settings“.

sapiendgsimply_04_2016-11-14_14-14-52

2. In the “Engine Settings” , you make necessary changes to the application information.

sapiendgsimply_05_2016-11-14_14-14-52

3. Under “Execution Restrictions“, you can identify which environments can execute this application.

sapiendgsimply_06_2016-11-14_14-14-52

4. In “Version Information“, you can provide useful information for source control.

sapiendgsimply_07_2016-11-14_14-14-52

5. Finally, “Build Options“, in case you need some provide either Pre or Post commands during the build on this application.

sapiendgsimply_08_2016-11-14_14-14-52

6. *Now you can click either execute “Build” or “Build & Run” to create the executable.

sapiendgsimply_10_2016-11-14_14-14-52

*Note: The executable will be stored on the same folder you had created the application.

sapiendgsimply_09_2016-11-14_14-14-52

For more information

Download the product for a evaluation:
https://www.sapien.com/software/powershell_studio

More information about PowerShell Studio:
https://www.sapien.com/assets/pdf/PowerShell_STUDIO.pdf

This how simple it is to create a PowerShell executable GUI (also non-GUI) application in PowerShell Studio.

Next blog I’ll be covering buidling the MSI installer for this application.

Posted in PowerShell | Comments Off on SAPIEN PowerShell Studio GUI Simplicity

Creating Datagrid GUI in SAPIEN PowerShell Studio

Lets cut to the chase! Here’s a quick way to create Datagrid views using PowerShell Studio.

sapienstudio_00_2016-11-11_14-44-34

First, take advantage of the forms wizard to start building your GUI application.
Go to “File” then select “New Form” and Select a template: “Grid Template”.

sapienstudio_01_2016-11-11_14-44-34

sapienstudio_02_2016-11-11_14-44-34

This template already provide us with two buttons: “Load” and “Exit”. Take a look in the script tab and you’ll notice some events been already created for us to use. Also, read the commented lines because it give you a hint in how to populate the datagrid in the form.

sapienstudio_03a_2016-11-11_14-44-34

Now, in the commented sample, you’ll find the function “Load-DataGridView” is used to push the data to the datagrid component. This function is located at line #2 in the “#region Control Helper Functions”. Just expand the regions to view the *function:

1. ConvertTo-DataTable
2. Load-DataGridView

sapienstudio_03_2016-11-11_14-44-34

sapienstudio_04_2016-11-11_14-44-34

*Note: these functions are only available when you select the Grid template. They are not available in their Snippets section.

You can go ahead the follow the commented sample to populate the form datagrid. Uncomment the following line and run the application:

$processes = Get-WmiObject Win32_Process -Namespace "Root\CIMV2"
Load-DataGridView -DataGridView $datagridviewResults -Item $processes -AutoSizeColumns DisplayedCells

This will load the datagrid with data and you can resize the window application.

sapienstudio_05_2016-11-11_14-44-34

sapienstudio_06_2016-11-11_14-44-34

As you can seen, right from the template you can start building PowerShell Gui’s with SAPIEN PowerShell Studio product.

Download the product for a evaluation:
https://www.sapien.com/software/powershell_studio

More information about PowerShell Studio:
https://www.sapien.com/assets/pdf/PowerShell_STUDIO.pdf

Posted in PowerShell | Comments Off on Creating Datagrid GUI in SAPIEN PowerShell Studio

Come and Celebrate PowerShell 10th Anniversary!

I just can’t believe I’ve been hooked to PowerShell since 2006. And, that I can’t stop using it.  This product change my life and it will be with us for a long time.

Here’s an image I showed on my first PowerShell presentation back in 2007 and I even build a CD with free resource information.

scritpingpathpowershell

What a accomplishment from Microsoft PowerShell father Mr. Jeffrey Snover! He created PowerShell and nowaday is mostly available in most Operating Systems: Windows, Linux, and Mac OS. Here are a few slide from one of Jeffrey Snover PowerShell webcast back in April 2007.

jsnoverpowershell1

jsnoverpowershell2

I totally got it and I couldn’t stop learning about PowerShell. It did made my work easy thanks to this new .NET Scripting Automation Technology.

Now, let us not forget about all of our existing PowerShell Communities that throughout the years has done an excellent jobs to provide guidance adn direction to everyone wanting to learn PowerShell.

Big KUDOS!!

Join Microsoft PowerShell 10 Years Anniversary Celebration

poshchannel9_2016-11-10_15-30-03

Date: November 14th 2016 (A lond day event)
Where: MSDN Channel 9 – https://channel9.msdn.com/Events/PowerShell-Team/PowerShell-10-Year-Anniversary

powershelllinuxwin_02

Keep Learning about PowerShell!

Posted in PowerShell | Comments Off on Come and Celebrate PowerShell 10th Anniversary!

FLPSUG last meeting November 3rd posted – Windows 10 Bash and PowerShell

If you missed our online meeting, then here’s the recording.  We’ll be taking a tour into Windows 10 Bash Linux subsystem. I’ll be sharing some tips on how to work with Bash, and the workaround to make PowerShell in side BASH. This is the perfect environment to start learning about Linux while you work in windows. We’ll be take advantage of how-to use cross-platform Open source product(s).

powershelllinuxwin_02

xterm2posh_2016-11-04_10-53-19

Topic: Looking into Windows 10 Bash Linux subsystem and PowerShell

Presentation and demo info: https://1drv.ms/f/s!Akqg632FQ1xUl091qQvhMIYw9Isq

Posted in PowerShell | Comments Off on FLPSUG last meeting November 3rd posted – Windows 10 Bash and PowerShell

FLPSUG Recorded Monthly Meetings 2016

I took the time to put in a blog all available recorded meeting for this year. All of these videos are loaded in YouTube site for viewing.

Florida PowerShell User Group Monthly Thursday, April 28, 2016
Topic: “Open PowerShell V5 recap and PowerShell Studio 2016”
Speaker: Maximo Trinidad

This is an open session review the latest new of PowerShell v5 and a look at the new SAPIEN Technology “PowerShell Studio 2016”. I will demo some script sample using SQL Server SMO and creating .NET Windows GUI.
PowerShell, Sapien PowerShell Studio

Florida PowerShell User Group Monthly Thursday, May 26, 2016
Topic: “The Essential PowerShell on Error Trapping”
Speaker: Maximo Trinidad

Do you to learn how to trap and document error while running PowerShell scripts? This session will cover the use and how to trap errors in your PowerShell script. We’ll be creating simple script providing some scenarios in trapping errors. At the same time, we are going to end up creating an error report.
PowerShell, Sapien PowerShell Studio

Florida PowerShell User Group Monthly Thursday, September 29, 2016
Topic: “Taking a look at PowerShell Cross-Platform”
Speaker: Maximo Trinidad

PowerShell is Open Source now! Come and see how you could use PowerShell in cross-platform between Windows and Linux sharing scripts to assist in admin task automation.  We’ll spend some time in Linux, and working with some of the editor(s) available for scripting.  Also, I’ll be providing information on how to contribute to  PowerShell Open Source.  This is a demo intensive presentation you don’t want to miss.
Linux PowerShell

Posted in PowerShell | Comments Off on FLPSUG Recorded Monthly Meetings 2016