PowerShell script to check multiple strings combination in the file


Often I receive requests to check the multiple string combinations in the given set of files.It’s really a pain to do all manual check. Here the small PowerShell script to accomplish that.

Requirement:

Request to check the 2 strings in a file with the combination:

Ex: in the file I need to find a string ‘BOB’ and also I need to find another string ‘bought Car’

if ((Get-Content -path filelocation | Select-String -pattern $String1 -Quiet) -and (Get-Content -path filelocation | Select-String -SimpleMatch $String2 -Quiet))

{

‘combination exists’

}

else

{

‘combination not exists’

}

In the next post, I will post about searching multiple strings in the file shares and copy those files in the destination location.

Regards,

Chaitanya

https error for wcf-webhttp adapter in BizTalk


Hi All,

When we tried to update the https url in send port with wcf-webhttp adapter in BizTalk, I got the below error.

After troubleshooting, we found that security mode in security setting is set to none.

It should be set to transport. Then we can able to configure the https url in the send port with BizTalk wcf-webhttp adapter.

Regards,

Chaitanya

BizTalk Server 2013 Performance Optimization Guide


Hi All,

Please find latest BizTalk Server 2013 Performance Optimization Guide. BizTalk Administrators must have this document for troubleshooting the performance issues.

https://msdn.microsoft.com/library/dn775063(v=bts.10).aspx

Regards,

Chaitanya

BizTalk Server 2013 CU3 is now available


Hi All,

Please check for download instructions of CU3 for- BizTalk Server 2013 and Adapter pack updates in below links.

BizTalk Server 2013 CU3:

http://support.microsoft.com/kb/3088676

BizTalk Adapter Pack 2013 CU2:

http://support.microsoft.com/kb/3100564

Regards,

Chaitanya

BizTalk Server 2010 CU8 is now available


Hi All,

Please check for download instructions of CU8 for- BizTalk Server 2010 in below link.

https://support.microsoft.com/en-us/kb/3081737

Regards,

Chaitanya

How to access BizTalk Application Resources via BiztalkMgmtDB


There are 2 types of assemblies in BizTalk Applications

1. .Net Assemblies will be having the type System.BizTalk:Assembly

2. BizTalk Assemblies will be having the type ‘System.BizTalk:BizTalkAssembly’

Below is the query to access the biztalk resources programmatically in sql server, so that you can compare the assemblies across groups.

You cannot find out .net assembliies of type System.BizTalk:Assembly in bts_assembly table. This is the only place you could find this information

SELECT [luid] ‘AssemblyInfo’

FROM [BizTalkMgmtDb].[dbo].[adpl_sat] sat

WHERE sat.sdmtype IN ( ‘System.BizTalk:Assembly’,

‘System.BizTalk:BizTalkAssembly’ )

Please let me know if you have any questions.

Regards,

Chaitanya

PowerShell Script for importing GAC Assemblies info from Servers to Database


Hi All,

Below is one of the procedure in PowerShell to populate GAC information from servers to Database.

First create one database and one table for storing the servers GAC assemblies

CREATE DATABASE testdb

go

USE [testDB]

GO

/****** Object: Table [dbo].[gacassemblies_test] Script Date: 9/9/2015 5:54:45 PM ******/

SET ANSI_NULLS ON

GO

SET QUOTED_IDENTIFIER ON

GO

SET ANSI_PADDING ON

GO

CREATE TABLE [dbo].[gacassemblies_test](

[servername] [varchar](50) NULL,

[AssemblyName] [varchar](max) NULL,

[AssemblyVersion] [varchar](max) NULL,

[AssemblyUpdatetime] [varchar](50) NULL

) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

GO

SET ANSI_PADDING OFF

GO

Once you have created Database and table in which you want to store the assemblies from your group of servers. Below is the powershell script for getting GAC assemblies from given location.

Create a text file that contains server information like below. Don’t make any spaces in the file.

# Power Shell Script

$Output = @();

function truncatetable

{

$conn.open()

$cmd.commandtext = "Truncate table gacassemblies_test"

$cmd.executenonquery()

$conn.close()

}

truncatetable

function Get-AssemblyVersionNumber($assembly)

{

$Assemblydetails = [System.Reflection.Assembly]::Loadfile($assembly)

$AssemblyName = $Assemblydetails.GetName()

$Assemblyversion = $AssemblyName.version

return $AssemblyName

}

$location="C:GAC_Server"

$server=gc "$locationserver.txt" # to give servers information

$path = ‘c$WindowsMicrosoft.NETassemblyGAC_MSIL’ # to get .Net 4 Assemblies

foreach ($sr in $server)

