web-dev-qa-db-ja.com

ICACLSでSIDを削除する

廃止されたSIDを削除しようとしています(アカウントが削除されたようです)。

サーバー(win2003)とクライアント(win7)で以下を実行しようとしました。

icacls c:\path /remove *S-1-5-21-1883347182-1220252494-433279356-1095 /T

しかし、私は常に出力を取得します

Successfully processed 0 files; Failed processing 0 files

何もせずに。どうすればそれを機能させることができますか?

更新:

AccessEnum を使用してSIDを取得しました。これは、icaclsが「アカウント名とセキュリティIDの間のマッピングが行われなかった」としか表示しないためです。しかし、sidは表示されません。

AccessEnumからの出力は次のとおりです。

"Path"  "Read"  "Write" "Deny"  
"c:\path"   "Administrators, S-1-5-21-1883347182-1220252494-433279356-1095, ..."    "Administrators, S-1-5-21-1883347182-1220252494-433279356-1095, ..."    ""  
3
laktak

別の人への私の提案 同様の質問

「おそらくあなたはSUBINACLを探しています。それをダウンロードしてください ここ

subinacl.exe/help/cleandeletedsidsfromは以下を提供します:

/ cleandeletedsidsfrom = domain [= dacl | sacl | owner | primarygroup | all]

domainNameから削除された(無効な)Sidを含むすべてのACEを削除します。セキュリティ記述子のどの部分をスキャンするかを指定できます(デフォルト=すべて)所有者が削除された場合、新しい所有者はAdministratorsグループになります。プライマリグループが削除されると、新しいプライマリグループはユーザーグループになります。これは/ fileまたは/ shareまたは/ subdirectoriesで使用できるようです必要に応じて

1
Jordan W.

icaclsの_/save_および_/restore_関数を使用する最もポータブルで実際に最も簡単な方法を見つけました。

_icacls C:\ /save D:\creds.txt /T
_

次に、Vimまたはその他の_gred/sed/awk_と同等のファイルを操作します。これにより、SIDを削除したり、SIDを置き換えたりすることができます。ファイルの処理が終了したら、

_icacls C:\ /restore D:\creds.new.txt /T
_

そのこと。他のプログラムをダウンロードする必要はありません。さらに別の非標準のコマンドライン構文を学ぶ必要はありません。ダミーファイルを作成し、GUIなどを使用してACLを希望どおりに作成し、_/save_を使用して結果のACE文字列がどのように表示されるかを確認し、そのACE文字列をコピーして_creds.new.txt_。

1
kizzx2

SetACL :で簡単に行うことができます。

SetACL -on C:\Path -ot file -actn trustee -trst 
       "n1:S-1-5-21-1883347182-1220252494-433279356-1095;s1:y;ta:remtrst;w:dacl"
1
Helge Klein