Как получить IP-адрес для Вашего Соединения Местности на Windows Server?

Во-первых, пароль скрыт, и количество 'точек' не представляет количество символов от старого пароля.

во-вторых, когда пользовательская дистанционная работа в должна ввести их имя пользователя, это предполагает, что Вы НЕ используете аутентификацию Windows, но аутентификацию SQL Server. Это означает, что необходимо будет создать пользователей SQL Server и установить сервер для разрешения Смешанной аутентификации (и автор Windows и автор SQL-сервера).

Если u нуждаются в помощи с

  1. создание тестовой учетной записи пользователя SQL Server
  2. установка SQL-сервера для разрешения смешанной аутентификации

просто спросите далеко в комментариях.

Править

Эта информация относится ко всей версии SQL-сервера, насколько я верю

4
задан 9 April 2011 в 05:40
6 ответов

Вот некоторый код кода, который я использовал в предыдущем сценарии...

Dim myIPAddress : myIPAddress = ""
Dim objWMIService : Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
Dim colAdapters : Set colAdapters = objWMIService.ExecQuery("Select IPAddress from Win32_NetworkAdapterConfiguration Where IPEnabled = True")
Dim objAdapter
For Each objAdapter in colAdapters
  If Not IsNull(objAdapter.IPAddress) Then myIPAddress = trim(objAdapter.IPAddress(0))
  exit for
Next

Wscript.echo "My IPAddress is " & myIPAddress
5
ответ дан 3 December 2019 в 02:41
  • 1
    Спасибо! Я получаю ошибку периода выполнения: Объектный Необходимый ' idLocalIPAddress'. Затем я добавил строку Тусклый idLocalIPAddress, и теперь я получаю ошибку периода выполнения: Объект потребовал: ' '. Какие-либо комментарии? –  Geo 31 July 2009 в 18:39
  • 2
    С Опцией Explict устанавливает Вас, должен будет гарантировать Тусклое для каждой переменной... для моего примера, я просто дал Вам быстрое и грязное, оставив его до Вас для добавления операторов Dim... Для продвижения через vbscript, можно запустить сценарий с WSCRIPT.EXE//X scriptname.vbs, и он запустит Своевременный отладчик, позволяя Вам ступить через Ваш код в Visual Studio. Надо надеяться, ступая через Ваш код можно точно определить причину отказа. –  Dscoduc 31 July 2009 в 18:53

Если Вы хотите возвратить IP-адрес в переменную, Вы могли бы сделать следующее:

Const wbemFlagReturnImmediately = &h10
Const wbemFlagForwardOnly = &h20
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_NetworkAdapterConfiguration WHERE IPEnabled='TRUE'", "WQL", wbemFlagReturnImmediately + wbemFlagForwardOnly)
For Each objItem In colItems
            strIPAddress = Join(objItem.IPAddress, ",")
            *yourFunctionName*(strIPAddress)
Next

Этот код взят прямо от Scriptomatic v2.0 от TechNet Scriptcenter Microsoft. Найденный здесь: http://technet.microsoft.com/en-us/scriptcenter/dd939957.aspx

2
ответ дан 3 December 2019 в 02:41

Вот способ извлечь результаты WMIC в переменную в cmd сценарии:

@echo off
setlocal
set varcounter=0
set wmicmd="wmic NICCONFIG WHERE IPEnabled=true GET IPAddress"
for /f "tokens=1 delims={, skip=1" %%a in ('%wmicmd%') do call :SETVAR %%a
endlocal
goto :eof

:SETVAR
set /a varcounter=%varcounter% + 1
if not {%1}=={} (
    echo NIC %varcounter% address is {%1}
    set NIC%varcounter%=%1
)
goto :eof

Заметьте, что с тех пор может быть несколько NICs, мы должны циклично выполниться через вывод WMIC, который выполняется путем вызова: SETVAR для каждой строки вывода WMIC (пропускающий первый, тем не менее, и тестирующий на любые строки запаздывания пробела. Переменная создается для каждого, включил найденный NIC - переменные будут %NIC1%, %NIC2%, и т.д.

Строка 12, начиная с "эха NIC", может быть удален, после того как у Вас есть он работающий к Вашей удовлетворенности.

1
ответ дан 3 December 2019 в 02:41

Я знаю, что вы просили скрипт в стиле VBS или пакетной обработки, но я подумал, что добавлю и фрагмент PowerShell, если вы хотите чтобы попробовать этот маршрут или для кого-то еще, интересующегося этим вопросом ...

[System.Net.Dns]::GetHostAddresses([System.Net.Dns]::GetHostName()) | foreach {write $_.IPAddressToString}

Это вернет все IP-адреса, назначенные на данный момент машине.

0
ответ дан 3 December 2019 в 02:41

Вы знаете, чтобы сделать это ДЕЙСТВИТЕЛЬНО полезным, я добавил / node:% 1 (чтобы получить IP-адрес удаленного компьютера) Избавляет системных администраторов и сетевых администраторов от работы по сравнению с ping или nslookup. Я уверен, что еще я добавлю «проверку ошибок», чтобы, если система окажется недоступной, сценарий может «записать эту информацию» - например, Система% 1 недоступна - и затем перейду к получению IP следующей системы.

Часто я делаю «летучая мышь», чтобы «вызвать летучую мышь» Итак, я бы просто создал командный файл, например, "getall.bat" ниже:

Затем просто запустите его следующим образом: getall> getall-log.txt 2> & 1

(Выше будут выведены все информация в текстовый файл, включая любые обнаруженные ошибки)

getall.bat

rem getall.bat
call getnic.bat workstation1
call getnic.bat workstation2
call getnic.bat server1
call getnic.bat server2
rem end of getall.bat

getnic.bat

rem - getnic.bat
@echo off
setlocal
set varcounter=0
set wmicmd="wmic /node:%1 NICCONFIG WHERE IPEnabled=true GET IPAddress"
for /f "tokens=1 delims={, skip=1" %%a in ('%wmicmd%') do call :SETVAR %%a
endlocal
goto :eof

:SETVAR
set /a varcounter=%varcounter% + 1
if not {%1}=={} (
    echo NIC %varcounter% address is {%1}
    set NIC%varcounter%=%1
)
goto :eof
rem end of getnic.bat
1
ответ дан 3 December 2019 в 02:41

Преобразовано для IPv6

@echo off
setlocal
set varcounter=0
set wmicmd="wmic NICCONFIG WHERE IPEnabled=true GET IPAddress"
for /f "tokens=2 delims={, skip=1" %%a in ('%wmicmd%') do call :SETVAR %%a
endlocal
goto :eof

:SETVAR
set /a varcounter=%varcounter% + 1
if not {%1}=={} (
    echo NIC %varcounter% IPv6 address is {%1}
    set NIC%varcounter%=%1
)
goto :eof
1
ответ дан 3 December 2019 в 02:41

Теги

Похожие вопросы