Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Program Windows PowerShell udostępnia prosty mechanizm łączenia się z instrumentacją zarządzania Windows (WMI) na komputerze zdalnym. Na połączenia zdalne w usłudze WMI mają wpływ Zapora systemu Windows, ustawienia DCOM i Kontrola konta użytkownika (UAC). Aby uzyskać więcej informacji na temat konfigurowania połączeń zdalnych, zobacz Connecting to WMI Remotely Starting with Windows Vista.
Przykłady w tym temacie są oparte na skryptach VBScript z Nawiązywanie połączenia z usługą WMI na komputerze zdalnym. Wszystkie przykłady w tym temacie używają polecenia cmdlet Get-WmiObject. Aby uzyskać więcej informacji, zobacz Get-WmiObject.
Przykłady programu Windows PowerShell
Podczas tworzenia połączenia z komputerem zdalnym użytkownik może określić informacje o połączeniu, takie jak nazwa komputera zdalnego, poświadczenia i poziom uwierzytelniania dla połączenia. W poniższych przykładach pokazano, jak nawiązać połączenie z komputerem zdalnym przy użyciu różnych zestawów poświadczeń i jak uzyskać dostęp do informacji usługi WMI.
Poniższy przykład programu Windows PowerShell przedstawia ustawienie poziomu personifikacji:
Get-WmiObject -Namespace "root\cimv2" -Class Win32_Process -Impersonation 3 -ComputerName Computer_B
W poprzednim przykładzie użytkownik łączy się z komputerem zdalnym przy użyciu tych samych poświadczeń (domeny i nazwy użytkownika), za pomocą których się zalogował. Użytkownik zażądał również użycia personifikacji. W przeciwieństwie do oryginalnego przykładu języka VBScript ciąg moniker nie jest wymagany, ponieważ poziom personifikacji jest ustawiany przez właściwość "Personifikacja". Domyślnie poziom personifikacji jest ustawiony na 3 (Personifikuj).
W przykładzie wymieniono wszystkie wystąpienia klasy Win32_Process uruchomionej na komputerze zdalnym.
Notatka
Należy określić przestrzeń nazw usługi WMI, z którą ma nawiązać połączenie na komputerze zdalnym, ponieważ może się zdarzyć, że domyślna przestrzeń nazw nie jest taka sama na różnych komputerach.
W poniższym przykładzie programu Windows PowerShell pokazano, jak nawiązać połączenie z komputerem zdalnym, używając różnych poświadczeń, i ustawić poziom podszywania na 3, czyli Impersonate.
$Computer = "atl-dc-01"
Get-WmiObject -Namespace "root\cimv2" -Class Win32_Process -Impersonation 3 -Credential `
FABRIKAM\administrator -ComputerName $Computer
W poprzednim przykładzie nazwa komputera została przypisana do zmiennej $Computer. Użytkownik łączy się z komputerem zdalnym przy użyciu określonych poświadczeń (domeny i nazwy użytkownika) i żąda personifikacji poziomu uwierzytelniania.
Notatka
Znak akcentu grobowego (`) służy do oznaczania podziału wiersza. Jest on odpowiednikiem znaku podkreślenia (_) w języku VBScript.
Poniższy przykład programu Windows PowerShell łączy się z grupą komputerów zdalnych w tej samej domenie, tworząc tablicę nazw komputerów zdalnych, a następnie wyświetlając nazwy urządzeń Plug and Play — wystąpienia Win32_PnPEntity— na każdym komputerze:
$ArrComputers = "Computer1", "Computer2", "Computer3"
foreach ($Computer in $ArrComputers)
{
write-host ""
write-host "===================================="
write-host "Computer: $Computer"
write-host "===================================="
write-host "-----------------------------------"
write-host "Win32_PnPEntity instance"
write-host "-----------------------------------"
$ColItems = Get-WmiObject -Class Win32_PnPEntity -Namespace "root\cimv2" -Computer $Computer
$ColItems[0..47] | Format-List Name, Status
}
Notatka
Aby uruchomić poprzedni skrypt programu Windows PowerShell, musisz być administratorem na komputerach zdalnych. Ponadto, odnosząc się do poprzedniego przykładu, zwróć uwagę na następujące kwestie:
- Nazwy komputerów w tablicy muszą być ujęte w znaki cudzysłowu, ponieważ są to ciągi.
- Obiekty zwrócone przez Get-WmiObject są przypisywane do zmiennej $ColItems.
- Operator zakresu [] ograniczył listę urządzeń Plug and Play do 48 wystąpień. Aby uzyskać więcej informacji, zobacz About_Operators.
- Znak "|" jest znakiem potoku. Obiekt zwrócony przez ColItems jest wysyłany do polecenia cmdlet Format-List.
Poniższy przykład programu Windows PowerShell umożliwia nawiązanie połączenia z komputerem zdalnym w innej domenie. W tym przykładzie przedstawiono również nazwy procesów dla wystąpień Win32_Process na komputerze zdalnym.
$Computer = "FullComputerName"
$Domain = "DOMAIN"
$Credential = Get-Credential
$ColItems = Get-WmiObject -Class Win32_Process -Authority "ntlmdomain:$Domain" `
-Credential $Credential -Locale "MS_409" -Namespace "root\cimv2" -ComputerName $Computer
foreach ($ObjItem in $colItems)
{
write-host "Process Name:" $ObjItem.name
}
Nota
Aby uruchomić poprzedni skrypt programu Windows PowerShell, musisz być administratorem na komputerze zdalnym.
W poprzednim przykładzie użytkownik łączy się z komputerem zdalnym w innej domenie i określa preferowane ustawienia regionalne. Polecenie Get-Credential żąda poświadczeń użytkownika i przypisuje poświadczenia do obiektu. W przykładzie wymieniono również nazwy wystąpień klasy Win32_Process uruchomionej na komputerze.
Tematy pokrewne