タグ付けされた質問 「powershell」

Microsoftの対話型シェル、スクリプトおよびプログラミング言語、および周辺環境。Microsoftソフトウェア(Windows、Exchange、SharePoint、クラウドサービスのAzureやOffice 365を含む)を管理するシステム管理者が一般的に使用するPowerShellは、Windowsにデフォルトで含まれており、VBスクリプトなどの以前の言語から引き継がれます。

4
Test-Cluster Powershellコマンドレットリストと検証
PowershellコマンドレットTest-Clusterは無数のデータにクエリを実行し、検証テストを実行して、きれいなレポートにラップします。実行Test-Cluster -Listすると、項目のリストが表示され、コマンドレットを使用して個別にクエリを実行できます。を読むときの一般的な命名規則がありますDisplayName。それらはすべて"List"または"Validate"で始まります。 明らかに、「検証」は実際に失敗してフェイルオーバーをテストします。しかし、「リスト」という名前を付けると、実行時のデータのクエリにすぎないと思います。これを次のスクリプトでテストしました。 $TestList = Test-Cluster -List | Where-Object {$_.DisplayName -like "List*"} Test-Cluster -Include $TestList.DisplayName -ReportName "c:\cluster reports\report" このレポートが生成されている間、ログに記録されたクラスターエラーは表示されず、フェイルオーバーアクティビティも確認されません。Microsoftのtechnetもこれについてははっきりしていませんが、動作は私が考えていることと一致していると推測しています。この抜粋を参照してください(鉱山を強調): テスト結果は、指定したファイル名のファイルにキャプチャされます。検証テストを実行している、あなたは、ハードウェアや設定がフェールオーバークラスタリングと互換性があることを確認することができます。クラスタ、インベントリ、ネットワーク、ストレージ、システム、およびその他のタイプのテストを含む、複数のタイプのテストがあります。ストレージテストでは、クラスター化された役割で使用されているオンラインディスクまたはストレージプールはテストされません。このようなディスクをテストするには、まずStop-ClusterGroupを実行してクラスター化された役割を停止してから、Test-Clusterを実行します。テストが完了したら、クラスター化された役割(リソースグループとも呼ばれます)を再度開始します。 テストクラスターTechNetページ 「検証」という言葉の使用に注意を喚起します。さらに、そのスクリプトを実行すると、出力の一部として次のように表示されます。 Test Result: ClusterSkippedTestsCompleted 検証テストを含めると、結果は次のようになります。 Test Result: ClusterConditionallyApproved 私のテスト環境では、ネットワークテストでいくつかの警告が生成され、条件付き承認がトリガーされました。「Validate」と「List」の分割の背後にあるロジックを説明するドキュメントを見つけるためにかなりグーグル検索しましたが、何も調べていません。これは質問につながります... リスト要求はフェイルオーバーイベントをトリガーしますか?

1
ドメイン境界を越えたNew-PSSession
新しいセッションを(New-PSSessionで)作成できる必要がある仮想マシンを起動しようとしています。もちろん、非常に魅力的なabout_Remote_Troubleshootingは私の常連です。 基本的なマシン(Win 8.1 Enterprise)を起動した後: 私の会社のプライマリドメインは、たとえばですmycompany.com。 開発ドメインがあるdev.mycompany.comので、開発者はサンドボックスで遊ぶことができます。 新しいVM(my-vmという名前)を開発ドメインに追加しましたdev.mycompany.com。 新しいVMにローカルアカウントがありmy-vm\msorens、ローカルマシンのAdministratorsグループにあります。 最初のハードル: New-PSSessionクロスドメインの問題が原因でアクセスが拒否され、実行に失敗しました。上記のトラブルシューティングページによると: 別のドメインのユーザーがローカルコンピューターのAd​​ministratorsグループのメンバーである場合、そのユーザーは管理者特権でリモートからローカルコンピューターに接続できません。 私はこれが真実であるとは確信していませんが(ドメインの問題における私の未経験のため)、そのレメディのレシピを適用することで基本New-PSSessionが機能することを可能にしました: New-ItemProperty ` -Name LocalAccountTokenFilterPolicy ` -Path HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System ` -PropertyType DWord ` -Value 1 (そして、それは単なるサンドボックスVMなので、安全性は低くなりますが問題ありません。) 2番目のハードル: 上記のパッチを配置すると、次のいずれかを正常に実行できます。 PS> New-PSSession PS> New-PSSession -ComputerName localhost PS> New-PSSession -ComputerName my-vm ただし、実際に必要なのは、マシンのFQDNを指定することです。 PS> New-PSSession -ComputerName my-vm.dev.mycompany.com 資格情報がないために失敗します。これは私たちにこれをもたらします: PS> New-PSSession -ComputerName my-vm.dev.mycompany.com -Credential (Get-Credential) …

2
Powershell Get-Processの負のメモリ値
私はPowershell Get-Processコマンドレットを使用していくつかの検証を行っていて、一部のプロセスについていくつかの奇妙な値を得ました。SQL Serverインスタンスを実行し、リソースモニターが報告するように3 GB以上のRAMを消費するサーバーでテストしました。Get-Processを実行すると、SQLサーバープロセスでWorkingSetの値が負になり、別のプロセスが2 GB以上のPrivateMemorySizeを消費し、同じ結果が得られました。 PMの負の値。 以下は結果のスクリーンショットです。 OSはポルトガル語です。申し訳ありません。 パワーシェル: sqlservrと最後のscvhostを確認してください... 幸いなことに、私のスクリプトはWMI(Win32_Processクラス)​​を使用してプロセス情報を取得し、そこにある値は正しく、すべてが一致しています。 バグですか?大きな価値があるのでしょうか?Powershell v3を使用しています。

3
PowerShellのすべてのWebサイトからIISの仮想ディレクトリを一覧表示する方法
私は完全な障害にぶつかっており、の各Webサイトの仮想ディレクトリを印刷する方法がわかりませんIIS 8。私はアプリケーションと空のnull引数エラーを取得し続け、仮想ディレクトリを一覧表示する方法を見つけることができません。 仮想ディレクトリについて一覧表示するには、次のデータが必要です。 物理パス アプリプールの関連付け サイト名 資格情報 以下は、私が使用していたコードをいじっています。 *See revised code below* また、Appcmd.exeコマンドを使用して、仮想ディレクトリを試し、一覧表示しました。 C:\Windows\System32\inetsrv\appcmd.exe LIST VDIRS しかし、まだ必要な出力が得られません。何かまたは助けていただければ幸いです!ありがとう! 編集#------------------------------------------------ ---------------------- 数行をコメントアウトしてリストに表示する仮想ディレクトリを取得しましたが、名前と次のものだけが出力されます。 物理パス アプリプールの関連付け サイト名 資格情報 以下は修正されたコードです: Import-Module WebAdministration $Websites = Get-ChildItem IIS:\Sites foreach($Site in $Websites) { $webapps = Get-WebApplication -Site $Site.name $VDir = Get-WebVirtualDirectory -Site $Site.name #-Application $webapps.name foreach($webvdirectory in $VDir) …

