Kann keine SQL-Datenbanken wie Verzeichnisse mit PowerShell auflisten
Stellen Sie sicher, dass Sie die SQL Server-Snap-Ins (Add-PSSnapin) laden, um die entsprechenden Befehle usw. zu unterstützen. Nachfolgend finden Sie Beispiele für die Syntax für entweder die Standardinstanz oder die benannte Instanz von SQL Server, und wo diese Details in den SQL Server eingefügt werden sollen PS-Befehle.
Wichtiger Hinweis: Die serverr2\serverr2
PS-Logik ist möglicherweise falsch. Dies kann die Standardinstanz sein, in der Sie DIR SQLSERVER:\\SQL\Serverr2\Databases
nur verwendet werden. Spiegeln Sie diesen Teil so, dass er den Typ angibt, den Sie von SSMS (möglicherweise von Ihrer SQL Server-Instanz) aus mit dem Datenbankmodul verbinden.
Also zwei Möglichkeiten, die Sie anhand Ihres Fehlers versuchen können ( siehe Beispiele, Add-PSSnapin *sql*
wenn nötig, zuerst ):
- Standardinstanz:
DIR SQLSERVER:\\SQL\Serverr2\Databases | Select Name
- Benannte Instanz:
DIR SQLSERVER:\\SQL\Serverr2\Serverr2\Databases | Select Name
Beispiel einer benannten Instanz von SQL Server
Add-PSSnapin *sql* DIR SQLSERVER:\\SQL\<SQLServerName>\<InstanceName>\Databases | Select Name
Beispiel für eine SQL Server-Standardinstanz
Add-PSSnapin *sql* DIR SQLSERVER:\\SQL\<SQLServerName>\Databases | Select Name
Weiterführende Literatur und Ressourcen
Unterschied zwischen der Standardinstanz und der benannten Instanz in SQL Server
Was ist der Unterschied zwischen der Standardinstanz und der benannten Instanz in SQL Server?
Eine SQL Server-Installation wird als Instanz bezeichnet. Bis einschließlich SQL Server 7.0 war nur eine Installation von SQL Server auf einem Server möglich. Diese Einschränkung entsprach jedoch nicht den von den Kunden benötigten Bereitstellungsszenarien, einschließlich Hochverfügbarkeit und Konsolidierung.
Mit der Veröffentlichung von SQL Server 2000 waren mehrere Installationen von SQL Server auf einem einzelnen Server möglich und wurden als SQL Server-Instanzen bezeichnet. SQL Server 2008 setzt dieses Modell und mit wenigen Änderungen fort. Eine Standardinstanz hat im Wesentlichen das gleiche Profil, das SQL Server-Installationen in der Vergangenheit hatten. Sie installieren SQL Server und stellen dann eine Verbindung unter Verwendung des Computernamens des Servers her. Ihr Windows Server kann nur einen Computernamen haben. Sie können ihn daher nur verwenden, um eine Verbindung zu einer SQL Server-Instanz herzustellen. Dies wird als Standardinstanz bezeichnet.
Wenn Sie zusätzliche Instanzen von SQL Server installieren, werden diese als benannte Instanzen bezeichnet. Sie stellen eine Verbindung zu ihnen unter Verwendung des Formats her. Wenn Sie beispielsweise einen Server mit dem Namen PLUTO haben und eine benannte Instanz mit dem Namen SQL1 installieren, stellen Sie über PLUTOSQL1 eine Verbindung zu dieser Instanz her. Wenn Sie eine andere benannte Instanz namens SQL2 installiert haben, stellen Sie eine Verbindung mit PLUTO SQL2 her. Wenn Sie eine Standardinstanz installiert haben, stellen Sie eine Verbindung mit PLUTO her.
Jede Instanz ist völlig unabhängig von jeder anderen Instanz und verfügt über eigene Services, Datenbanken und Konfigurationseinstellungen. Alle Komponenten einer einzelnen Instanz werden gemeinsam verwaltet, und Service Packs und Patches werden auf alle Komponenten einer Instanz angewendet.
Während des Installationsvorgangs müssen Sie eine eindeutige Instanz-ID angeben, mit der die Verzeichnisstruktur, die Registrierungsstruktur und die Dienstnamen für diese Instanz definiert werden. Dies ist neu in SQL Server 2008. Standardmäßig wird der von Ihnen angegebene Instanzname als Instanz-ID verwendet. Für die Standardinstanz wird MSSQLSERVER als Instanz-ID verwendet.
Wie in Mr_LinDowsMac . . .
Ich Umgehung wie folgt aus :
$databases = (DIR SQLSERVER:\\SQL\serverr2 | SELECT Databases -ExpandProperty Databases | SELECT Name,Owner,Urn)
. Da ich WHERE nicht verwenden kann, verwende ich einfach $ database = $ database -match "SERVERR2 \ SERVERR2", um auf diese bestimmte Instanz zu filtern. - Mr_LinDowsMac