Команды WMI могут либо получать явные учетные данные в качестве аргумента (флаг -Credential
), либо запускаться в контексте безопасности пользователя, выполняющего сценарий, если не указаны учетные данные.Могу ли я использовать ту же команду WMI, предоставляются ли учетные данные или нет?
Сейчас мой сценарий выглядит следующим образом:
if ($Creds) { # if the user provided credentials
Invoke-WMIMethod -Credential $Creds <...something...>
... hundreds more lines of Invoke-WMIMethod code ...
else { # user did not supply credentials, use current security context
Invoke-WMIMethod <...something...>
... same exact hundreds of lines of Invoke-WMIMethod code, without -Credential ....
}
Других слова, единственное отличие является -Credential
флагом. Есть ли способ консолидировать это огромное if-else в один блок кода?
Итак, используя второй пример, если я добавлю '@ optional_params' в конец каждого' Invoke-WMIMethod', то он добавит только '-Credential $ Cred', если я присвою ему такое же значение, как и вы? – AlwaysQuestioning
Как насчет вас просто * попробуйте * его и убедитесь сами? –
Причина, по которой я прошу, связана с последствиями производительности. Я предполагаю, что это накладывает дополнительные накладные расходы, чем предлагаемое другое решение. – AlwaysQuestioning