{

$Output=$null

$Output = @();

$Dll= Get-ChildItem "\$sr$path" -Recurse | where {$_.extension -eq ".dll"}

Foreach ($f in $Dll)

{

$assembly=$f.FullName

$gacassembly= Get-AssemblyVersionNumber $assembly

$Output += $gacassembly

}

#$Output | Export-csv $OutputFilePath -NoTypeInformation

$conn = New-Object System.Data.SqlClient.SqlConnection

$conn.ConnectionString = "Data Source=localhost;Initial Catalog=testdb;Integrated Security=SSPI;"

$cmd = New-Object System.Data.SqlClient.SqlCommand

$cmd.connection = $conn

Foreach ($outputrecord in $Output)

{

$conn.open()

$cmd.commandtext = "INSERT INTO gacassemblies_test (servername,AssemblyName,AssemblyVersion) VALUES(‘{0}’,'{1}’,'{2}’)" -f $sr,$outputrecord.Name,$outputrecord.Version

$cmd.executenonquery()

$conn.close()

}

}

Copy PowerShell script into notepad and save it with ps1 extension. And also servers information in server.txt file.

Run the PowerShell script using PowerShell ISE or PowerShell command prompt.

You will get all the assemblies from servers to database.

Regards,

Chaitanya

PowerShell Script to raise Custom Event ID in case if Orchestration is suspended in BizTalk Server


Hi All,

Below is the power shell script for generating the event ID in the event viewer in case if any BizTalk orchestration is in suspended mode.

As of now, this script only useful for one orchestration checking at a time, in future I will modify and update the PowerShell script for publishing the events for multiple orchestrations at a time.

Copy the below script and save it in note pad with .PS1 extension and schedule a task job if you want to run on daily basis.

Below is the website link on how to Use the Windows Task Scheduler to Run a Windows PowerShell Script

http://blogs.technet.com/b/heyscriptingguy/archive/2012/08/11/weekend-scripter-use-the-windows-task-scheduler-to-run-a-windows-powershell-script.aspx

For below script to be successful, you must create a linked server between BiztalkMgmtDB and biztalkmsgboxdb if both databases are residing in different servers.

I am writing different power shell script to make use of WMI instead of using Linked servers and I will update the blog in future posts.

 

 

$sqlText = “—————————-Start of  Script————————————————————————–

SET NOCOUNT ON

SET TRANSACTION ISOLATION LEVEL READ COMMITTED

SET DEADLOCK_PRIORITY LOW

 

declare @ErrorOrchCount int,@ErrorMsg varchar(100)

 

SELECT

@ErrorOrchCount= Count(o.nvcName)

 

FROM [BizTalkMsgboxDb]..[Instances] AS i WITH (NOLOCK)

JOIN [BizTalkMgmtDb]..[bts_Orchestration] AS o WITH (NOLOCK) ON i.uidServiceID = o.uidGUID

WHERE o.nvcName =’OrchestrationName’  # Give the Orchestration Name

and i.nState not in  (2,8)

 

GROUP BY o.nvcName, i.nState

 

if (@ErrorOrchCount >0)

begin

set @ErrorMsg=’Orchestration is in Suspended Mode’

 

end

else

 

Begin

set @ErrorMsg=Null;

 

END

#Provide the SQL Server Name on which sql statements needs to be executed

$serverName= “servername”

 

 

$QueryTimeout = 120

$ConnectionTimeout = 30

#Action of connecting to the Database and executing the query and returning results if there were any.

$conn=New-Object System.Data.SqlClient.SQLConnection

$ConnectionString = “Server={0};Database={1};Integrated Security=True;Connect Timeout={2}” -f $ServerName,$DatabaseName,$ConnectionTimeout

$conn.ConnectionString=$ConnectionString

$conn.Open()

$cmd=New-Object system.Data.SqlClient.SqlCommand($sqlText,$conn)

$cmd.CommandTimeout=$QueryTimeout

$reader = $cmd.ExecuteReader()

 

while ($reader.Read()) {

 

$OrchStatus =$Reader.GetValue($1)

 

}

 

if ($OrchStatus)

{

 

Write-EventLog –LogName Application –Source “OrchestrationException” –EntryType Error –EventID 5012 #event id that you want to raise for SCOM to recognize

–Message “ Orchestration is in Suspended Mode.”

 

}

Please let me know if you have any questions.

 

 

Regards,

Chaitanya

Virtualization Basics


Cloud computing and virtualization are not the same. Virtualization is component in cloud.

Virtualization: we are separating the operating system from hard ware

Cloud computing: we are separating applications from hard ware

In olden days, when we are installing the OS , it will bind to the physical hardware.

