Thursday, July 7, 2016

Preventing Screen Saver with PowerShell

Here's a short bit of PowerShell you can have run when you log in to a machine (or manually)...
Function Prevent-ScreenSaver
{
    [CmdletBinding()]
    Param(
        [int]$IntervalSeconds = 60,
        [string]$KeyToSend = "{F15}"
    )
    $Shell = New-Object -COM “WScript.Shell”
    While ($True)
    {
        Write-Verbose "Sending key '$KeyToSend'..."
        $Shell.SendKeys($KeyToSend)
     
        Write-Verbose "`t...waiting $IntervalSeconds seconds..."
     
        Start-Sleep $IntervalSeconds
    }
}

Save that to a file, then have it start on login (via shortcut in Startup folder)...





Inspired by: https://dmitrysotnikov.wordpress.com/2009/06/29/prevent-desktop-lock-or-screensaver-with-powershell/

There's an alternative little utility, called Screen Slayer. As of 7/7/2016, links and info can be found here: http://daniel-lange.com/archives/34-Disabling-a-group-policyd-screensaver-on-Windows.html


Wednesday, July 6, 2016

SharePoint URL De-muck Utility

SharePoint links/urls for pages and such, are ridiculously unfriendly for human consumption, or even putting in emails and documents.


I threw together a quick utility over at jsfiddle.net where you can paste a URL, and it will attempt to make it simpler, getting rid of gunk and muck as much as possible, while still staying functional.

https://jsfiddle.net/mrstevec/jux51s0b/


Friday, July 1, 2016

Shrink SQL DBs with PowerShell

Here's a little nugget that will iterate over DBs larger than specified size, and shrink them.

$shrinkDBsLargerThan = 50
[System.Reflection.Assembly]::LoadWithPartialName('Microsoft.SqlServer.SMO') | Out-Null
$sqlsrv = New-Object Microsoft.SqlServer.Management.Smo.Server("(local)")
$db = New-Object Microsoft.SqlServer.Management.Smo.Database
$sqlsrv.Databases | ? Size -GT $shrinkDBsLargerThan | % {
    Write-Host "DB: $($_.Name)"
    Write-Host "`tInitial Size(MB): $($_.Size)"
    $_.Shrink(20, [Microsoft.SqlServer.Management.Smo.ShrinkMethod]'Default')
    $_.Refresh()
    Write-Host "`t Shrunk Size(MB): $($_.Size)"
}

Monday, June 27, 2016

T-SQL: Summary of all Databases on server

/* ALL DATABASES GENERAL INFO */

DECLARE @helpdb TABLE (dbname varchar(500), dbsize varchar(100), dbowner varchar(500), dbid1 int, dbcreated varchar(50), dbstatus varchar(1000), dbcompatibility_level int)
INSERT INTO @helpdb (dbname, dbsize, dbowner, dbid1, dbcreated, dbstatus, dbcompatibility_level) 
EXEC sp_helpdb
-- SELECT * FROM @helpdb

SELECT  @@SERVERNAME AS Server 
,d.dbname AS DBName 
,DATABASEPROPERTYEX(d.dbname,'status') as DBStatus
,DATABASEPROPERTYEX(d.dbname,'Recovery') as 'DBRecovery'
,d.dbowner as DBOwner
,d.dbcreated as create_date1
,CONVERT(smalldatetime,sdb.create_date) as create_date2
,sdb.create_date as create_date3
,(mdf.size + ldf.size) / 128 as DBTotal_MB
,mdf.size / 128 AS mdb_MB
,ldf.size / 128 AS ldf_MB
,mdf.name+'.mdf' as DBFileName
,ldf.name+'.ldf' AS LogFileName
,mdf.physical_name AS DBFileFullName
,ldf.physical_name AS LogFileFullName
,d.dbstatus AS ExtendedStatus
FROM @helpdb d
JOIN sys.master_files mdf 
ON d.dbid1 = mdf.database_id and mdf.[type] = 0
JOIN sys.master_files ldf 
ON d.dbid1 = ldf.database_id and ldf.[type] = 1
JOIN sys.databases sdb
ON d.dbid1 = sdb.database_id
ORDER BY d.dbname;

T-SQL: Summary of all Stored Procs in DB

SELECT  @@Servername AS ServerName ,
        DB_NAME() AS DB_Name ,
        o.name AS SprocName ,
        o.Create_date ,
        sm.[definition] AS 'Stored Procedure script'
FROM    sys.objects o
        INNER JOIN sys.sql_modules sm ON o.object_id = sm.object_id
WHERE   o.[type] = 'P' -- Stored Procedures
        -- AND sm.[definition] LIKE '%insert%'
        -- AND sm.[definition] LIKE '%update%'
        -- AND sm.[definition] LIKE '%delete%'
        -- AND sm.[definition] LIKE '%tablename%'

ORDER BY o.name;

T-SQL: Summary of all Functions in DB

-- Function details
SELECT  @@Servername AS ServerName ,
        DB_NAME() AS DB_Name ,
        o.name AS 'FunctionName' ,
        o.[type] ,
        o.create_date ,
        sm.[DEFINITION] AS 'Function script'
FROM    sys.objects o
        INNER JOIN sys.sql_modules sm ON o.object_id = sm.OBJECT_ID
WHERE   o.[Type] = 'FN' -- Function

ORDER BY o.NAME;

T-SQL: Summary of all Columns in DB

Verified in SQL 2008 R2:

SELECT  @@Servername AS Server ,
        DB_NAME() AS DBName ,
        isc.Table_Name AS TableName ,
        isc.Table_Schema AS SchemaName ,
        Ordinal_Position AS Ord ,
        Column_Name ,
        Data_Type ,
        Numeric_Precision AS Prec ,
        Numeric_Scale AS Scale ,
        Character_Maximum_Length AS LEN , -- -1 means MAX like Varchar(MAX)
        Is_Nullable ,
        Column_Default ,
        Table_Type
        --,CASE WHEN ISNULL(col.Computed_Column,'0') = '0' THEN '0' ELSE '1' END as IsComputed
        ,col.definition as ComputedDefinition
FROM    INFORMATION_SCHEMA.COLUMNS isc
        INNER JOIN information_schema.tables ist ON isc.table_name = ist.table_name
LEFT OUTER JOIN (
SELECT  t.Name AS TableName ,
c.Column_ID AS Ord ,
c.Name AS Computed_Column
,cc.definition
FROM    sys.Tables t
INNER JOIN sys.Columns c ON t.object_id = c.object_id
INNER JOIN sys.computed_columns cc ON t.object_id = cc.object_id AND c.column_id = cc.column_id
--WHERE   c.is_computed = 1
--ORDER BY TableName, Ord
) col on col.TableName = isc.TABLE_NAME AND col.Computed_Column = COLUMN_NAME
ORDER BY DBName,TABLE_TYPE,TableName,SchemaName
,Ordinal_position