ライブラリを取得する為に、nuget を使用します。 少し参照する dll が多いですが、VisualStudio で実行テストした後 PowerShell に移植しています
$code = @"
using System;
using System.Text;
using System.IO;
using System.Collections.Generic;
using System.Collections.Specialized;
using Microsoft.SqlServer.Management.Common;
using Microsoft.SqlServer.Management.Smo;
public class MyClass {
public static void create_sql() {
UTF8Encoding UTF8N_Enc = new UTF8Encoding();
// false は上書き
StreamWriter WriteFile = new StreamWriter("sqlexpress.sql", false, UTF8N_Enc);
// サーバー
Server srv;
// インスタンス
srv = new Server();
// サーバーインスタンスの情報
srv.ConnectionContext.AutoDisconnectMode = AutoDisconnectMode.NoAutoDisconnect;
srv.ConnectionContext.LoginSecure = false;
srv.ConnectionContext.Login = "sa";
srv.ConnectionContext.Password = "";
// 接続
srv.ConnectionContext.Connect();
// バージョンの表示
Console.WriteLine(srv.Information.Version);
// 参考
Scripter scripter = new Scripter(srv);
Database myDb = srv.Databases["lightbox"];
foreach (Table myTable in myDb.Tables)
{
StringCollection tableScripts = myTable.Script();
foreach (string script in tableScripts)
{
WriteFile.WriteLine(script);
}
}
WriteFile.Close();
WriteFile.Dispose();
srv.ConnectionContext.Disconnect();
}
}
"@
Add-Type -Path ("C:\user\lightbox\nuget\Microsoft.SqlServer.SqlManagementObjects.140.17283.0\lib\net40\Microsoft.SqlServer.ConnectionInfo.dll","C:\user\lightbox\nuget\Microsoft.SqlServer.SqlManagementObjects.140.17283.0\lib\net40\Microsoft.SqlServer.Smo.dll","C:\user\lightbox\nuget\Microsoft.SqlServer.SqlManagementObjects.140.17283.0\lib\net40\Microsoft.SqlServer.Management.Sdk.Sfc.dll","C:\user\lightbox\nuget\Microsoft.SqlServer.SqlManagementObjects.140.17283.0\lib\net40\Microsoft.SqlServer.SmoExtended.dll","C:\user\lightbox\nuget\Microsoft.SqlServer.SqlManagementObjects.140.17283.0\lib\net40\Microsoft.SqlServer.SqlEnum.dll")
Add-Type -Language CSharp -TypeDefinition $code -ReferencedAssemblies ("C:\user\lightbox\nuget\Microsoft.SqlServer.SqlManagementObjects.140.17283.0\lib\net40\Microsoft.SqlServer.ConnectionInfo.dll","C:\user\lightbox\nuget\Microsoft.SqlServer.SqlManagementObjects.140.17283.0\lib\net40\Microsoft.SqlServer.Smo.dll","C:\user\lightbox\nuget\Microsoft.SqlServer.SqlManagementObjects.140.17283.0\lib\net40\Microsoft.SqlServer.Management.Sdk.Sfc.dll","C:\user\lightbox\nuget\Microsoft.SqlServer.SqlManagementObjects.140.17283.0\lib\net40\Microsoft.SqlServer.SmoExtended.dll","C:\user\lightbox\nuget\Microsoft.SqlServer.SqlManagementObjects.140.17283.0\lib\net40\Microsoft.SqlServer.SqlEnum.dll")
[MyClass]::create_sql()











プログラマの方であれば、以下の3例で何ができるかは想像が付くと思いますが、
PowerShell だけでもアプリケーションとなるので、手の届かないところは無い
といったお宝ではありますが、情報の確認は
まず、以下のページから create_help.ps1 を作って実行します。
そうすると日本語のテキストファイルができあがります
※ Wiindows7 でのUAC オフ
※ エキスパートモードで表示しています
アーカイブとカテゴリページはこのように簡単に設定できますが、タグページは HTML 設定を直接変更して、以下の『タグページでのみ表示される内容』の記述方法で設定する必要があります


