Means device drivers s/w is linked to hard ware. It’s not possible to take the hard disk(contains the OS and put it into the other system

In virtualization, it will provide the layer on top of Hard ware, so we can install OS instance on the layer

This is called as instance of operating system

The layer is called hypervisor

There r 2 types of hypervisors

1.Type 1 Hypervisors

You have a blank computer, and you installed hypervisor and you can install OS instances on to that Hypervisor

These are real enterprise servers and it is like below.

You can put this physical server like this into the rack.

One rack may consists of many physical servers.

When you installed the hypervisor s/w.. By putting CD, you have only seen in the screen like IP address, storage info etc.

You can connect this physical server to network and get the IP address

How can access this hypervisor s/w , this can be accessed by using the management console that is installed on the other computer with the IP address.

Using this management s/w you can install the OS on to the hypervisor.

You can install the windows server 2012 OS into this physical server, if this server down you can copy this OS instance from one physical server to other physical server in the same RACK.

Management s/w can do:

1. Automatically OS instance to other physical which is having required amount of resources if the current server does not meet that much requests.

It will turn on the physical server and move the OS instances to that

2. It will do fault tolerance

If your physical server is down, it will automatically moves the OS instances to other server without no down time.

3. over allocation:

We can allocate the more than the amount of RAM to the OS instances than that exists In physical server

Ex: your physical server have 16 GB of RAM, but you can allocate the 32GB for 3 instances.

How:

We can allocate 12 GB for 1 ,12 GB for 2 ,8 GB.

What Hypervisor will do is if first server is needed huge resources during morning time, it will allocate 12 GB of RAM and other 2GB ,for 2 and 2 GB for 3rd.

After the load is over, it will take that RAM and give it to the other.

Lot of type 1 Hypervisors are there.

1. Citrix

2. VM ware

3. Microsoft Hyper V

These Hypervisors are free, but the management s/w is chargeable.

2.Type 2 Hypervisors

We have OS, then on to that OS, you can install hypervisor like virtual box, virtual pc,VM ware and new instances can be installed in to this hyper visors.

You don’t need the management software in this case. You can open the OS instance like an Window and you can play with it.

Products:

1. Virtual Box from oracle

2. Virtual PC from MS

These are free, if you want to use advances features you need pay for that

If your 2 virtual instances are allocated with the 4GB and 2 GB RAM, if you have 8GB RAM system, they will take the total 8GB and your host computer run on 2GB and may cause system crash.

It will be used for small organizations

Converting to Virtualizations:

Now converting the existing normal OS to virtual instances are easy.

You will have the conversion tools that will be there in the CD’s and you can boot this CD into this OS for which you want to convert them to Virtual instances virtual hard drive . It will take the instance . You can simply use this CD for creating this instance.

Different products have different virtual hard drive formats

Below are the types of Virtualization

Software

· Operating system-level virtualization, hosting of multiple virtualized environments within a single OS instance.

· Application virtualization and workspace virtualization, the hosting of individual applications in an environment separated from the underlying OS. Application virtualization is closely associated with the concept of portable applications.

· Service virtualization, emulating the behavior of dependent (e.g., third-party, evolving, or not implemented) system components that are needed to exercise an application under test (AUT) for development or testing purposes. Rather than virtualizing entire components, it virtualizes only specific slices of dependent behavior critical to the execution of development and testing tasks.

Memory

· Memory virtualization, aggregating random-access memory (RAM) resources from networked systems into a single memory pool

· Virtual memory, giving an application program the impression that it has contiguous working memory, isolating it from the underlying physical memory implementation

Storage

· Storage virtualization, the process of completely abstracting logical storage from physical storage

· Distributed file system, any file system that allows access to files from multiple hosts sharing via a computer network

· Virtual file system, an abstraction layer on top of a more concrete file system, allowing client applications to access different types of concrete file systems in a uniform way

· Storage hypervisor[further explanation needed]

· Virtual disk drive, a computer program the emulates a disk drive such as a hard disk drive or optical disk drive (see comparison of disc image software)

Data

· Data virtualization, the presentation of data as an abstract layer, independent of underlying database systems, structures and storage.

· Database virtualization, the decoupling of the database layer, which lies between the storage and application layers within the application stack over all.

Network

· Network virtualization, creation of a virtualized network addressing space within or across network subnets

· Virtual private network (VPN), a network protocol that replaces the actual wire or other physical media in a network with an abstract layer, allowing a network to be created over the Internet

Regards,

Chaitanya

How to Raise Custom Event ID in Event Viewer using Sql Server


Hi All,

We need the event ids to be generated to event viewer for troubleshooting purpose. SCOM agent recognizes the event id in event viewer and raise the alert. It generally happens in distributed systems.

We can accomplish this task in Sql server using 2 ways.

1. Raise error with log

EX: RAISERROR (‘Test Severity 16’, 16, 1) WITH LOG

2. xp_logevent event method

Ex : EXEC master.dbo.xp_logevent 60000, ‘Test message’, informational

Issue with above methods are they only raise the error numbers in the event viewer and they can’t do custom event ID in event viewer.

Whatever the event ids that you were seen in above screen shots are related to generic Sql server events.

In order to raise the custom events , as of now use the power shell to raise. Below is the PowerShell snippet for that.

write-eventlog System -source Server -eventid 12345 -message "I am a custom event log message"

Regards,

Chaitanya

Design a site like this with WordPress.com
Get started