Udostępnij za pośrednictwem


Konstruowanie ciągu znakowego Moniker

Format ciągu moniker jest podobny do standardowej ścieżki obiektu WMI. Aby uzyskać więcej informacji, zobacz Wymagania dotyczące ścieżki obiektu WMI .

Moniker ma następujące części:

  • Prefiks WinMgmts: (obowiązkowy). Prefiks instruuje hosta skryptów systemu Windows (WSH), że poniższy kod będzie używał obiektów interfejsu API skryptów .
  • Składnik ustawień zabezpieczeń (opcjonalnie)
  • Składnik ścieżki obiektu WMI (opcjonalnie)

Nie można określić hasła w ciągu identyfikatora WMI. Jeśli podczas nawiązywania połączenia z usługą WMI należy zmienić hasło (parametr strPassword) lub typ uwierzytelniania (parametr strAuthority), a następnie wywołać SWbemLocator.ConnectServer. Należy pamiętać, że hasło i uprawnienia można określić tylko w połączeniach z komputerami zdalnymi. Próba ustawienia ich w skrypcie uruchamianym na komputerze lokalnym powoduje wystąpienie błędu. Aby uzyskać więcej informacji o tym, kiedy używane są ustawienia zabezpieczeń i składniki ścieżki obiektu, zobacz Ustawienia zabezpieczeń usługi WMI.

Poniższy moniker określa obiekt SWbemServices, który reprezentuje przestrzeń nazw root\default, z włączoną personifikacją oraz uprawnieniami wbemPrivilegeDebug (SeDebugPrivilege) włączonymi, a uprawnieniami wbemPrivilegeSecurity (SeSecurityPrivilege) wyłączonymi.

"winmgmts:{impersonationLevel=impersonate," & "(debug,!security)}!root\default"

Notatka

Wszystkie literały ciągu są niewrażliwe na wielkość liter.

Prefiks "!" dla uprawnienia wskazuje, że uprawnienie ma być wyłączone; pominięcie tego prefiksu oznacza, że uprawnienie ma zostać włączone.

Prefiks "!" jest używany w nazwie komputera lub przestrzeni nazw, gdy ustawienia zabezpieczeń są określone w nawiasach przed nazwą komputera lub przestrzenią nazw.

 

Podczas określania ścieżki obiektu dozwolone są następujące przypisania domyślne:

  • Nazwę komputera można pominąć z ścieżki obiektu, przyjmuje się, że dotyczy komputera lokalnego.

  • Przestrzeń nazw można pominąć w ścieżce obiektu, w takim przypadku zakłada się domyślną przestrzeń nazw.

    Jest to określane przez wartość klucza rejestru HKEY_LOCAL_MACHINE\Software\Microsoft\WBEM\Scripting\Domyślna przestrzeń nazw, wartość domyślna to "Root\CIMv2".

  • Można również określić klasę lub wystąpienie, w tym przypadku zwracany obiekt jest obiektem WMI, a nie obiektem usług.

Notatka

Jeśli określono klasę lub wystąpienie, nie można pominąć przestrzeni nazw podczas określania nazwy komputera.

 

Aby zapoznać się z odnośnikiem do stałych uprawnień używanych w ciągu monikera WMI, zobacz Privilege Constantsi deskryptory "Skrócona Nazwa Skryptu".

Prawidłowe ciągi znaków moniker

Poniższe przykłady pokazują prawidłowe ciągi znaków moniker.

Poniższy pseudonim identyfikuje domyślną przestrzeń nazw na komputerze lokalnym. Zwracany jest obiekt SWbemServices.

WinMgmts:

Poniższy pseudonim identyfikuje domyślną przestrzeń nazw na komputerze myServer. Zwracany jest obiekt SWbemServices.

"WinMgmts://myServer"

Poniższy pseudonim identyfikuje przestrzeń nazw root\cimv2 na komputerze myServer. Zwracany jest obiekt SWbemServices.

"WinMgmts://myServer/root/cimv2"

Poniższy pseudonim identyfikuje przestrzeń nazw root\cimv2 na serwerze lokalnym. Zwracany jest obiekt SWbemServices.

"WinMgmts:root/cimv2"

Poniższy moniker identyfikuje klasę Win32_LogicalDisk w przestrzeni nazw root\cimv2 na serwerze myServer. Zwracany jest obiekt SWbemObject.

"WinMgmts:{impersonationLevel=impersonate}" _
    & "!//myServer/root/cimv2:Win32_LogicalDisk"

Poniższy pseudonim identyfikuje klasę Win32_LogicalDisk w przestrzeni nazw root\cimv2 na serwerze lokalnym. Zwracany jest obiekt SWbemObject.

