外部サイトに接続できないSQLサーバーマシンがいくつかあります。
データベースを管理するときにPowerShellを使用することが多くなっているので、PowerShellルーチンを使用するには、このモジュールをインストールする必要があります。
それらのオフラインマシンにSQL Serverモジュールをインストールすることは難しいことが証明されています。
モジュールをインストールしようとすると:
SqlServer
モジュールは NuGetモジュールパッケージ を要求します:
次の図に示すように、この赤い文字の海と次のエラーメッセージが表示されます。
警告:URI ' https://go.Microsoft.com/fwlink/?LinkID=627338&clcid=0x409 'から ''にダウンロードできません。
警告:利用可能なプロバイダーのリストをダウンロードできません。インターネット接続を確認してください。 PackageManagement\Get-PackageProvider:パッケージプロバイダー 'NuGet'が見つかりません。
まだインポートされていない可能性があります。 「Get-PackageProvider -ListAvailable」を試してください。
C:\ Program Files\WindowsPowerShell\Modules\PowerShellGet\1.0.0.1\PSModule.psm1:7415 char:30 + ... tProvider = PackageManagement\Get-PackageProvider -Name $ script:NuGetにあります...
このPowerShellモジュールのインストールの回避策は何ですか?
PowerShellにはこのための組み込みメカニズムがあり、 前の回答 よりも簡単です。
インターネットに接続されたコンピューターからSave-Module sqlserver -path c:\tmp
を実行します(モジュールの保存先のパスを置き換えます)。これにより、c:\tmp
(c:\tmp\SqlServer
)内の同じ名前のディレクトリにモジュールが保存されます。
次に、そのディレクトリ全体をターゲットコンピュータにコピーします。ユーザーが利用できるようにする方法に応じて、宛先にはいくつかのオプションがあります。 PowerShell 5.1以前では、PSModulePath
環境変数のパスを確認してください。私のシステムでは、次のようになっています。
> $env:psmodulepath.split(";")
C:\Users\MYNAME\Documents\WindowsPowerShell\Modules
C:\Program Files\WindowsPowerShell\Modules
C:\WINDOWS\system32\WindowsPowerShell\v1.0\Modules
C:\Program Files\Intel\Wired Networking\
C:\Program Files (x86)\Microsoft SQL Server\150\Tools\PowerShell\Modules\
モジュールをすべてのユーザーが利用できるようにするために、C:\Program Files\WindowsPowerShell\Modules
に配置します。自分だけの場合はC:\Users\MYNAME\Documents\WindowsPowerShell\Modules
に入ります
PowerShell Core またはPowerShell 7を実行している場合、これらのパスは少し異なる場合があります。 $PSGetPath
の1つ以上のパスを確認します。
ここから、Import-Module sqlserver
を正常に実行できるはずです。
恥知らずなプラグイン:PowerShellを介して多くのSQL Server管理を行っている場合(そして私は心からお勧めします!)、 dbatools
モジュールをチェックアウトする必要があります。
これは私がそれを成し遂げた方法です。 this や this のようないくつかの記事からオンラインで情報を得ました。
それらの記事を公開してくださった方々に心から感謝しています。
したがって、(インターネットにアクセスできる)別のコンピューターを探して、NuGetパッケージがインストールされていることを確認し、そのフォルダーを調べます。見える:
したがって、DLLファイルをインターネットにアクセスできないマシンにコピーし、同じフォルダ構造に保存する場合は、必ず閉じて再度開いてください PowerShell ISE プログラム。
ここでinstall-module -name sqlserver
を再試行しても、必要なリポジトリに関するメッセージが表示されます。
そして、以下のエラーメッセージ:
だからあなたはより良い 手動でダウンロード 現在SqlServer
モジュールパッケージ ここ から。
手動でダウンロードするには、「生のnupkgファイルをダウンロード」をクリックします。パッケージのコピーが、.. nupkgという名前でブラウザーのダウンロードフォルダーにコピーされます。
いくつかの指示があります ここ :
c:\sql_install
で、フォルダーに解凍します-フォルダーの名前をsqlserver
に変更します)powerShellに移動して、次のスクリプトを実行します。
$env:PSModulePath
上記の結果からあなたは私のパスを見ることができ、それに基づいてsqlserver
フォルダーを2
から次の場所にコピーしました:
C:\ Program Files\WindowsPowerShell\Modules;
C:\ Windows\system32\WindowsPowerShell\v1.0\Modules;
C:\ Program Files>(x86)\ Microsoft SQL Server\130\Tools\PowerShell\Modules \
Powershell iseを閉じて再度開きます(常に管理者として)
Powershell ise-> Modules-sqlserver
が存在する場合:
そうでない場合-何かがうまくいかなかった-そうでなければ、今すぐ実行できるはずです
Import-Module sqlserver
そしてPowerShellでテストするとき:
Get-SqlAgent -ServerInstance my_server_name
それがうまくいったなら、あなたは行ってもいいです。