PB 電子会議室
発言No. | 更新日 | 題名(クリックすると発言内容と関連するコメントが表示されます) |
---|---|---|
21737 | 05/02/01 16:07:16 | RE(4):PB9.0:フォルダのアクセス権限取得方法について By AzureRX-7 |
21717 | 05/01/24 20:19:54 | RE(3):PB9.0:フォルダのアクセス権限取得方法について By Chicchi |
21715 | 05/01/24 16:05:05 | RE(2):PB9.0:フォルダのアクセス権限取得方法について By AzureRX-7 |
21714 | 05/01/24 14:50:27 | RE(1):PB9.0:フォルダのアクセス権限取得方法について By Chicchi |
21713 | 05/01/24 11:32:00 | PB9.0:フォルダのアクセス権限取得方法について By AzureRX-7 |
カテゴリ:スクリプトの記述
日付:2005年02月01日 16:07 発信者:AzureRX-7
題名:RE(4):PB9.0:フォルダのアクセス権限取得方法について
Chicchiさん、こんにちは。
>使ったことがないので無責任な発言ですが、GetFileSecurity (Win32API) が該当するのではないでしょう
か。
>
Chicchiさん、ありがとうございます。
教えていただいた関数で色々試していてお礼が遅くなりました。
ただ、セキュリティ記述子は取得できたと思われるのですが、
[GetSecurityDescriptorOwner]を使用して所有者IDを取得すると
エラーコード=1305(ERROR_UNKNOWN_REVISION)が返却されIDの取得が出来ません。
以下に記述したスクリプトを載せますが、どこが間違っているのでしょうか?
○API定義
function long GetFileSecurity(string lpFileName, long RequestedInformation,
ref long pSecurityDescriptor, long nLength, ref long lpnLengthNeeded)
LIBRARY \"advapi32.dll\" alias for \"GetFileSecurityA\"
function long GetSecurityDescriptorOwner(long pSecurityDescriptor, ref long pOwner,
ref long lpbOwnerDefaulted) library \"advapi32.dll\"
○constant定義
constant long OWNER_SECURITY_INFORMATION = 1
○スクリプト
long lpsd
long lngSdLength
long lpsid
long lowndef
//必要なSD(セキュリティ記述子)サイズ取得
setnull(lpsd)
If GetFileSecurity(sDir, OWNER_SECURITY_INFORMATION, lpsd, 0, lngSdLength) = 0 Then
If GetLastError() <> ERROR_INSUFFICIENT_BUFFER Then
return -1
End If
End If
//必要なSD(セキュリティ記述子)サイズ確保
lpsd = GlobalAlloc(GMEM_FIXED, lngSdLength)
//必要なSD(セキュリティ記述子)取得
If GetFileSecurity(sDir, OWNER_SECURITY_INFORMATION, lpsd, lngSdLength, lngSdLength) = 0 Then
return -1
end if
//所有者SIDの取得
if GetSecurityDescriptorOwner(lpsd, lpsid, lowndef) = 0 then
return -1
end if
付加情報:
PowerBuilder Version (記載なし)
Client SoftWare
OS (記載なし)
DBMS (記載なし)
Browser (記載なし)
Server SoftWare
OS (記載なし)
DBMS (記載なし)
WebServer (記載なし)
Copyright © 2013 Power Future Co., Ltd.