"WinMgmts:{impersonationLevel=impersonate}" & "!root/cimv2:Win32_LogicalDisk"

Poniższy pseudonim identyfikuje klasę Win32_LogicalDisk w domyślnej przestrzeni nazw na serwerze lokalnym. Zwracany jest obiekt SWbemObject.

"WinMgmts:{impersonationLevel=impersonate}" & "!Win32_LogicalDisk"

Poniższy pseudonim identyfikuje wystąpienie Win32_LogicalDisk odpowiadające dyskowi C: w domyślnej przestrzeni nazw skryptów na serwerze lokalnym. Zwracany jest obiekt SWbemObject. Domyślna przestrzeń nazw skryptów jest określana przez domyślne ustawienie konfiguracji przestrzeni nazw, jak określono w kontrolce usługi WMI. Aby uzyskać więcej informacji, zobacz Ustawianie zabezpieczeń przestrzeni nazw za pomocą kontrolera WMI.

"WinMgmts::Win32_LogicalDisk='C:'"

Poniższy moniker identyfikuje wystąpienie Win32_LogicalDisk odpowiadające dyskowi C: w przestrzeni nazw root\cimv2 na serwerze myServer. Zwracany jest obiekt SWbemObject.

"WinMgmts:{impersonationLevel=impersonate}" & "!//myServer/root/cimv2:Win32_LogicalDisk="C:""

Poniższy moniker identyfikuje wystąpienie Win32_LogicalDisk odpowiadające dyskowi C: w przestrzeni nazw root\cimv2 na serwerze lokalnym. Zwracany jest obiekt SWbemObject.

"WinMgmts:{impersonationLevel=impersonate}" & "!root/cimv2:Win32_LogicalDisk="C:""

Poniższy pseudonim identyfikuje wystąpienie Win32_LogicalDisk odpowiadające dyskowi C: w domyślnej przestrzeni nazw na serwerze lokalnym. Zwracany jest obiekt SWbemObject.

"WinMgmts:{impersonationLevel=impersonate}" & "!Win32_LogicalDisk="C:""

Poniższy moniker ustawia poziom personifikacji na imitację i ustawia przywilej SE_DEBUG.

"WinMgmts:{impersonationLevel=impersonate, (Debug)}"

Poniższy moniker ustawia poziom naśladowania oraz uprawnienia SE_DEBUG. Odwołuje również przywileje SE_SHUTDOWN.

"WinMgmts:{impersonate,(Debug,!Shutdown)}"

Poniższy moniker pobiera amerykańskie angielskie zlokalizowane opisy dla myclass klasy z przestrzeni nazw root\wmi.

"WinMgmts:[locale=ms_409]!root/wmi:myclass"

Poniższy moniker żąda uwierzytelniania Kerberos przy użyciu głównego zasadnika mydomain\server.

"Winmgmts:{impersonationLevel=delegate," _
    & "authority=kerberos:mydomain\server}" _
    & "!//myserver/root/default:__cimomidentification=@"

Poniższy pseudonim żąda uwierzytelniania NTLM przy użyciu domeny mydomain.

"Winmgmts:{impersonationLevel=impersonate," & _
    "authority=ntlmdomain:mydomain} " & _
    "!//myserver/root/default:__cimomidentification=@

Poniższy przykład kodu VBScript pokazuje, jak połączyć parametry zabezpieczeń i ustawień regionalnych w moniker.

'*****************************************************************
'   Name    :  Moniker.vbs
'
'   Purpose :  This example shows how to set various 
'              parameters in a moniker. 
'****************************************************************

Set myobj = GetObject("WINMGMTS:" _
            & "{impersonationLevel=impersonate," _
            & "authenticationLevel=pktPrivacy," _
            & "authority=ntlmdomain:mydomain," _
            & "(Debug,!Shutdown)}" _
            & "[locale=ms_409]" _
            & "!\\User1\ROOT\CIMV2:Win32_LogicalDisk=""C:""")

wscript.echo "File system = " & myobj.filesystem

Notatka

Mimo że monikery zapewniają bardziej bezpośredni dostęp do obiektów, w pewnych okolicznościach wielokrotne użycie monikerów może być mniej wydajne niż równoważny kod, który bezpośrednio łączy się z WMI. Jeśli wydajność aplikacji jest kwestią, rozważ użycie alternatywnych mechanizmów.

Nie można użyć funkcji GetObject dostarczonej przez vbScript do aktualizowania lub ustawiania danych podczas uruchamiania skryptów osadzonych na stronie HTML, ponieważ program Microsoft Internet Explorer odmawia użycia tego wywołania ze względów bezpieczeństwa.