0

CIM セッションを使用して接続しているリモート コンピューターのローカル管理者アカウントをロックしようとしています。

$CIMSession = New-CimSession -ComputerName ComputerOne -ErrorAction Stop
$adminCheck = Get-CimInstance -Query "SELECT * FROM Win32_UserAccount WHERE Name='AdminAccount'" -CimSession $CIMSession

そのオブジェクトで使用可能なすべての CIM クラス メソッドを列挙すると、次の 1 つだけが表示されます。

PS C:\windows\system32> $adminCheck.CimClass.CimClassMethods

Name   ReturnType Parameters Qualifiers                   
----   ---------- ---------- ----------                   
Rename     UInt32 {Name}     {Implemented, MappingStrings}

...これは、一部のメソッドが完全に表示されていないことが原因であると考えられますか? で設定してみInvoke-CimMethodました。

  • $adminCheck | Invoke-CimMethod -MethodName Put -Arguments Lockout,$true

    • これは機能しませんが、エラーも発生するため、構文的に正しくないと思います。

試してみました: $adminCheck.LockOut = $true、試してみただけで、驚くことではありませんが、どちらも機能しません。インスタンスは私のコンピューターで参照されているだけなので、これは理にかなっています。

だから、私の最後の試みで私は試しました:

$adminCheck | Set-CimInstance -Property @{Lockout=$true}
# and
$adminCheck | Set-CimInstance -Property @{Lockout=$true} -CimSession $CIMSession

これもうまくいきませんでした。

質問: その CIM インスタンス プロパティの新しく変更された値を保存する方法はありませんか?

Get-WMIObjectこれは、メソッドを使用して保存することでプロパティを設定できる古いコマンドレットに基づいています.put()

Get-WmiObject -Class Win32_UserAccount -ComputerName ComputerOne -Filter "Name='AdminAccount'" | 
    ForEach-Object -Process {
        $_.Lockout = $true;
        $_.put()
    }

新しい CIM コマンドレットに完全に切り替えようとしているだけです

4

0 に答える 0