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 コマンドレットに完全に切り替えようとしているだけです