5
PowerShellインポートDnsShellモジュール
これが、このディレクトリで利用可能なモジュールのリストです。ご覧のとおりですDnsShell。 PS C:\windows\system32> Get-Module -ListAvailable ディレクトリ:C:\ windows \ system32 \ WindowsPowerShell \ v1.0 \ Modules ModuleType Name ExportedCommands ---------- ---- ---------------- Manifest ActiveDirectory {Get-ADRootDSE, New-ADObject, Rename- ADObject, Move-ADObject...} Manifest AppLocker {Set-AppLockerPolicy, Get-AppLockerPolicy, Test-AppLockerPolicy, Get-AppLo... Manifest BitsTransfer {Add-BitsFile, Remove-BitsTransfer, Complete-BitsTransfer, Get-BitsTransfe... Manifest CimCmdlets {Get-CimAssociatedInstance, Get-CimClass, Get-CimInstance, Get-CimSession...} Binary DnsShell Script ISE …

7
Powershellを使用してスケジュールされたタスクを無効にするにはどうすればよいですか?
私は、Windows Server 2008 R2で実行されるWebアプリケーションを持っています。このWebアプリケーションには、すべてのバックエンド関連の処理を行う多数のスケジュールされたタスクがあります。データベースにアクセスするソフトウェア展開を行うとき、スケジュールされたすべてのタスクを無効にする必要があります。現在、私は手動で実行する必要がある長いチェックリストを持っているので、スケジュールされた各タスクを無効にしています。 残念ながら、Powershellのドキュメントは、既存のスケジュールされたタスクを無効にする方法についてはかなり恥ずかしいようです(もちろん、リリースが正常に完了したら、再度有効にします)。実行中、実行中、または無効になっているタスクのリストを取得できますが、次はどうしますか?

1
Powershell-ADでユーザー資格情報をテストし、パスワードをリセットする
Powershellを正常に使用して、ユーザーがActive Directoryで認証されているかどうかを確認できます。 Function Test-ADAuthentication { param($username,$password) (new-object directoryservices.directoryentry "",$username,$password).psbase.name -ne $null } Test-ADAuthentication "test" "Password1" しかし、私は私の人生の中で次の方法を理解することはできません。 パスワードをリセットする必要があるかどうかを確認します。 送信された資格情報の確認は、最後のパスワードで機能しました。 どうすればこれに対処できますか?

5
ローカルユーザーアカウントの作成日を確認するにはどうすればよいですか?
ローカルユーザーアカウントの作成日を取得したい(重要な場合はWin 7)。私は次のWMIオブジェクト(そしてもちろんGoogle)を見てきました。 Win32_UserAccount Win32_NetworkLoginProfile から返されたオブジェクトにNetworkLoginProfileは最終ログイン時刻がありますが、作成日はありません。Date Createdプロファイルフォルダーのプロパティを確認すると、フォルダーが作成された日付が示されるだけで、必ずしもアカウント自体は示されません。

1
Powershellを使用してSCCM経由で展開されたソフトウェア更新プログラムのEULAを受け入れる方法
Start-CMSoftwareUpdateDeploymentコマンドレットを使用して、ソフトウェア更新プログラムグループを既存のコレクションに展開しようとしています。 PS WHO:\> Start-CMSoftwareUpdateDeployment -SoftwareUpdateGroupName "Update Group - Microsoft Updates" -CollectionName ` Eval_OSUpdates -DeploymentType Required -SendWakeUpPacket $true -AllowRestart $true -PersistOnWriteFilterDevice $true ` -DownloadFromMicrosoftUpdate $true -DeploymentName "Evaluation Deployment - Update Group - Microsoft Updates" ` -UserNotification DisplayAll -RestartWorkstation $false -AllowUseMeteredNetwork $true 必要なパラメーターはすべて指定されていますが、実行時に次のエラーが表示されます。 Start-CMSoftwareUpdateDeployment : ConfigMgr Error Object: instance of SMS_ExtendedStatus { …

1
PowerShell DSCグループリソース-「指定された名前のプリンシパルが見つかりませんでした」
PowerShell DSCを使用して、ドメイングループをローカル管理者グループに追加しようとしています。これがコードです: Configuration TestSetup { Node localhost { Group Administrators { GroupName = "Administrators" MembersToInclude = "MYDOMAIN\TheAdministratorsGroup" } } } これを実行すると、次のエラーが発生します。 PowerShell provider MSFT_GroupResource failed to execute Test-TargetResource functionality with error message: Could not find a principal with the provided name [mydomain\theadministratorsgroup] + CategoryInfo : InvalidOperation: (:) [], CimException + …

4
Powershellを使用したMIMEタイプの編集/設定?
それで、PowerShellを使用してIIS 7.5でMIMEタイプを変更/編集する特定の方法があるかどうか疑問に思っていましたか? :これまでのところ私は、次のようなMIMEタイプを追加するためのソリューションに遭遇してきた http://sclarson.blogspot.co.at/2011/08/adding-mime-type-to-iis-vis-powershell.html ます。http://フォーラムを。 iis.net/t/1192371.aspx と、参照されている本はあるが、それらの本にはそれに関する情報が含まれていない他のカップルを確認しました。 を使用しているようAdd-WebConfigurationPropertyですが、既存のMIMEタイプにこのメソッドを使用すると、重複するアイテムエントリに関連するエラーが表示されます(既にそこにあるため)、このメソッドはウィンドウの外にあります。 私はSet-WebConfigurationProperty代わりに使用しようとしましたが、その結果、既存のMIMEタイプのエントリがすべて削除され、そのうちの1つが残っただけになりました。 それで、誰かが提案をしたり、おそらくこれを行う正しい方法を知っていますか?最初にエントリを削除してから追加するなどの方法も検討しました。唯一の問題は、mimetype fileExtensionとmimeTypes(つまり、テキスト/ XMLなど)の両方を知る必要があることです。したがって、最初にgetwebconfigpropertyメソッドを使用して両方のプロパティを取得し、それから値を解析してdelete-webpropconfig関数に削除してから追加する必要があると想定します。 私が理解していることから、appcmd.exe set config "values and params here"メソッドは、ほぼそのまま実行します。しかし、これに関する問題は、残念ながら、使用できないことです。そして、はい、残念ながらpowershellにappcmdコマンドを実行させることができることを理解しています。これは実行可能なオプションではありません。私はグーグルで解決策を見つけるために本を読んでみましたが、これまでのところ理由について答えを思いつきませんでした 1)set-webconfigurationpropertyメソッドは他のすべてのmimetypeエントリを削除します 2)add-webconfigurationpropertyこれを実行することはできず、「エラー複製」メッセージがスローされます 3)PowerShellを使用してこれを1行で行うための実用的なソリューション。
8 powershell  iis 

2
powershell:リモートマシンでSMARTが有効になっているかどうかを確認する方法
win32_diskdriveクラスを使用して、ドライブでSMARTが有効になっているかどうかなど、リモートマシンのディスク情報を取得しようとしました。 これは思ったよりトリッキーです。ステータスプロパティを読み取るのは簡単ですが、Capabilitiesプロパティで興味深いもの、つまり「SMART Notification」が利用可能かどうかを示す値を発見しました。この値は、コマンドが昇格されたセキュリティコンテキストで実行されない限り表示されません。したがって、たとえば(gwmi win32_diskdrive).Capabilitiesを実行した場合、SMART値(10)は値の配列にまだ表示されません。昇格したプロンプトで実行した場合は表示されます。私が知る限り、昇格されたコンテキストでwinrmセッションを実行することはできません(そして、私は安っぽいschtasksハックやpsexecには興味がありません)。 それで、私はwin32_diskdriveをMSStorageDriver_FailurePredictStatusクラスにマップしようとしました。SMARTがCapabilitiesプロパティに表示されていても、必ずしも有効になっているとは限らないので、とにかくこれを行う必要があると思います。 win32_diskdriveのPNPDeviceIDプロパティをMSStorageDriver_FailurePredictStatusのInstanceNameプロパティにマッピングしていましたが、InstanceNameプロパティはこれが機能するのに十分なほど一意ではないと思います。たとえば、これは私のInstanceNameです。IDE\DiskST3250312AS_____________________________JC47____\5&350bf0c3&0&0.0.0_0 インターフェースタイプ(IDE)、モデル番号(ST3250312AS)、ファームウェアバージョン(JC47)、ある種の一意の識別子(5&350bf0c3&0&0.0.0)、インデックス番号(_0)のようなものを示しています。グーグルする5&350bf0c3&0&0.0.0とドライブの情報が表示されるので、この番号は一意ではないと思います。つまり、一意性は、win32_diskdriveクラスのPNPDeviceIDプロパティに含まれていないインデックス番号にあります。私たちのサーバーの多くは複数の同一のディスクを持っているため、これは問題です。 私の懸念は、次のMSStorageDriver_FailurePredictStatusように複数のディスクを表すことです。 IDE\DiskST3250312AS_____________________________JC47____\5&350bf0c3&0&0.0.0_0 IDE\DiskST3250312AS_____________________________JC47____\5&350bf0c3&0&0.0.0_1 IDE\DiskST3250312AS_____________________________JC47____\5&350bf0c3&0&0.0.0_2 そして、それらすべてのwin32_diskdriveのPNPDeviceIDプロパティは、 IDE\DiskST3250312AS_____________________________JC47____\5&350bf0c3&0&0.0.0 win32_diskdriveから取得したオブジェクトMSStorageDriver_FailurePredictStatusをリモートセッションを介してpowershell に確実にマッピングしたり、別の方法でこれを行うにはどうすればよいですか? 編集: さて、私は過剰反応していたようです。多数のサーバーを確認したところ、次のようなInstanceNames \ PNPDeviceIDsが見つかりました。 SCSI\Disk&Ven_TOSHIBA&Prod_MBF2600RC\5&354ecb35&0&000200_0 SCSI\Disk&Ven_TOSHIBA&Prod_MBF2600RC\5&354ecb35&0&000300_0 だれもこれを最終的に確認できない場合は、この値が実際には一意であると仮定し、これを「回答」としてマークします。

3
Powershellを使用して、Exchangeデータベースで2年以上前の電子メールのリストをユーザー別にソートする方法は?
現在、メールのアーカイブと保持ポリシーの見直しを検討しています。大きな問題は(法務部門にとって)どれくらい前に節約したいですか?現在、私たちのユーザーはメールボックスの制限が非常に大きく、以前はすべて適切であると見なしてアーカイブすることができました。したがって、Exchangeデータベースにはない数百GBのデータがありますが、最終的には検出のためにアーカイブデータベースに吸い込まれることになります。私がやりたいのは、法務チームが1年、2年、3年など前に戻った場合にどれだけの量になるかを定量化できることです。 TheDailyAdminで、ほとんどの部分で私がやりたいことを実行するかなり簡単なPowershellスクリプトを見つけましたが、それはすべてを1つの山にまとめています。結果を確認したいのですが、ユーザー別に並べ替えると、Sallyには2年以上前の47MB、Charlesには2年以上前の190MBがあることがわかります。 これが私が実行したスクリプトです: get-mailboxdatabase | get-mailbox -resultsize unlimited | get-mailboxfolderstatistics -folderscope all -includeoldestandnewestitems | export-csv mailbox_stats.csv すべてをファイルに保存することはできますが、メールがだれのものかはわかりません。特にメールボックスでも実行しましたが、時間がかかるので、すべてのユーザーに対して手動で実行することは避けます。私はPowershellの第一人者ではありませんが、誰かがしっかりと把握し、コマンドを正しい方向に向けて少し細かく分解できるようにしてほしいと思っていました。 前もって感謝します!

2
PowerShellスクリプトでDiskpartを使用すると、スクリプトでドライブ文字を再利用できなくなります
Diskpartを使用してVHDをマウント(アタッチ)し、いくつかのシステムファイルをクリーンアップして、アンマウント(デタッチ)するスクリプトを作成しました。これはforeachループを使用し、同じドライブ文字を使用して複数のVHDをクリーンアップすると想定されています。ただし、最初のVHDの後は失敗します。また、diskpartを使用してVHDを手動で接続しようとすると、diskpartが成功し、ディスクマネージャーに正しいドライブ文字のディスクが表示されますが、同じPoSHインスタンス内ではそのドライブに接続(設定場所)できません。最初にPoSHを開いたときに手動のdiskpartを実行すると、必要なすべてをアタッチおよびデタッチでき、毎回ドライブ文字を取得できます。スクリプトでdiskpartをリセットするために必要なことはありますか?これが私が使用しているスクリプトのスニペットです。 function Mount-VHD { [CmdletBinding()] param ( [Parameter(Position=0,Mandatory=$true,ValueFromPipeline=$false)] [string]$Path, [Parameter(Position=1,Mandatory=$false,ValueFromPipeline=$false)] [string]$DL, [string]$DiskpartScript = "$env:SystemDrive\DiskpartScript.txt", [switch]$Rescan ) begin { function InvokeDiskpart { Diskpart.exe /s $DiskpartScript } ## Validate Operating System Version ## if (Get-WmiObject win32_OperatingSystem -Filter "Version < '6.1'") {throw "The script operation requires at least Windows 7 or Windows Server …

5
スケジュールされたタスクのExchange PowerShellが永久に実行される
スケジュールされたタスクとして実行したいExchange 2010 PowerShellスクリプトがいくつかあります。 「別のユーザーとして実行」を使用してPowerShellを起動すると、スクリプトを実行でき、スクリプトは正しく実行されます。 同じユーザーを使用してタスクをスケジュールすると、タスクは永久に実行状態のままになります。 タスクが行き詰まっている場所を知るにはどうすればよいですか? 参考までに、Exchangeを有効にする方法は次のとおりです。 . 'C:\Program Files\Microsoft\Exchange Server\V14\bin\RemoteExchange.ps1' Connect-ExchangeServer -auto そして、これが私がタスクスケジューラからスクリプトを実行しようとした方法です。 powershell -command "&{。 'c:\ windows \ script.ps1'}" powershell-ファイル 'c:\ windows \ script.ps1' powershell -file "c:\ windows \ script.ps1" すべて同じ結果になります。Grr ...

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.