問題タブ [pssnapin]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
powershell - PowerShell v1 で同等の Load-Module
スクリプトの移植性の理由から、PowerShell スクリプトでスナップインを動的に読み込む必要があります。これは、関数を使用して PowerShell v2 で簡単に実現できLoad-Module
ます。この特定のスクリプトを、さまざまな理由で PowerShell v2 をインストールしたくないマシンで実行する必要がありますが、v1.
Load-Module
PowerShell v1に相当するものはありますか?
powershell - Make-Shell は非推奨ですか?
数年前、私は Make-shell を使用して、カスタム コマンドレットでカスタム シェルを作成しました。後でスナップイン手法を使用しましたが、そのオプションを忘れていました。
ここで、一連のカスタム コマンドレットを多数の顧客に展開する必要があります。ゼロ構成のソリューションを提供することをお勧めします。したがって、私はカスタム シェル ソリューションを思い出しましたが、そのようなシナリオでもそれが最善のソリューションであるかどうか疑問に思っています。私のコマンドレットは WF 4.0 を使用しているため、シェルが最新のフレームワーク バージョンで実行される必要があるため、これも役立ちます。とにかく、私はそれのサポートについて少し怖いです: Powershell 2.0 機能でまだ動作していますか?
顧客のマシンにコマンドレットを簡単に展開する別の方法はありますか?
ありがとうございました
powershell - カスタム pssnapin で install util を実行するとインストーラーが見つからない
非常に単純な PSSnapin を作成しましたが、アセンブリに対して IntallUtil を実行すると、次のようになります。
C:\Tools\PowerShellCommands\SetServerDataSource\bin\Debug\SetServerDataSource.dll アセンブリに、RunInstallerAttribute.Yes 属性を持つパブリック インストーラーが見つかりませんでした。インストーラーがないため、InstallState ファイルを削除します。
ただし、[RunInstaller(true)] を使用したインストーラー (CustomPSSnapIn から継承) は間違いなくあります。
何か案は?
powershell - PowerShell の Add-PSSnapin と Import-Module の違いは何ですか?
PowerShellでのAdd-PSSnapin
との違いは何ですか?Import-Module
結局、どちらも同じ結果をもたらすように見えます。
推奨されるアプローチはどれですか?
powershell - カスタム Powershell プロバイダーのワンクリック インストールの設定
カスタム Powershell プロバイダーを作成しました。ただし、現在、ユーザーのコンピューターで動作させるには、いくつかの手順を実行する必要があります。
- .Net 4 に対して実行するように Powershell を構成します (c:\Windows\System32\WindowsPowerShell\v1.0 に構成ファイルを追加します)。
- カスタム フォーマッタを追加します (c:\Windows\System32\WindowsPowerShell\v1.0 の System32 に)。
- スナップインを登録します。
残りのセットアップ手順は、カスタム PowerShell スクリプトによって完了します。
プロセスの簡素化に関する経験を誰かが共有できるかどうか疑問に思っていました. 理想的には、単一のコマンド (理想的には、上記のすべての手順を完了する CommandLet.
誰かが共有できるリンク、提案、またはベストプラクティスを持っていますか?
powershell - WindowsPowerShellバージョン2にはスナップインが登録されていません
SQL Server Management StudioがインストールされていないWebサーバーでPowershellスクリプトを実行しようとしていますが、Microsoft SQL Server 2008 R2 SP2FeaturePackの関連するすべてのパッケージがインストールされています。PowershellでSQLコマンドを実行できるようにするには、これらの小さな要素をインストールする必要があります。
次に、Powershellで実行されるSQLServerコマンドの環境を準備する次のセットアップスクリプトを実行しました。
でAdd-PSSnapin SqlServerCmdletSnapin100
、スクリプトは次のエラーで失敗します。
Windows PowerShellバージョン2にはスナップインが登録されていません。C:\ Vantiv \ Initialize-SqlpsEnvironment.ps1:75 char:13 + Add-PSSnapin <<<< SqlServerCmdletSnapin100#-ErrorAction SilentlyContinue + CategoryInfo:InvalidArgument:(SqlServerCmdletSnapin100:文字列)[Add-PSSnapin]、PSArgumentException + FullyQualifiedErrorId:AddPSSnapInRead、Microsoft.PowerShell.Commands.AddPSSnapinCommand
このエラーについてGoogle検索を実行しましたが、見つけた唯一の解決策は、64ビットのPowershellコンソールショートカットがSystem32ではなくSysWOW64ディレクトリを指していると言われていることでした。これは私には当てはまりません。私はSystem32を指しています。
何か案は?Powershellにこれらのスナップインを登録させるには何をする必要がありますか?
c# - ImportPSModule の障害検出
InitialSessionState.ImportPSModule
Powershell モジュールをインポートするために使用しようとしています。
モジュールのインポートが何らかの理由 (ファイルが見つからないなど) で失敗したかどうか知りたいです。そのようなコードを try ブロックに入れると、失敗した場合に例外が発生せず、モジュールをインポートできない場合、関数は黙って失敗し、続行するように見えます。
インポートが失敗した場合にコードで警告を受ける方法はありますか?
私は次のようなことをしようとしています。以下のコードでは、モジュール「TestModule1234」は存在しません。catch ブロックは例外をキャッチしません。
注: これは単なるプロトタイプ テスト コードであるため、製品コードに関連する不規則性は無視してください。
powershell - PowerShell モジュールと SnapIn
Microsoft.SharePoint.PowerShell snapIn に依存するいくつかのユーティリティ モジュールを作成しました。
私のマシンでスクリプトを実行すると、スクリプトはすべて正しく実行されます。PowerShell を「デフォルトでロード」するためのモジュールやスナップインはプロファイルにありませんが、他のマシンではプロファイルがクリーンであるとは保証できません。
私のモジュールローダー.psd1ファイルでは、次のものを使用しています
ps1 ファイルを使用して、次のモジュールのインポート コマンドを含むこれらのモジュールのインポートをトリガーします。
この方法で実行すると、スナップインが既に読み込まれているため、プロファイルに Microsoft.SharePoint.PowerShell スナップインが含まれているマシンで名前競合エラーが発生します。
-NoProfile 引数を使用して PowerShell コマンドを実行できることはわかっていますが、これはシナリオでは有効なソリューションではありません。
また、NestedModules セクションからスナップインを削除して、モジュールがインポートされる前に .ps1 ファイルで次を実行しようとしましたが、スナップインが読み込まれていると表示されないため、モジュールのインポートは失敗します。
ユーザー プロファイルに関係なく、スナップインが適切に読み込まれ、モジュールが正常にインポートされるようにするには、このソリューションをどのように作り直すことができますか?
私の理想的なシナリオは次のとおりです。
.net - Web サービスで Exchange 用の Powershell スクリプトを実行する
Web サービスで Microsoft Exchange 用の Powershell スクリプトを実行しようとしています。以下に記述されたコードは、コンソール アプリケーションから実行すると正常に動作しますが、Web サービス プロジェクトに移動して Web メソッドを呼び出すと、AddPSSnapIn を呼び出すとエラーになります。理由はありますか?これを Windows Server 2008 R2 64 ビット マシンで実行しています。ターゲット プラットフォームは任意の CPU から x64 に変更されました。
powershell - Powershell モジュール用の Powershell スナップインを追加し、複数回インポートする
構築中のカスタム Powershell コマンドレットに SqlServerCmdletSnapin を使用したいと考えています。PSM1 の先頭に次のコードを追加すると:
初めて実行すると、すべてがうまく機能します。
インポート モジュール MyModule -Force
ただし、2回目に実行すると:
インポート モジュール MyModule -Force
次のエラーが表示されます。
Add-PsSnapin : 同じキーを持つアイテムが既に追加されています。
私のコードは Invoke-SqlCmd を呼び出すことができなくなりました。カスタム モジュールに PowerShell スナップインを追加する最良の方法は何ですか?