問題タブ [advapi32]
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.
c# - LsaAddAccountRightsがSTATUS_INVALID_PARAMETERを返すのはなぜですか?
アンマネージDLL(advapi32)を実装するC#ソースコードを次に示します。
実行時の変数値は次のとおりです。
キャッチされると、Win32Exception内のメッセージは次のようになります。「パラメータが正しくありません」
コードはWindowsWebServer 2008で実行されています。アカウントが存在することを確認でき、このコードは別のサーバーで正常に機能します...これがWindows2008SP2が原因である可能性があるかどうかはわかりません。何かをインストールするのを忘れたと思っているのですが、なにかわからない…
コードは次のとおりです:http ://weblogs.asp.net/avnerk/archive/2007/05/10/granting-user-rights-in-c.aspx
winapi - ReportEvent関数の使用例はどこにありますか?
ほとんどの「レガシー」MSDNページと同様に、ReportEventのページには情報が少なすぎて、理解できません。検索してみましたが、関数の使用法の良い、きれいな、簡単な例を見つけることができません。誰かが提案できますか?
c# - Windows 2008 でのプログラムによるローミング ユーザー プロファイルの作成
問題:
ローミング ユーザーの LoadUserProfile API を介したログオンおよびロード プロファイルでは、適切なプロファイルが作成されません。これは、Windows 2008 (UAC のオフとオン) でのみ発生します。標準の Windows ログオンを使用したログインは正しく機能し、Windows 2003 でも同じコードが正しく機能します。
ログ:
- http://drop.io/6t2b3f3 コマンドで作成されたユーザー プロファイル サービスの ETL: logman -start profile -p {eb7428f5-ab1f-4322-a4cc-1f1a9b2c5e98} 255 3 –ets ファイルは、アクセス権を持つ誰かによって分析される必要があります。ソースとうまくいけば、プロファイルが常に一時的に読み込まれる理由が明らかになるでしょう。
環境:
- Windows 2008 モードのドメイン/フォレスト
- サーバー fs001 - Windows 2008 Standard SP2 x86 ボックス
- 共有と ntfs を完全に制御できる Everyone+SYSTEM との fs001「共有」のファイル共有。
再現するには:
- ローミング プロファイルを \fs001\Share\tuser1\profile に設定して、ドメイン ユーザー tuser1 を作成します。
- fs001 で任意のドメイン管理者およびローカル管理者アカウントとしてこのプログラムを実行します (UAC が管理者として実行されている場合)。一時的なユーザー プロファイルは、c:\users\tuser1 ではなく c:\users\temp* に読み込まれます。
ETL はおそらくここに行くための最良の方法であり、最も迅速な診断を提供します。ユーザー プロファイル サービス svchost インスタンスの Procmon とシステム レベルでのログオンのトレースでは、何が問題なのかについてあまり明らかになりませんでした (必要に応じてさらに情報を提供できますが、行き止まりです)。Windows 2003 の userenv.log は役に立ちましたが、ETL を分析できるのは MSFT の誰かだけです。
何か案は?
ありがとう、アレックス
}
c# - C# から advapi32 の LsaEnumerateAccountRights() を呼び出すことに成功しました。返される LSA_UNICODE_STRING の配列を非整列化するにはどうすればよいですか?
LSA_UNICODE_STRING
これは、構造体の配列へのポインターです。逆の処理を行うコード、つまりLSA_UNICODE_STRING
C# 文字列から を作成するコードを見つけました。これは、以下のヘルパー コード セクションで確認できます。
への呼び出しを含め、私が今まで持っていることはLsaEnumerateAccountRights()
うまくいくようです。配列ポインタとカウントに対して適切な値が返されます。
あの吹き飛ばされた弦をどうやって手に入れるか途方に暮れています。助けてください?かなりお願いしますか?
更新:以下の彼の回答にある nobugz のヘルパー関数はほぼ正しいです。長さを で割るだけですUnicodeEncoding.CharSize
。彼のおかげで、配列の FIRST 文字列が見えるようになりました。以下の両方のコード セクションの最後にある更新を参照してください。
さて、冥界ではどうやってポインタ演算をするのでしょうか?
更新 2.5:機能するコードについては回答を参照してください。古い「間違った」コードを失いました。
c# - 別のユーザーになりすます方法は?
私は ASP.net アプリに取り組んでおり、ユーザーになりすまそうとしています
トークンを使用して windowsIdentity を作成しています
このトークンは、アンマネージ コードを呼び出すことによって取得されました
この advapi32.dll アンマネージ コードを使用せずにトークンを取得する他の方法はありますか?
tks
c# - C# から AuditQuerySystemPolicy() (advapi32.dll) を呼び出すと、「パラメーターが正しくありません」が返されます
シーケンスは次のようになります。
- ポリシー ハンドルを開きます
LsaOpenPolicy()
(表示されていません) 。 LsaQueryInformationPolicy()
カテゴリの数を取得するために呼び出します。- 各カテゴリについて:
- 列挙値を GUID に変換するために呼び出し
AuditLookupCategoryGuidFromCategoryId()
ます。 AuditEnumerateSubCategories()
すべてのサブカテゴリの GUID のリストを取得するために呼び出します。AuditQuerySystemPolicy()
サブカテゴリの監査ポリシーを取得するために呼び出します。
- 列挙値を GUID に変換するために呼び出し
これらはすべて機能し、最後のものを除いて、期待される適切な値を返します。呼び出すAuditQuerySystemPolicy()
と、「パラメーターが正しくありません」というエラーが表示されます。微妙なアンマーシャリングの問題があるに違いないと思います。私はおそらく正確に何がAuditEnumerateSubCategories()
返されるかを誤解していますが、困惑しています。
ご覧のとおり (コメント済み) リターン ポインターをポインターとして逆参照しようとしAuditEnumerateSubCategories()
ました。それをしてもしなくても同じ結果になります。
コード:
c++ - この (C/C++) プログラムは何をしているのですか?
これらのパラメーターを使用して、これらの API 関数 (advapi32.dll) を呼び出しています。
それがどうなるかわからない
誰にもアイデアはありますか?
c# - RevertToSelf()とは何ですか?-C#.net
RevertToSelf()
.netアプリケーションで何ができるのかわかりません。MSDN定義を確認すると、定義が次のように読み取られます。
では、現在のユーザーコンテキストは、クライアントのコンテキストを停止することによってsysadminコンテキストに変更されますか?RevertToSelf()を呼び出すことにより、コードはシステム管理者モードで実行されますか?
アップデート
では、ASP.NETアプリケーションでRevertToSelf()を呼び出すとどうなりますか?なりすましを開始しないと考えてみましょう。したがって、RevertToSelf()を呼び出すと、アプリケーションプールIDに戻りますか?
python - このセキュリティ記述子を悪くしている原因は何ですか?
このコードを使用して、Windows でファイルとディレクトリへのアクセスを読み取ろうとしています ( Tim Golden が提案した os.access へのパッチを模倣して、Windows の ACL から読み取るようにします):
ただし、これを実行するたびに、次のようになります。
SecurityDescriptor を AccessCheck に渡すにはどうすればよいですか?
編集: DACL_SECURITY_INFORMATION を DACL_SECURITY_INFORMATION に変更 | GROUP_SECURITY_INFORMATION | OWNER_SECURITY_INFORMATION は私にこれを与えます: