PowerShellでディレクトリのようなSQLデータベースを一覧表示できない


3

データベースをPowerShellで一覧表示しようとしています。 Inkoke-Sqcmdコマンドレットを使用できますが、このコマンドでデータベースを一覧表示することはできません。

dir SQLSERVER:\SQL\myserver\sqlinstance\Databases

Get-ChildItem : No se encuentra la ruta de acceso 'SQLSERVER:\SQL\serverr2\serverr2\Databases' porque no existe.
En línea: 1 Carácter: 4
+ dir <<<<  SQLSERVER:\SQL\serverr2\serverr2\Databases
    + CategoryInfo          : ObjectNotFound: (SQLSERVER:\SQL\serverr2\serverr2\Databases:String) [Get-ChildItem], ItemNo
   tFoundException
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.GetChildItemCommand

私はすでにこれを私のローカルコンピュータでテストしましたが、私のサーバーでは失敗しました。 インストールに足りないものがありますか? Windows Server 2008 R2、SQL Server 2008 R2、PowerShell 2.0があります。

編集する Get-Hostコマンドレットには、次の情報が表示されます。

Name             : ConsoleHost
Version          : 2.0
InstanceId       : c1976472-19c0-439e-a4f6-debe59a18616
UI               : System.Management.Automation.Internal.Host.InternalHostUserInterface
CurrentCulture   : es-MX
CurrentUICulture : es-ES
PrivateData      : Microsoft.PowerShell.ConsoleHost+ConsoleColorProxy
IsRunspacePushed : False
Runspace         : System.Management.Automation.Runspaces.LocalRunspace

私のSQL Serverのインスタンスは、Microsoft SQL Server 2008(SP1) - 10.0.2531.0(X64)であり、思ったとおりSQL Server 2008 R2ではないこともわかりました。

回答:


1

PowerShellでディレクトリのようなSQLデータベースを一覧表示できない

適切なコマンドなどをサポートするために、SQL Serverスナップイン(Add-PSSnapin)を必ずロードしてください。 デフォルトインスタンス または 名前付きインスタンス SQL Serverの説明、およびPSコマンドのどこにその詳細をプラグインするか。

重要な注意点: serverr2\serverr2 あなたのPSのロジックでは間違っているかもしれません、それはあなたが使用していたデフォルトのインスタンスかもしれません DIR SQLSERVER:\\SQL\Serverr2\Databases のみ。この部分をミラーリングして、SSMSからデータベースエンジンへの接続方法(おそらくSQL Serverインスタンス)を一致させます。


だからあなたのエラーに基づいて試す二つの可能性( 以下の例を参照してください Add-PSSnapin *sql* 最初に必要な場合でも ):

  • デフォルトのインスタンス: DIR SQLSERVER:\\SQL\Serverr2\Databases | Select Name
  • 名前付きインスタンス: DIR SQLSERVER:\\SQL\Serverr2\Serverr2\Databases | Select Name

SQL Serverの名前付きインスタンスの例

Add-PSSnapin *sql*
DIR SQLSERVER:\\SQL\<SQLServerName>\<InstanceName>\Databases | Select Name

SQL Serverのデフォルトインスタンスの例

Add-PSSnapin *sql*
DIR SQLSERVER:\\SQL\<SQLServerName>\Databases | Select Name

さらに読むこととリソース


SQL Serverの既定のインスタンスと名前付きインスタンスの違い

SQLのDefaultインスタンスとNamedインスタンスの違いは何ですか   サーバ?

SQL Serverのインストールはインスタンスと呼ばれます。 〜まで   SQL Server 7.0を含む、SQL Serverの1つのインストールのみ   サーバーでは可能ですが、その制限は、   顧客が必要とする導入シナリオ   高可用性と統合

SQL Server 2000のリリースに伴い、SQLの複数インストール   サーバーは単一サーバー上で可能であり、SQL Serverとして知られていました   インスタンス。 SQL Server 2008は、このモデルを継続し、ごくわずかな   変更します。既定のインスタンスは、SQL Serverとほぼ同じプロファイルを持ちます。   設備は過去にありました。 SQL Serverをインストールしてから   サーバーのコンピューター名を使用して接続します。あなたのWindowsサーバはできます   コンピュータ名は1つだけなので、1つのコンピュータ名にしか接続できません   SQL Serverインスタンスこれをデフォルトインスタンスと呼びます。

SQL Serverの追加のインスタンスをインストールすると、これらは参照されます。   名前付きインスタンスとして。あなたは彼らを使用してそれらに接続します    フォーマット。たとえば、サーバーがある場合   PLUTOという名前でSQL1という名前のインスタンスをインストールすると、   PLUTOSQL1を使用してそのインスタンスに接続します。他にインストールした場合   SQL2という名前のインスタンスは、PLUTO SQL2を使用して接続します。もし、あんたが   デフォルトのインスタンスがインストールされている場合は、PLUTOを使用して接続します。

各インスタンスは他のインスタンスから完全に独立しており、   独自の一連のサービス、データベース、および構成設定。すべて   単一インスタンスのコンポーネントはまとめて管理され、サービス   パックとパッチは、インスタンス内のすべてのコンポーネントに適用されます。

インストールプロセス中に、一意のインスタンスを指定する必要があります。   ディレクトリ構造、レジストリを定義するために使用されるID   そのインスタンスの構造、およびサービス名。これはSQLの新機能です。   Server2008。デフォルトでは、指定したインスタンス名が使用されます。   インスタンスIDとして。既定のインスタンスでは、MSSQLSERVERが次のように使用されます。   インスタンスID

に従って Mr_LinDowsMac 。 。 。

私はこのように対処します: $databases = (DIR SQLSERVER:\\SQL\serverr2 | SELECT Databases -ExpandProperty Databases | SELECT Name,Owner,Urn)。   WHEREは使えないので、$ databases = $ databases -matchを使うだけです。   "SERVERR2 \ SERVERR2"はその特定のインスタンスにフィルタをかけます。 - Mr_LinDowsMac


@Mr_LinDowsMac私が見ているものからおそらく1〜3個の潜在的な問題(潜在的に1、2、または3個すべて)があります。 1. ロードする Add-PSSnapin 最初に実行してから DIR コマンド 2. あなたが持っていることを確認してください [\\] バックスラッシュ このコマンドのこの部分で DIR SQLSERVER:\\SQL 3. 正しい方向を指していることを確認する必要があります。 デフォルト または 命名 構成内のSQL Serverのインスタンス。
Pimp Juice IT

DIR SQLSERVER:\\ SQL \ server \ namedinstance \ロール、データベース、エンドポイント、ロールなどの一覧が表示されます。
Mr_LinDowsMac

最初からやりましたが、実際の問題はうまくいかないということです。しかし、私はその部分を逃しました Add-PSSnapin。それが関連しているのかどうかわからないし、\ Databasesがなくても動作するので、実行しませんでした。
Mr_LinDowsMac

いいえ、申し訳ありませんが、実際には機能しません。インストールされているインスタンスを一覧表示するだけです。しかし、私はまだデータベースをリストすることができません。
Mr_LinDowsMac

SQLCMD -Lは私のインスタンスを大文字でリストしますが、とにかくうまくいきません。今、私はこれでこれを回避しようとしています: DIR SQLSERVER:\\SQL\serverr2 | SELECT Databases -ExpandProperty Databases | SELECT Name,Owner,Urnしかし、それは私がしたくない別のインスタンスから私にデータベースをリストしています。フィルタできません
Mr_LinDowsMac
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.