2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

長いパスをドライブ化して手軽にアクセスできるようにする(SQL Serverのパスもいけます)

Posted at

かなり昔、DOSコマンドプロンプト全盛の時期にSubstコマンドという、任意のパスをドライブ化してくれる便利コマンドがありました。

今(2021年8月現在)、Substコマンドに相当する便利コマンドはあるのでしょうか?
ちなみに、DOSコマンドでSUBSTは今でも残っているのですが、DOSコマンドをPowerShellのスクリプトに入れるのはどうも嫌なので、PowerShellだけで完結したいと思います。

New-PSDrive コマンド

結論から先に言いますと、New-PSDriveコマンドを使うことで任意のパスをドライブ化できます。
以下の例ですと、My Documentの下にあるFolder1をZドライブとしてマップしてくれます。

New-PSDrive -Name Z -PSProvider FileSystem -Root '~\My Documents\Folder1'

使用しているドライブは次のように確認できます。

Get-PSDrive

TeamsのファイルをOneDrive同期していたりすると、同期したフォルダによくアクセスしますよね。フォルダをExplorerでピン留めするでもいいのですが、PowerShellだったらドライブに割り当てたほうが使い勝手がいいです。

自分の場合、こんな感じでOneDrive同期されたフォルダをドライブ化しています。GeneralはTeamsで言うところの「一般」チャネルです。なお、ドライブ名が1文字だったらZ:と入力するとドライブ切り替えできるのですが、ドライブ名が2文字以上の場合は cd TF: のようにcd コマンドが必要になるので注意です。

cd  '~\OneDrive - {企業名}\{Teamsチーム名}ドキュメント\General\'
New-PSDrive -Name TF -PSProvider FileSystem -Root $pwd
cd TD:

New-PSDrive コマンドには-Persistオプションというドライブ化を永続化してくれるオプションがあるのですが、これは共有フォルダをドライブ化するときにしか使用できません。残念。

SQLServerドライバでSQL Serverインスタンスをドライブ化する

SQLServer モジュールをインストールしておくと、SQL Serverの任意の階層をドライブ化できます。

まずは、モジュールのインストールと読み込み。

Install-Module -Name SQLServer
Import-Module -Name SQLServer

SQL Serverにアクセスするための認証情報の作成とドライブマップ。
ここでは、ローカルホスト上のSQL Serverにユーザsaと、そのパスワードを使ってSドライブにマップします。

$user = 'sa'
$pass = ConvertTo-SecureString -AsPlainText 'パスワード'
$crd = New-Object  System.Management.Automation.PSCredential -argumentlist $user,$pass
New-PSDrive -Name S -PSProvider SqlServer -Root SQLSERVER:SQL\localhost\Default -Credential $crd

Sドライブにアクセスして、データベースの一覧を出力してみます。

cd S:
ls Databases

Sドライブにアクセスして、最初のデータベースのテーブル一覧を、先に作ったドライブ上のテキストファイルに出力します。

cd S:
$db = ls Databases
$db[0].Tables > Z:\tables.txt

出力はこんな感じ。

Schema                   Name                        Row Count Storage Sp Index Spac Created
                                                                 ace Used     e Used
------                   ----                        --------- ---------- ---------- -------
dbo                      M_ユーザ                            6    8.00 KB    8.00 KB 2021/04/12 8:15
dbo                      M_商品                            110   16.00 KB   16.00 KB 2021/04/12 8:15
dbo                      M_店舗                              6    8.00 KB    8.00 KB 2021/04/12 8:15
dbo                      M_顧客                            196   24.00 KB   16.00 KB 2021/04/12 8:15
dbo                      T_注文履歴                      21560    1.66 MB   16.00 KB 2021/04/12 8:15
dbo                      __RefactorLog                       2    8.00 KB    8.00 KB 2021/04/26 3:06

DBにアクセスして、PowerShellで管理することもできて便利ですね。

参考

PowerShell で SQL Server への認証を管理する

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?