SQL Server PowerShell sağlayıcı kullanma
The SQL Server Windows PowerShell sağlayıcı exposes the hierarchy of SQL Server objects in paths similar to file system paths. Nesneyi bulmak için yolları kullanın ve sonra yöntemleri kullanın SQL Server Nesneler üzerinde eylemleri gerçekleştirmek için Yönetim nesne (SMO) modeller.
SQL Server sağlayıcı sıradüzeni
Ürünleri, veri veya nesne modeli, hiyerarşik olarak temsil edilebilir Windows PowerShell sağlayıcıları hiyerarşileri göstermek için kullanın.Hiyerarşi, Windows dosya sistemini kullanan için benzer sürücü ve yol yapısı'nı kullanarak yararlanılır.
Her Windows PowerShell sağlayıcı, bir veya daha fazla sürücü uygular.Her sürücü ilişkili nesnelerin bir sıradüzenin kök düğümdür.The SQL Server sağlayıcı implements a SQLSERVER: sürücü. SQLSERVER: Sürücü, dört birincil klasörler vardır. Her klasör ve alt klasörleri kullanılarak erişilen nesneler kümesi temsil eden bir SQL Server Yönetimi nesne modeli. Bir alt klasörde birincil bu klasörlerden biri ile başlayan bir yol üzerinde odaklanmış olduğunda, ilişkili bir nesne modelinden yöntemleri düğümü tarafından temsil edilen bir nesne üzerinde eylemler gerçekleştirmek için kullanabilirsiniz.Windows PowerShell klasörler tarafından uygulanan SQL Server 2008 Sağlayıcı aşağıdaki tabloda listelenmiştir.
Klasör |
SQL Server nesnesi modeli ad |
Nesneleri |
---|---|---|
SQLSERVER:\SQL |
Microsoft.SqlServer.Management.Smo Microsoft.SqlServer.Management.Smo.Agent Microsoft.SqlServer.Management.Smo.Broker Microsoft.SqlServer.Management.Smo.Mail |
Veritabanı nesneleri, tablolar, görünümler ve saklı yordamlar gibi. |
SQLSERVER:\SQLPolicy |
Microsoft.SqlServer.Management.Dmf Microsoft.SqlServer.Management.Facets |
ilke temelli yönetim nesneleri, ilkeleri ve kısıtlamalar. |
SQLSERVER:\SQLRegistration |
Microsoft.SqlServer.Management.RegisteredServers Microsoft.SqlServer.Management.Smo.RegSvrEnum |
Kayıtlı bir sunucu gibi nesneleri, sunucu gruplarını ve kayıtlı sunucular. |
SQLSERVER:\DataCollection |
Microsoft.SqlServer.Management.Collector |
Veri Toplayıcı gibi nesneleri, koleksiyon kümeleri ve yapılandırma depolar. |
Örneğin, SQLSERVER:\SQL klasörü SMO nesne modeli tarafından desteklenen herhangi bir nesneyi gösteren yollar başlatmak için kullanabilirsiniz.Baştaki SQLSERVER:\SQL yol SQLSERVER:\SQL\ parçasıdırBilgisayaradı\Instancename.Bir bilgisayar adı belirtmeniz gerekir.Localhost veya yerel bilgisayar için `(local`) belirtebilirsiniz.Her zaman bile varsayılan örnekleri için örnek adını belirtmeniz gerekir.Varsayılan örnekleri için DEFAULT belirtin.Örnek adından sonra düğümler arasında nesne sınıfları (gibi diğer Database veya View) ve nesne adları (örneğin, AdventureWorks). Nesne sınıfları şemalar gösterilir.Düğüm bir üst düzey nesne için bir şema, bir tablo veya Görünüm gibi belirttiğinizde biçimde bulunan nesne adını belirtmeniz gerekir SchemaName.ObjectName.
Bu, yol Satıcı tablosunda bir varsayılan örnek AdventureWorks veritabanındaki Satınalma şemasını, Database Engine Yerel bilgisayar:
SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks\Tables\Purchasing.Vendor
Hiyerarşi SMO nesne modeli hakkında daha fazla bilgi için bkz: SMO nesne model diyagramı.
Nesne sınıfı bir yol ilişkili nesne modelindeki bir koleksiyon sınıf ile ilişkili düğümlerdir.Nesne adı, aşağıdaki tabloda ilişkili nesne modelindeki bir nesne sınıfının ilişkili düğümlerdir.
Yol |
SMO sınıfı |
---|---|
SQLSERVER:\SQL\MyComputer\DEFAULT\Databases |
DatabaseCollection |
SQLSERVER:\SQL\MyComputer\DEFAULT\Databases\AdventureWorks |
Database |
Her bir örneği'ni başvuru Database Engine bir yol, SQL Server Sağlayıcı SMO örnek bağlantı Windows kimlik doğrulaması'nı açmak için kullanır. Bağlantı Windows PowerShell oturum çalıştıran bir Windows hesabı kimlik bilgileri bilgilerini kullanarak yapılır.The SQL Server sağlayıcı does not use SQL Server kimlik doğrulaması.
SQL Server yollar gezinme
Windows PowerShell sağlayıcı hiyerarşileri gidin ve geçerli nesnenin temel işlemleri gerçekleştirmek için davranırlar uygular.Davranırlar sık kullanıldığından, bunlar kısa, kurallı adlar var.Ayrıca diğer adlar için benzer bir komut istemi komutları davranırlar eşleştiren bir kümesi vardır ve başka bir UNIX Kabuk komutlarını ayarlayın.
The SQL Server sağlayıcı implements a alt küme of the sağlayıcı cmdlets, shown in the following tablo.
cmdlet'i |
Kurallı bir diğer ad |
cmd diğer ad ad adı |
UNIX Kabuk diğer ad ad adı |
Açıklama |
---|---|---|---|---|
Alma konumu |
GL |
pwd |
pwd |
Geçerli düğüm alır. |
küme Yeri |
SL |
CD (chdir |
CD (chdir |
Geçerli düğüm değiştirir. |
GET ChildItem |
gci |
dir |
ls |
Geçerli düğümden saklanan nesneleri listeler. |
GET-öğe |
gı |
Geçerli öğe özelliklerini döndürür. |
||
Taşıma-öğe |
mi |
taşıma |
MV |
Bir nesneyi taşır. |
Rename-CVE-2006-öğe |
rni |
rn |
ren |
Nesneyi yeniden adlandırır. |
Kaldırma-CVE-2006-öğe |
RI |
DEL), rd |
RM, rmdir |
Bir nesne kaldırır. |
Örneğin, aşağıdaki davranırlar veya diğer adlar kümelerinden birini listesini almak için kullanabileceğiniz SQL Server örnekleri SQLSERVER:\SQL klasöre gezinme ve alt öğeler için klasör listesini isterken kullanılabilir:
Tam cmdlet'i adları kullanarak:
Set-Location SQLSERVER:\SQL Get-ChildItem
Kurallı adlar kullanma:
sl SQLSERVER:\SQL gci
Cmd diğer ad kullanma:
cd SQLSERVER:\SQL dir
UNIX Kabuk diğer ad kullanma:
cd SQLSERVER:\SQL ls
Important Note: Bazı SQL Servertanımlayıcı (nesne adları), Windows PowerShell yol adlarında desteği olmayan karakterler içeriyor. Bu karakterleri içeren adları'nı kullanma hakkında daha fazla bilgi için bkz: SQL Server tanımlayıcıları PowerShell içinde kullanma.
GET ChildItem kullanma
Döndürülen bilgi GET ChildItem (veya kendi dir and ls diğer adlar) bir SQLSERVER konumunuzdaki bağlıdır: yol.
yol konumu |
GET ChildItem sonuçlar |
---|---|
SQLSERVER:\SQL |
Yerel bilgisayarın adını döndürür.SMO veya WMI örnekleri için bağlanmak için kullandığınız, Database Engine diğer bilgisayarlarda, bu bilgisayarların da listelenmiştir. |
SQLSERVER:\SQL\Bilgisayaradı |
Örnekleri listesine Database Engine Bu bilgisayarda. |
SQLSERVER:\SQL\Bilgisayaradı\Instancename |
En üst düzey nesne türleri listesi örnek bitiş noktaları, sertifikalar ve veritabanları gibi. |
Nesne sınıfı, düğüm veritabanları gibi |
Bu tür veritabanlarının listesi gibi nesneleri listesi: ana, modeli, AdventureWorks. |
Nesne adı, düğüm AdventureWorks gibi |
Nesnenin içinde bulunan nesne türlerinin listesi.Örneğin, bir veritabanı tablolar ve görünümler gibi nesne türleri listesi. |
Varsayılan olarak, GET ChildItem sistem nesneleri listeler.Use Force Sistem nesneleri, nesnelerin gibi görmek için parametre sys şema.
Bu örnek, yerel bilgisayar ile bir SMO veya WMI bağlantısı yaptığınız herhangi bir bilgisayar listeler:
Set-Location SQLSERVER:\SQL
Get-ChildItem
Bu örnek örneklerini listeler Database Engine Yerel bilgisayar:
Set-Location SQLSERVER:\SQL\localhost
Get-ChildItem
Bu örnekte ana bulunan nesne sınıflarını listeler bir varsayılan örnek, Database Engine. Bu liste, bitiş noktaları, sertifikalar ve veritabanları gibi adları içerir:
Set-Location SQLSERVER:\SQL\localhost\DEFAULT
Get-ChildItem
Bu örnek, veritabanı altyapısı varsayılan örneğinde kullanılabilir veritabanlarının listeler.The Force parameter is used to include the sistem veritabanları like master and model:
Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases
Get-ChildItem -force
Yol düğümleri üzerinde eylemler gerçekleştirme
Bir Windows PowerShell bir düğüme gidilen sonra yol, iki eylemleri gerçekleştirebilirsiniz:
Düğümlerinde gibi çalışan Windows PowerShell davranırlar çalıştırabilirsiniz. Rename maddesi.
Ilişkili yöntemleri çağırabilir SQL Server SMO gibi yönetimi nesne modeli. Bir yol Databases düğümüne gidin, örneğin, yöntem ve özelliklerini kullanabileceğiniz Database sınıf.
The SQL Server sağlayıcı is used to manage the objects in an örnek of the Database Engine. Veritabanlarındaki verilerle çalışmak için kullanılmaz.Bir tablo veya görünüme geçiş ise, sağlayıcı seçin, Ekle, Güncelleştir veya verileri silmek için kullanamazsınız.Use Çağır sqlCmd Windows PowerShell ortamından tablolar ve görünümler, sorgu veya değişiklik veri cmdlet'i. Daha fazla bilgi için bkz: ınvoke sqlCmd cmdlet'i kullanma.
Yöntemleri ve özellikleri listeleniyor.
Kullanabileceğiniz GET-CVE-2006-üye cmdlet'i belirli bir nesne veya nesne sınıfları için kullanılabilen özellikleri ve yöntemleri görüntülemek için.
Bu örnek, nasıl yapılır: SMO yöntemlerinin listesini gösterir. Database sınıf:
[Microsoft.SqlServer.Management.SMO.Database] | Get-Member -Type Methods
Bu örnek, bir Windows PowerShell değişken için SMO ayarlar Database sınıf ve özelliklerini listeler:
$MyDBVar = New-Object Microsoft.SqlServer.Management.SMO.Database
$MyDBVar | Get-Member -Type Properties
Ayrıca GET-üyelik , yöntemleri ve Windows PowerShell yolun son düğümle ilişkili özellikleri listeleyin.
Bu örnek, bir SQLSERVER Databases düğümüne gider: yol ve listeler koleksiyon özelliklerini:
Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases
Get-Item . | Get-Member -Type Properties
Bu örnek, AdventureWorks düğümü olarak bir SQLSERVER gider: yol ve nesne özellikleri listeler:
Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks
Get-Item . | Get-Member -Type Properties
Yöntemleri ve özellikleri'ni kullanma
Windows PowerShell Komut SMO özelliklerinde başvuruda bulunabilir.Bu örnek, AdventureWorks Satış şemasından tabloların bir listesini almak için SMO Schema özellik kullanır:
Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks\Tables
Get-ChildItem | where {$_.Schema -eq "Sales"}
Bu örnek, SMO komut dosyası yöntem içeren bir komut dosyası oluşturmak için kullandığı CREATE VIEW ifadeleri, AdventureWorks görünümlerde yeniden olmalıdır:
Remove-Item C:\PowerShell\CreateViews.sql
Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks\Views
foreach ($Item in Get-ChildItem) { $Item.Script() | Out-File -Filepath C:\PowerShell\CreateViews.sql -append }
Bu örnek, bir veritabanı oluşturmak için SMO Create yöntem kullanır ve sonra da veritabanının var olup olmadığını göstermek için State özelliğini kullanır:
Set-Location SQLSERVER:\SQL\localhost\DEFAULT\Databases
$MyDBVar = New-Object Microsoft.SqlServer.Management.SMO.Database
$MyDBVar.Parent = (Get-Item ..)
$MyDBVar.Name = "NewDB"
$MyDBVar.Create()
$MyDBVar.State
Özel tanımlama sürücüler
Windows PowerShell kullanıcılar için Windows PowerShell sürücüler veya ps sürücüleri olarak başvurulan sanal sürücüler, tanımlama sağlar.Bu, bir yol ifadesinin başlangıç düğümlerin üzerinde eşleyin.Genellikle sık yazılan yolu kısaltmak için kullanılırlar.sqlserver: Windows PowerShell penceresinde yer alır ve yazarak çok gerektiren uzun yol alabilirsiniz. Çok iş belirli bir yol bir düğümdeki oluşturacaksanız, bu düğüme eşleştiren özel bir Windows PowerShell sürücü tanımlayabilirsiniz.Örneğin, çok sayıda iş AdventureWorks veritabanındaki gerçekleştirdiğiniz, bir AWDB oluşturabilirsiniz: sürücü:
New-PSDrive -Name AWDB -Root SQLSERVER:\SQL\localhost\DEFAULT\Databases\AdventureWorks
Sonra AWDB kullanabilirsiniz: Purchasing.Vendor tablo gibi AdventureWorks nesneler yol kısaltmak için sürücü:
Set-Location AWDB:\Tables\Purchasing.Vendor
SQL Server kimlik doğrulaması bağlantıları yönetme
Varsayılan olarak, SQL Server sağlayıcı için Windows kimlik doğrulaması bağlantı yapmak için altında çalıştığı Windows hesabını kullanır Database Engine. Yapmak için bir SQL Server kimlik bilgileri doğrulaması bağlantı ilişkilendirmelisiniz SQL Server oturum açma kimlik bilgileri bilgilerine bir sanal sürücü ve değişiklik dizin komutu (kullanıncd) bu sürücüye bağlanmak için. Windows PowerShell ', güvenlik kimlik bilgileri bilgilerini yalnızca sanal sürücü ile ilişkili olabilir.
Bu komut dosyası adında bir işlev oluşturur. sqldrive ile belirtilen ilişkili sanal bir sürücü oluşturmak için kullanabileceğinizSQL Server kimlik doğrulaması ile oturum açma ve örnek.
function sqldrive
{
param( [string]$name, [string]$login = "MyLogin", [string]$root = "SQLSERVER:\SQL\MyComputer\MyInstance" )
$pwd = read-host -AsSecureString -Prompt "Password"
$cred = new-object System.Management.Automation.PSCredential -argumentlist $login,$pwd
New-PSDrive $name -PSProvider SqlServer -Root $root -Credential $cred -Scope 1
}
SQLAuth adlı sanal bir sürücüden daha sonra yeniden oluşturabilirsiniz: Bu komutu çalıştırarak:
sqldrive SQLAuth
The sqldrive işlev prompts you to enter the password for your login, masking the password as you type it in.Sonra kullandığınız her değişikliği dizin komutu (cd) için bir yol SQLAuth kullanarak bağlanmak için: Sürücü, kullanarak gerçekleştirilen tüm işlemlerSQL Server Sürücü oluşturduğunuzda sağladığınız kimlik bilgileri doğrulaması oturum açma bilgileri.
Microsoft.SqlServer.Managment.smo.Wmi ad kullanma
Ek olarak SQL Server Ad \SQL, \SQLPolicy ve \SQLRegistration klasörleri ile ilişkili olan Yönetim nesne modeli alanları, sınıfların de kullanılabilir Microsoft.SqlServer.Management.Smo.Wmi ad alanı. Sorgulamak ve her uygulama hizmetleri durumunu yönetmek için en yaygın kullanımı bu ad olan örnek, Database Engine veya bir ilke deposu.
Bu örnekte ManagedComputer sınıf varsayılan bir örneğini çalıştıran bir hizmet durdurmak ve nasıl kullanılacağı gösterilmiştir Database Engine.
# Get a reference to the ManagedComputer class.
cd SQLSERVER:\SQL\localhost
$Wmi = (get-item .).ManagedComputer
# Display the object properties.
$Wmi
# Get a reference to the default instance of the Database Engine.
$DfltInstance = $Wmi.Services["MSSQLSERVER"]
# Display the state of the service.
$DfltInstance
# Stop the service.
$DfltInstance.Stop(); write-host "Stopped"
# Refresh the cache and look at the state.
$DfltInstance.Refresh(); $DfltInstance
# Start the service again.
$DfltInstance.Start(); write-host "Started"
Not
Uzak bilgisayarlarda bu ad alanındaki sınıfların kullanmak için , WMI DCOM bağlantılara izin vermek için Windows Güvenlik Duvarı'nı yapılandırmanız gerekir.Daha fazla bilgi için bkz: SQL Server erişimi için izin vermek için Windows Güvenlik Duvarı'nı yapılandırma.
Sekme tamamlama yönetme
Windows PowerShell sekmesini tamamlanma miktarı azaltır yazarak bunu yapmalısınız.Yazdığınız yol veya cmdlet'i adı bölümü, zaten yazdığınız adları eşleşen öğeleri listesini almak için SEKME tuşuna isabet.Sonra diğer adı yazmak zorunda olmadan istediğiniz öğeyi listeden seçebilirsiniz.
Çok sayıda nesne olan bir veritabanında çalışıyorsanız, sekme tamamlama listeleri çok büyük hale gelebilir.Bazı SQL Server nesne türleri, görünümler gibi çok sayıda sistem nesneleri de vardır.
The SQL Server snap-ins introduce three system variables that you can use to control the amount of information presented by tab-completion and Get-ChildItem.
**$SqlServerMaximumTabCompletion =**n
Bir sekme tamamlanma listesinde dahil etmek için nesneleri sayısı belirtir.If you select Tab at a path node having more than n objects, the tab-completion list is truncated at n.n is an integer.0 varsayılan ayardır ve listelenen nesnelerinin sayısı, sınır olduðu anlamýna gelir.**$SqlServerMaximumChildItems =**n
Tarafından görüntülenen nesnelerin sayısı üst sınırını belirtir GET ChildItem.If Get-ChildItem is run at a path node having more than n objects, the list is truncated at n.n is an integer.0 varsayılan ayardır ve listelenen nesnelerinin sayısı, sınır olduðu anlamýna gelir.$ SqlServerIncludeSystemObjects = { $ True | $ Yanlış }
If $ Truesistem nesneleri, sekme tamamlama ve tarafından görüntülenir.GET ChildItem.If $ Yanlış, görüntülenen nesnelerin sistemi yok.Varsayılan ayar $ Yanlış.
Aşağıdaki örnek, tüm üç değişkenlerini ayarlar ve bunların ayarlarını listeler:
$SqlServerMaximumTabCompletion = 20
$SqlServerMaximumChildItems = 10
$SqlServerIncludeSystemObjects = $False
dir variable:sqlserver*
Değişiklik Geçmişi
Güncelleştirilmiş içerik |
---|
Sözdizimi hatası, kod bloklarında smo.Database başvuran sabit.SQL'I başvurular kaldırıldı: sürücü ile SQLSERVER değiştirildi: sürücü. |
See Also