Following forecast member returns forecast figures for a given measure based on the entire history.
WITH MEMBER
[Measures Utility].[Measure Calculations].[Linear Regression Forecast]
AS LinRegPoint(
Rank(
[Period].[Extended Year - Quarter - Month].CurrentMember,
[Period].[Extended Year - Quarter - Month].CurrentMember.Level.Members
),
Exists(
[Period].[Extended Year - Quarter - Month].CurrentMember.Level.Members,
[Period].[Calendar Year - Quarter - Month].[Month].Members),
([Measures].CurrentMember, [Measures Utility].[Measure Calculations].DefaultMember),
Rank(
[Period].[Extended Year - Quarter - Month].CurrentMember,
[Period].[Extended Year - Quarter - Month].CurrentMember.Level.Members)
)
SELECT
([Measures].[RXA Value] *
[Measures Utility].[Measure Calculations].[Linear Regression Forecast]
) on 0,
NON EMPTY {[Period].[Extended Month].Children}
ON 1
FROM [Cube Name]
Forecasts based on 3 months data points
CREATE MEMBER CURRENTCUBE.[Measures Utility].[Measure Calculations].[Linear Regression Forecast - 3 Data Points]
AS LinRegPoint(
Rank([Period].[Operational Year - Quarter - Month].CurrentMember,
{
Tail(Exists([Period].[Operational Year - Quarter - Month].Month.Members, [Period].[Calendar Year - Quarter - Month].[Month].Members),1).Item(0).Item(0).Lag(2):
Tail(Exists([Period].[Operational Year - Quarter - Month].Month.Members, [Period].[Calendar Year - Quarter - Month].[Month].Members),1).Item(0).Item(0).Parent.Parent.LastChild.LastChild
} --[Output Period]
), -- Measures.OutputX (Current Financial Year)
Tail(Exists([Period].[Operational Year - Quarter - Month].Month.Members, [Period].[Calendar Year - Quarter - Month].[Month].Members),3), -- [Input Period] -- 3 Months
( [Measures].CurrentMember,
[Measures Utility].[Measure Calculations].DefaultMember), -- Measures.Input Y
Rank(
[Period].[Operational Year - Quarter - Month].CurrentMember,
Tail(Exists([Period].[Operational Year - Quarter - Month].Month.Members, [Period].[Calendar Year - Quarter - Month].[Month].Members),3) --[Input Period] -- 3 Months
) -- Measures.InputX
),
FORMAT_STRING = "#,#.00",
VISIBLE = 1;
Thursday, October 19, 2017
Find SQLserver sessions to a DB and Kill all in one goal
Get the list of connections
Kill all the connection to a given database
Select * from master.dbo.sysprocesses where dbid = db_id(
'databaseName')
Use Master
Go
Declare @dbname sysname
Set @dbname = 'databaseName'
Declare @spid int
Select @spid = min(spid) from master.dbo.sysprocesses
where dbid = db_id(@dbname)
While @spid Is Not Null
Begin
Execute ('Kill ' + @spid)
Select @spid = min(spid) from master.dbo.sysprocesses
where dbid = db_id(@dbname) and spid > @spid
End
GO
Reference : http://stackoverflow.com/questions/1154200/when-restoring-a-backup-how-do-i-disconnect-all-active-connections
Labels:
MSSQLServer
Unzip all the zip files in a folder + PowerShell
PARAM
( [string] $ZipFilesPath = "E:\TEMP\TEMP DSE", [string] $UnzipPath = "E:\TEMP\TEMP DSE" ) $Shell = New-Object -com Shell.Application $Location = $Shell.NameSpace($UnzipPath) $ZipFiles = Get-Childitem $ZipFilesPath -Recurse -Include *.zip $progress = 1 foreach ($ZipFile in $ZipFiles) { Write-Progress -Activity "Unzipping to $($UnzipPath)" -PercentComplete (($progress / ($ZipFiles.Count + 1)) * 100) -CurrentOperation $ZipFile.FullName -Status "File $($Progress) of $($ZipFiles.Count)" $ZipFolder = $Shell.NameSpace($ZipFile.fullname) $Location.Copyhere($ZipFolder.items(), 1040) $progress++ }
Labels:
PowerShell
Function & SSIS Expression to Retrieve MonthNumber in YYYYMM Format
TSQL Function
E.g. 1. Following function can be used to return Month number in YYYYMM format for a month name in "MON-YYYY", "MON YYYY", "MON/YYYY" Formats.
CREATE FUNCTION dbo.[Retrieve MonthNumber(YYYYMM)](@MonthName Varchar(50), @MonthNameFormat Varchar(50))
RETURNS INT AS
BEGIN
DECLARE @MonthNumber INT;
SET @MonthName = UPPER(@MonthName);
RETURN CASE
WHEN UPPER(@MonthNameFormat) = 'MON-YYYY' OR UPPER(@MonthNameFormat) = 'MON YYYY' THEN
CASE
WHEN LEFT(@MonthName, 3) = 'JAN' THEN CAST(RIGHT(@MonthName,4) + '01' AS INTEGER)
WHEN LEFT(@MonthName, 3) = 'FEB' THEN CAST(RIGHT(@MonthName,4) + '02' AS INTEGER)
WHEN LEFT(@MonthName, 3) = 'MAR' THEN CAST(RIGHT(@MonthName,4) + '03' AS INTEGER)
WHEN LEFT(@MonthName, 3) = 'APR' THEN CAST(RIGHT(@MonthName,4) + '04' AS INTEGER)
WHEN LEFT(@MonthName, 3) = 'MAY' THEN CAST(RIGHT(@MonthName,4) + '05' AS INTEGER)
WHEN LEFT(@MonthName, 3) = 'JUN' THEN CAST(RIGHT(@MonthName,4) + '06' AS INTEGER)
WHEN LEFT(@MonthName, 3) = 'JUL' THEN CAST(RIGHT(@MonthName,4) + '07' AS INTEGER)
WHEN LEFT(@MonthName, 3) = 'AUG' THEN CAST(RIGHT(@MonthName,4) + '08' AS INTEGER)
WHEN LEFT(@MonthName, 3) = 'SEP' THEN CAST(RIGHT(@MonthName,4) + '09' AS INTEGER)
WHEN LEFT(@MonthName, 3) = 'OCT' THEN CAST(RIGHT(@MonthName,4) + '10' AS INTEGER)
WHEN LEFT(@MonthName, 3) = 'NOV' THEN CAST(RIGHT(@MonthName,4) + '11' AS INTEGER)
WHEN LEFT(@MonthName, 3) = 'DEC' THEN CAST(RIGHT(@MonthName,4) + '12' AS INTEGER)
ELSE
0
END
WHEN UPPER(@MonthNameFormat) = 'MM/YYYY' OR UPPER(@MonthNameFormat) = 'MM-YYYY' THEN
CASE
WHEN LEFT(@MonthName, 2) = '01' THEN CAST(RIGHT(@MonthName,4) + '01' AS INTEGER)
WHEN LEFT(@MonthName, 2) = '02' THEN CAST(RIGHT(@MonthName,4) + '02' AS INTEGER)
WHEN LEFT(@MonthName, 2) = '03' THEN CAST(RIGHT(@MonthName,4) + '03' AS INTEGER)
WHEN LEFT(@MonthName, 2) = '04' THEN CAST(RIGHT(@MonthName,4) + '04' AS INTEGER)
WHEN LEFT(@MonthName, 2) = '05' THEN CAST(RIGHT(@MonthName,4) + '05' AS INTEGER)
WHEN LEFT(@MonthName, 2) = '06' THEN CAST(RIGHT(@MonthName,4) + '06' AS INTEGER)
WHEN LEFT(@MonthName, 2) = '07' THEN CAST(RIGHT(@MonthName,4) + '07' AS INTEGER)
WHEN LEFT(@MonthName, 2) = '08' THEN CAST(RIGHT(@MonthName,4) + '08' AS INTEGER)
WHEN LEFT(@MonthName, 2) = '09' THEN CAST(RIGHT(@MonthName,4) + '09' AS INTEGER)
WHEN LEFT(@MonthName, 2) = '10' THEN CAST(RIGHT(@MonthName,4) + '10' AS INTEGER)
WHEN LEFT(@MonthName, 2) = '11' THEN CAST(RIGHT(@MonthName,4) + '11' AS INTEGER)
WHEN LEFT(@MonthName, 2) = '12' THEN CAST(RIGHT(@MonthName,4) + '12' AS INTEGER)
ELSE
0
END
ELSE
0
END
END;
GO
Following qeury can be used to test / execute above function.
SELECT dbo.[Retrieve MonthNumber(YYYYMM)]('01/2015', 'MM/YYYY')
E.g. 2. Following function can be used to return Month number in YYYYMM format for a month name in "### Mon YYYY" format.
CREATE FUNCTION [dbo].[GetMonthID] (
@Period VARCHAR(50))
RETURNS INT
AS
BEGIN
DECLARE @Year VARCHAR(50) = 0;
DECLARE @Month VARCHAR(50)= 0;
DECLARE @MonthID INT = NULL;
SELECT @Year = SUBSTRING( @Period, CHARINDEX('20',@Period, 1) , 4)
SELECT @Month = CASE
WHEN @Period LIKE '%JAN%' THEN '01'
WHEN @Period LIKE '%FEB%' THEN '02'
WHEN @Period LIKE '%MAR%' THEN '03'
WHEN @Period LIKE '%APR%' THEN '04'
WHEN @Period LIKE '%MAY%' THEN '05'
WHEN @Period LIKE '%JUN%' THEN '06'
WHEN @Period LIKE '%JUL%' THEN '07'
WHEN @Period LIKE '%AUG%' THEN '08'
WHEN @Period LIKE '%SEP%' THEN '09'
WHEN @Period LIKE '%OCT%' THEN '10'
WHEN @Period LIKE '%NOV%' THEN '11'
WHEN @Period LIKE '%DEC%' THEN '12'
END
IF ISNUMERIC(@Year + @Month) = 1
SET @MonthID = CAST(@Year + @Month AS INT);
ELSE
SET @MonthID = NULL
RETURN @MonthID
END;
Query
SELECT dbo.GetMonthID([Time Period NAME]) FROM dbo.TableName
SSIS Expression
Following expression can be used to return Month number in YYYYMM format for a month name in "MON-YYYY", "MON YYYY", "MON/YYYY" Formats.
(DT_I4)(SUBSTRING(Month,4,2) + RIGHT(Month,2) +
( FINDSTRING(Month,"JAN",1) > 0 ? "01" :
FINDSTRING(Month,"FEB",1) > 0 ? "02" :
FINDSTRING(Month,"MAR",1) > 0 ? "03" :
FINDSTRING(Month,"APR",1) > 0 ? "04" :
FINDSTRING(Month,"MAY",1) > 0 ? "05" :
FINDSTRING(Month,"JUN",1) > 0 ? "06" :
FINDSTRING(Month,"JUL",1) > 0 ? "07" :
FINDSTRING(Month,"AUG",1) > 0 ? "08" :
FINDSTRING(Month,"SEP",1) > 0 ? "09" :
FINDSTRING(Month,"OCT",1) > 0 ? "10" :
FINDSTRING(Month,"NOV",1) > 0 ? "11" :
FINDSTRING(Month,"DEC",1) > 0 ? "12" :
"00"
)
)
E.g. 1. Following function can be used to return Month number in YYYYMM format for a month name in "MON-YYYY", "MON YYYY", "MON/YYYY" Formats.
CREATE FUNCTION dbo.[Retrieve MonthNumber(YYYYMM)](@MonthName Varchar(50), @MonthNameFormat Varchar(50))
RETURNS INT AS
BEGIN
DECLARE @MonthNumber INT;
SET @MonthName = UPPER(@MonthName);
RETURN CASE
WHEN UPPER(@MonthNameFormat) = 'MON-YYYY' OR UPPER(@MonthNameFormat) = 'MON YYYY' THEN
CASE
WHEN LEFT(@MonthName, 3) = 'JAN' THEN CAST(RIGHT(@MonthName,4) + '01' AS INTEGER)
WHEN LEFT(@MonthName, 3) = 'FEB' THEN CAST(RIGHT(@MonthName,4) + '02' AS INTEGER)
WHEN LEFT(@MonthName, 3) = 'MAR' THEN CAST(RIGHT(@MonthName,4) + '03' AS INTEGER)
WHEN LEFT(@MonthName, 3) = 'APR' THEN CAST(RIGHT(@MonthName,4) + '04' AS INTEGER)
WHEN LEFT(@MonthName, 3) = 'MAY' THEN CAST(RIGHT(@MonthName,4) + '05' AS INTEGER)
WHEN LEFT(@MonthName, 3) = 'JUN' THEN CAST(RIGHT(@MonthName,4) + '06' AS INTEGER)
WHEN LEFT(@MonthName, 3) = 'JUL' THEN CAST(RIGHT(@MonthName,4) + '07' AS INTEGER)
WHEN LEFT(@MonthName, 3) = 'AUG' THEN CAST(RIGHT(@MonthName,4) + '08' AS INTEGER)
WHEN LEFT(@MonthName, 3) = 'SEP' THEN CAST(RIGHT(@MonthName,4) + '09' AS INTEGER)
WHEN LEFT(@MonthName, 3) = 'OCT' THEN CAST(RIGHT(@MonthName,4) + '10' AS INTEGER)
WHEN LEFT(@MonthName, 3) = 'NOV' THEN CAST(RIGHT(@MonthName,4) + '11' AS INTEGER)
WHEN LEFT(@MonthName, 3) = 'DEC' THEN CAST(RIGHT(@MonthName,4) + '12' AS INTEGER)
ELSE
0
END
WHEN UPPER(@MonthNameFormat) = 'MM/YYYY' OR UPPER(@MonthNameFormat) = 'MM-YYYY' THEN
CASE
WHEN LEFT(@MonthName, 2) = '01' THEN CAST(RIGHT(@MonthName,4) + '01' AS INTEGER)
WHEN LEFT(@MonthName, 2) = '02' THEN CAST(RIGHT(@MonthName,4) + '02' AS INTEGER)
WHEN LEFT(@MonthName, 2) = '03' THEN CAST(RIGHT(@MonthName,4) + '03' AS INTEGER)
WHEN LEFT(@MonthName, 2) = '04' THEN CAST(RIGHT(@MonthName,4) + '04' AS INTEGER)
WHEN LEFT(@MonthName, 2) = '05' THEN CAST(RIGHT(@MonthName,4) + '05' AS INTEGER)
WHEN LEFT(@MonthName, 2) = '06' THEN CAST(RIGHT(@MonthName,4) + '06' AS INTEGER)
WHEN LEFT(@MonthName, 2) = '07' THEN CAST(RIGHT(@MonthName,4) + '07' AS INTEGER)
WHEN LEFT(@MonthName, 2) = '08' THEN CAST(RIGHT(@MonthName,4) + '08' AS INTEGER)
WHEN LEFT(@MonthName, 2) = '09' THEN CAST(RIGHT(@MonthName,4) + '09' AS INTEGER)
WHEN LEFT(@MonthName, 2) = '10' THEN CAST(RIGHT(@MonthName,4) + '10' AS INTEGER)
WHEN LEFT(@MonthName, 2) = '11' THEN CAST(RIGHT(@MonthName,4) + '11' AS INTEGER)
WHEN LEFT(@MonthName, 2) = '12' THEN CAST(RIGHT(@MonthName,4) + '12' AS INTEGER)
ELSE
0
END
ELSE
0
END
END;
GO
Following qeury can be used to test / execute above function.
SELECT dbo.[Retrieve MonthNumber(YYYYMM)]('01/2015', 'MM/YYYY')
E.g. 2. Following function can be used to return Month number in YYYYMM format for a month name in "### Mon YYYY" format.
CREATE FUNCTION [dbo].[GetMonthID] (
@Period VARCHAR(50))
RETURNS INT
AS
BEGIN
DECLARE @Year VARCHAR(50) = 0;
DECLARE @Month VARCHAR(50)= 0;
DECLARE @MonthID INT = NULL;
SELECT @Year = SUBSTRING( @Period, CHARINDEX('20',@Period, 1) , 4)
SELECT @Month = CASE
WHEN @Period LIKE '%JAN%' THEN '01'
WHEN @Period LIKE '%FEB%' THEN '02'
WHEN @Period LIKE '%MAR%' THEN '03'
WHEN @Period LIKE '%APR%' THEN '04'
WHEN @Period LIKE '%MAY%' THEN '05'
WHEN @Period LIKE '%JUN%' THEN '06'
WHEN @Period LIKE '%JUL%' THEN '07'
WHEN @Period LIKE '%AUG%' THEN '08'
WHEN @Period LIKE '%SEP%' THEN '09'
WHEN @Period LIKE '%OCT%' THEN '10'
WHEN @Period LIKE '%NOV%' THEN '11'
WHEN @Period LIKE '%DEC%' THEN '12'
END
IF ISNUMERIC(@Year + @Month) = 1
SET @MonthID = CAST(@Year + @Month AS INT);
ELSE
SET @MonthID = NULL
RETURN @MonthID
END;
Query
SELECT dbo.GetMonthID([Time Period NAME]) FROM dbo.TableName
SSIS Expression
Following expression can be used to return Month number in YYYYMM format for a month name in "MON-YYYY", "MON YYYY", "MON/YYYY" Formats.
(DT_I4)(SUBSTRING(Month,4,2) + RIGHT(Month,2) +
( FINDSTRING(Month,"JAN",1) > 0 ? "01" :
FINDSTRING(Month,"FEB",1) > 0 ? "02" :
FINDSTRING(Month,"MAR",1) > 0 ? "03" :
FINDSTRING(Month,"APR",1) > 0 ? "04" :
FINDSTRING(Month,"MAY",1) > 0 ? "05" :
FINDSTRING(Month,"JUN",1) > 0 ? "06" :
FINDSTRING(Month,"JUL",1) > 0 ? "07" :
FINDSTRING(Month,"AUG",1) > 0 ? "08" :
FINDSTRING(Month,"SEP",1) > 0 ? "09" :
FINDSTRING(Month,"OCT",1) > 0 ? "10" :
FINDSTRING(Month,"NOV",1) > 0 ? "11" :
FINDSTRING(Month,"DEC",1) > 0 ? "12" :
"00"
)
)
Labels:
MSSQLServer,
SSIS
Monday, March 20, 2017
Use SQL to read XML data - Example
There are a few ways to read XML data using SQL and following example demonstrate how to read a simple XML file in tabular format.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | DECLARE @MyXML XML -- SET @MyXML = (SELECT CONVERT(xml, BulkColumn, 2) xml -- FROM OPENROWSET(Bulk 'C:\sample.XML', SINGLE_BLOB) [rowsetresults]) SET @MyXML = ' <Order xmlns="XMLSchema"> <Database> <Tables> <Table Name="Product"> <Files> <File FileName="Product.txt" NumberOfRows="17" RowDelimiter="{LF}" /> </Files> <Columns> <Column Name="ATC_1_CD" Length="30" DataType="nvarchar" /> <Column Name="IMS_PROD_SHRT_NM" Length="80" DataType="nvarchar" /> <Column Name="PACK_DESC" Length="80" DataType="nvarchar" /> </Columns> </Table> <Table Name="Corporation"> <Files> <File FileName="Corporation.txt" NumberOfRows="5" RowDelimiter="{LF}" /> </Files> <Columns> <Column Name="CORP_ID" Length="30" DataType="nvarchar" IsPrimaryKey="true" /> <Column Name="CORP_SHRT_NM" Length="80" DataType="nvarchar" /> </Columns> </Table> </Tables> </Database> </Order> ' ;WITH XMLNAMESPACES (DEFAULT 'XMLSchema') -- Define Default XML schema (i.e. xmlns ) SELECT FileName = files.x.value('@FileName','varchar(200)'), TableName = tabs.x.value('@Name','varchar(200)'), ColumnName = cols.x.value('@Name','varchar(200)'), ColumnDataType = cols.x.value('@DataType','varchar(200)'), ColumnLength = cols.x.value('@Length','varchar(200)') FROM @MyXML.nodes('/Order[1]/Database[1]/Tables[1]/Table') tabs(x) CROSS APPLY tabs.x.nodes('Columns[1]/Column') cols(x) -- Loop through Columns level CROSS APPLY tabs.x.nodes('Files[1]/File') files(x) -- Loop through Files Level |
Result
Reference
Labels:
MSSQLServer
Monday, March 7, 2016
Dynamic Management Views for SSAS
Analysis Services (SSAS) Dynamic Management Views (DMV) are query structures that expose information about local server operations and server health. The query structure is an interface to schema row sets that return metadata and monitoring information about an Analysis Services instance.
SSAS DMVs can be used to monitor the server resources (e.g. connections, memory, CPU, users, aggregation etc. ) and find out the structure of SSAS databases (e.g. hierarchy , dimensions, hierarchies, measures, measure groups, data sources, cubes, actions and KPIs etc.) .
SQL statements can be used to query the row sets, but have following limitation in SQL 2008 version.
SSAS DMVs can be used to monitor the server resources (e.g. connections, memory, CPU, users, aggregation etc. ) and find out the structure of SSAS databases (e.g. hierarchy , dimensions, hierarchies, measures, measure groups, data sources, cubes, actions and KPIs etc.) .
SQL statements can be used to query the row sets, but have following limitation in SQL 2008 version.
- SELECT DISTINCT does not return DISTINCT values
- ORDER BY clause accepts just one field to order by. Only one order expression is allowed for TOP Expression at line 1, column 1″
- COUNT, SUM does not work
- ORDER BY <number> does not ORDER, but no error
- JOINS appear not to work
- LIKE does not work
- String functions like LEFT do not work
Usefull DMVs
SELECT * FROM $system.DBSCHEMA_CATALOGS -- list of the Analysis Services databases on the current connection.
SELECT * FROM $system.DBSCHEMA_COLUMNS
SELECT * FROM $system.DBSCHEMA_PROVIDER_TYPES
SELECT * FROM $system.DBSCHEMA_TABLES
SELECT * FROM $system.DISCOVER_SCHEMA_ROWSETS
SELECT * FROM $system.DISCOVER_COMMANDS
SELECT * FROM $system.DISCOVER_CONNECTIONS
SELECT * FROM $system.DISCOVER_JOBS
SELECT * FROM $system.DISCOVER_LOCKS
SELECT * FROM $system.DISCOVER_MEMORYUSAGE ORDER BY MemoryUsed DESC
SELECT * FROM $system.DISCOVER_OBJECT_ACTIVITY
SELECT * FROM $system.DISCOVER_OBJECT_MEMORY_USAGE
ORDER BY OBJECT_MEMORY_NONSHRINKABLE DESC
SELECT * FROM $system.DISCOVER_SESSIONS
SELECT * FROM $system.MDSCHEMA_CUBES
SELECT * FROM $system.MDSCHEMA_DIMENSIONS
SELECT * FROM $system.MDSCHEMA_FUNCTIONS
SELECT * FROM $system.MDSCHEMA_HIERARCHIES
SELECT * FROM $system.MDSCHEMA_INPUT_DATASOURCES
SELECT * FROM $system.MDSCHEMA_KPIS
SELECT * FROM $system.MDSCHEMA_LEVELS
SELECT * FROM $system.MDSCHEMA_MEASUREGROUP_DIMENSIONS
-- WHERE MEASUREGROUP_NAME = 'NSA NZ Sales'
SELECT * FROM $system.MDSCHEMA_MEASUREGROUPS
SELECT * FROM $system.MDSCHEMA_MEASURES
SELECT * FROM $system.MDSCHEMA_MEMBERS
SELECT * FROM $system.MDSCHEMA_PROPERTIES
SELECT * FROM $system.MDSCHEMA_SETS
Using DMV Queries to get Cube Metadata.
Referenceshttps://msdn.microsoft.com/en-us/library/hh230820(v=sql.110).aspxhttps://dwbi1.wordpress.com/2010/01/01/ssas-dmv-dynamic-management-view/
http://blogs.microsoft.co.il/yanivmor/2010/01/27/dmvs-for-analysis-services/
https://bennyaustin.wordpress.com/2011/03/01/ssas-dmv-queries-cube-metadata/
Referenceshttps://msdn.microsoft.com/en-us/library/hh230820(v=sql.110).aspxhttps://dwbi1.wordpress.com/2010/01/01/ssas-dmv-dynamic-management-view/
http://blogs.microsoft.co.il/yanivmor/2010/01/27/dmvs-for-analysis-services/
https://bennyaustin.wordpress.com/2011/03/01/ssas-dmv-queries-cube-metadata/
Labels:
MDX,
Microsoft SSAS,
XMLA
Thursday, February 18, 2016
PowerShell - Get System information
Get PowerShell Information
$Host
Get Computer System Information
1 2 3 4 5 | # Useful Computer System Info. Get-WmiObject -Class Win32_ComputerSystem -ComputerName . | ` SELECT PSComputerName, BootupState, Status, Domain, UserName, Manufacturer, ` NumberOfLogicalProcessors, NumberOfProcessors, SystemType, ` @{n="Memory(MB)";e={[math]::ROUND($_.TotalPhysicalMemory / ( 1024 * 1024) -as [Float],2)}} #,* |
Get Operating System Information
1 2 3 4 5 6 7 8 9 10 11 12 | # Useful Operating System Info. Get-WmiObject -Class Win32_OperatingSystem -ComputerName DI21 | ` Select-Object -Property PSComputerName, Caption, CodeSet, CountryCode, CreationClassName, CSCreationClassName, CSDVersion, CurrentTimeZone, EncryptionLevel, ForegroundApplicationBoost, InstallDate, LastBootUpTime, LocalDateTime, Locale, Manufacturer, MaxNumberOfProcesses, MaxProcessMemorySize, MUILanguages, NumberOfLicensedUsers, NumberOfProcesses, NumberOfUsers, OperatingSystemSKU, OSArchitecture, OSLanguage, OSProductSuite, OSType, ProductType, RegisteredUser, SerialNumber, ServicePackMajorVersion, ServicePackMinorVersion, SizeStoredInPagingFiles, SuiteMask, SystemDirectory, Version, PSStatus, BuildNumber, BuildType, @{n="TotalVirtualMemorySize(MB)";e={[math]::ROUND( $_.TotalVirtualMemorySize / (1024*1024) -as [Float], 2)}} |
Get Processes' Information
1 2 3 4 5 6 7 8 9 | Clear-Host Get-Process -ComputerName . | SELECT ProcessName, ` @{n="WS(MB)";e={[math]::ROUND($_.WS / ( 1024 * 1024) -as [Float],0)}}, ` # WS, @{n="VM(MB)";e={[math]::ROUND($_.VM / ( 1024 * 1024) -as [Float],0)}}, ` # VM, @{n="PM(MB)";e={[math]::ROUND($_.PM / ( 1024 * 1024) -as [Float],0)}}, ` # PM, @{n="CPU";e={[math]::ROUND($_.CPU -as [Float],0)}}, ` # CPU, Id, Path | ` Sort-Object "WS(MB)" -Descending | ` Format-Table -AutoSize |
Get Logical Disk Information
1 2 3 4 5 6 | # Useful logical Disk Info. Get-WmiObject -Class Win32_LogicalDisk -ComputerName DI21 | Select DeviceID, VolumeName, DriveType, ProviderName,FileSystem, Compressed,MediaTYpe, @{n="FreeSpaceGB";e={[math]::ROUND($_.FreeSpace / (1024*1024*1024) -as [Float],2)}}, @{n="SizeGB";e={[math]::ROUND($_.Size / (1024*1024*1024) -as [Float],2)}}, CreationClassName, VolumeDirty, Description, FilesystemSize, ErrorDescription |
Get Installed Program Information
Get-WmiObject -Class Win32_Product -Computer . | ` sort Name | Format-Table Name, Version, Vendor
Get other system Information
Get-WmiObject -Class Win32_LogonSession -ComputerName DI21 Get-WmiObject -Class Win32_LocalTime -ComputerName . Get-WmiObject -Class Win32_Service -ComputerName . | ` Format-Table -Property Status,Name,DisplayName -AutoSize -Wrap Get-CimInstance Win32_Service Get-CimInstance Win32_Share Get-CimInstance Win32_ShareToDirectory Get-CimInstance Win32_StartupCommand Get-CimInstance Win32_SystemAccount | SELECT Caption, Name, SID, Status| Format-Table -AutoSize -Wrap Get-CimInstance Win32_SystemDevices Get-CimInstance Win32_SystemLoadOrderGroups Get-CimInstance Win32_SystemNetworkConnections Get-CimInstance Win32_SystemOperatingSystem Get-CimInstance Win32_SystemPartitions Get-CimInstance Win32_SystemServices Get-CimInstance Win32_SystemTimeZone Get-CimInstance Win32_SystemUsers Get-CimInstance Win32_UserAccount
Referance : https://msdn.microsoft.com/en-us/library/dn792258(v=vs.85).aspx
Labels:
PowerShell
Wednesday, January 20, 2016
MDX - Parsing a value from one dim to another
Following query pass year 2016 value from [Period] dimension to [Exchange Rate] Dim.
WITH
member YearX as
NONEMPTY(
[Period].[Operational Year - Semester - Quarter - Month].[Year].&[2016] ,
[Measures].[Targets - EdoxabanNetSalesTargets]).item(0).Properties("Key")
SELECT {[Measures].[Exchange Rate]}
on 0, non empty
(
[Exchange Rate].[From Currency].[From Currency]
, [Exchange Rate].[To Currency].[To Currency]
)
on 1 from [XXXX Cube]
where STRTOMEMBER( "[Exchange Rate].[Operational Year Key].[Operational Year Key].&[" +
YearX
+ "]")
Labels:
MDX,
Microsoft SSAS
Wednesday, December 9, 2015
Powershell, Infile search and file copy between the servers in same domain
Find a keyword within multiple files in a folder.
$PATH = "D:\Veeva Activity\WE_00DA0000000Ci0mMAC_123\"
$FILES = Get-ChildItem -Path $path # -Name user.csv*
Foreach ($FILE IN $FILES )
{
Get-Content $PATH$FILE -First 1 | Where-Object { $_ -like '*lm_Presentation_Version_vod*' }
$FILE
}
File copy between the servers in the same domain
$SourcePath = "\\Server1\Data Input Area"
$DestinationPath = "\\Server2\Data Input Area"
$Folders = Get-ChildItem -Path $SourcePath -Name Aver*
FOREACH ($Folder in $Folders)
{
#$DestinationPath + "\"+ $Folder
#Get-ChildItem -Path $SourcePath\$Folder | Where-Object{!($_.PSIsContainer)}
Copy -Path $SourcePath\$Folder\* -Destination $DestinationPath\$Folder | Where-Object{!($_.PSIsContainer)} # Exclude Folders
}
$PATH = "D:\Veeva Activity\WE_00DA0000000Ci0mMAC_123\"
$FILES = Get-ChildItem -Path $path # -Name user.csv*
Foreach ($FILE IN $FILES )
{
Get-Content $PATH$FILE -First 1 | Where-Object { $_ -like '*lm_Presentation_Version_vod*' }
$FILE
}
File copy between the servers in the same domain
$SourcePath = "\\Server1\Data Input Area"
$DestinationPath = "\\Server2\Data Input Area"
$Folders = Get-ChildItem -Path $SourcePath -Name Aver*
FOREACH ($Folder in $Folders)
{
#$DestinationPath + "\"+ $Folder
#Get-ChildItem -Path $SourcePath\$Folder | Where-Object{!($_.PSIsContainer)}
Copy -Path $SourcePath\$Folder\* -Destination $DestinationPath\$Folder | Where-Object{!($_.PSIsContainer)} # Exclude Folders
}
Labels:
PowerShell
Monday, October 19, 2015
Identify and disconnect / log off remote RDP sessions
Run QWINSTA to extract the RDP session information
- QWINSTA /SERVER:servername
If the session exists, read the username and session ID.
- To disconnect user
- To log-off user / kill the session
Ref : http://discoposse.com/2012/10/20/finding-rdp-sessions-on-servers-using-powershell/
Labels:
PowerShell
Subscribe to:
Posts (Atom)