Невозможно привязать аргумент к параметру IPAddress, потому что это пустая строка - PullRequest
0 голосов
/ 09 июля 2020

Я пытаюсь использовать эту команду PS, чтобы установить IP-адрес V4 для моей виртуальной машины

   $IPDNS1  = 192.168.10.10
    $DGMAINOFFICE = 192.168.10.254

    New-NetIPAddress –InterfaceAlias “ethernet” -IPAddress $IPDNS1 –PrefixLength 24 -DefaultGateway 
    $DGMAINOFFICE

, но я получаю эту ошибку сообщения

Cannot bind argument to parameter 'IPAddress' because it is an empty string.

1 Ответ

0 голосов
/ 09 июля 2020

Основываясь на моем первоначальном комментарии, замена умных кавычек на бессмысленные кавычки и определение типа переменной :

$IPDNS1 = [IPAddress] "192.168.10.10"
$DGMAINOFFICE = [IPAddress] "192.168.10.254"
New-NetIPAddress –InterfaceAlias "ethernet" -IPAddress $IPDNS1 –PrefixLength 24 -DefaultGateway $DGMAINOFFICE

Вы заявили, что это не сработало, поэтому давайте попробуем определить почему!

Откройте приглашение PowerShell и посмотрите справочную информацию для команды Get-Help New-NetIPAddress, вы должны увидеть типы данных, которые ваша команда ожидает получить. [-IPAddress] <String> и [-DefaultGateway <String>]. Итак, давайте посмотрим, для какого типа он был определен. Введите и введите следующее $IPDNS1 = [IPAddress] "192.168.10.10", а затем выполните следующую команду $IPDNS1.GetType().Name. Вы должны увидеть, что определенный тип - IPAddress, а не String, поэтому давайте попробуем исправить это:

Введите и введите следующий $IPDNS1 = [String] "192.168.10.10", а затем выполните следующую команду $IPDNS1.GetType().Name. Вы должны увидеть, что определенный тип правильно определен как String. так что давайте попробуем это по-настоящему:

$IPDNS1 = [String] "192.168.10.10"
$DGMAINOFFICE = [String] "192.168.10.254"
New-NetIPAddress –InterfaceAlias "ethernet" -IPAddress $IPDNS1 –PrefixLength 24 -DefaultGateway $DGMAINOFFICE

Однако следует отметить, что стандартный / стандартный способ определения переменной как строкового типа - это просто двойные кавычки, (не умные кавычки) , как я также упоминал в разделе комментариев:

Чтобы проверить это, введите $IPDNS1 = "192.168.10.10" в приглашении, а затем $IPDNS1.GetType().Name, вы должны увидеть, что тип - String, поэтому давайте посмотрим, что переведено по вашей команде:

$IPDNS1 = "192.168.10.10"
$DGMAINOFFICE = "192.168.10.254"
New-NetIPAddress –InterfaceAlias "ethernet" -IPAddress $IPDNS1 –PrefixLength 24 -DefaultGateway $DGMAINOFFICE
...