次の方法で共有


WNetGetUserW 関数 (winnetwk.h)

WNetGetUser 関数は、現在の既定のユーザー名、またはネットワーク接続の確立に使用されるユーザー名を取得します。

構文

DWORD WNetGetUserW(
  [in]      LPCWSTR lpName,
  [out]     LPWSTR  lpUserName,
  [in, out] LPDWORD lpnLength
);

パラメーター

[in] lpName

ネットワーク リソースにリダイレクトされたローカル デバイスの名前、またはローカル デバイスをリダイレクトせずに接続が確立されたネットワーク リソースのリモート名を指定する、 null で終わる定数文字列へのポインター。

このパラメーターが NULL または空の文字列の場合、システムはプロセスの現在のユーザーの名前を返します。

[out] lpUserName

null で終わるユーザー名を受け取るバッファーへのポインター。

[in, out] lpnLength

lpUserName バッファーのサイズを文字数で指定する変数へのポインター。 バッファーが十分な大きさでないために呼び出しが失敗した場合、この変数には必要なバッファー サイズが含まれます。

戻り値

関数が成功した場合、戻り値はNO_ERROR。

関数が失敗した場合、戻り値はシステム エラー コード (次のいずれかの値など) になります。

リターン コード 説明
ERROR_NOT_CONNECTED
lpName パラメーターで指定されたデバイスは、リダイレクトされたデバイスまたは接続されたネットワーク名ではありません。
ERROR_MORE_DATA
以降の呼び出しでは、さらに多くのエントリを使用できます。
ERROR_NO_NETWORK
ネットワークが利用できません。
ERROR_EXTENDED_ERROR
ネットワーク固有のエラーが発生しました。 エラーの説明を取得するには、 WNetGetLastError 関数を呼び出します。
ERROR_NO_NET_OR_BAD_PATH
どのプロバイダーも、ローカル名が接続を持つものとして認識しません。 ただし、接続が属している可能性のある少なくとも 1 つのプロバイダーでは、ネットワークを使用できません。

注釈

WNetGetUser 関数は、分散ファイル システム (DFS) 上の共有を認識しません。 lpName パラメーターで指定された名前が、DFS 共有または DFS 共有を表すリモート リソースにリダイレクトされるローカル デバイスである場合、WNetGetUser 関数はERROR_NOT_CONNECTEDで失敗します。

次のコード サンプルは、 WNetGetUser 関数を使用して、リダイレクトされたローカル デバイスまたはリモート ネットワーク リソースに関連付けられているユーザーの名前を取得する方法を示しています。

#ifndef UNICODE
#define UNICODE
#endif
#pragma comment(lib, "mpr.lib")

#include <windows.h>
#include <tchar.h>
#include <stdio.h>
#include <Winnetwk.h>

int wmain(int argc, wchar_t * argv[])
{
    DWORD dwRetVal;

    WCHAR UserName[MAX_PATH];

    DWORD dwNameLength = MAX_PATH;

    if (argc != 2) {
        wprintf
            (L"Usage: %s [Redirected-LocalDevice or Network-Resource-Remote-name\n",
             argv[0]);
        exit(1);
    }

    wprintf(L"Calling WNetGetUser with Network-Resource = %s\n", argv[1]);

    dwRetVal = WNetGetUser(argv[1], UserName, &dwNameLength);
    //
    // If the call succeeds, print the user information.
    //
    if (dwRetVal == NO_ERROR) {

        wprintf(L"WNetGetUser returned success\n");
        wprintf(L"\tUsername=%s   NameLength=%d\n", &UserName, dwNameLength);
        exit(0);
    }

    else {
        wprintf(L"WNetGetUser failed with error: %u\n", dwRetVal);
        exit(1);
    }
}


注意

winnetwk.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして WNetGetUser を定義します。 エンコードに依存しないエイリアスをエンコードニュートラルでないコードと組み合わせて使用すると、コンパイルまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
対象プラットフォーム Windows
ヘッダー winnetwk.h
Library Mpr.lib
[DLL] Mpr.dll

こちらもご覧ください

ユーザー名の取得

WNetGetConnection

Windows ネットワーク (WNet) の概要

Windows ネットワーク関数