Выполнить файл bat из powershell с учетными данными администратора? [Дубликат]

Я начал изучать язык программирования с помощью C ++, а затем с Java, а затем с Python, и поэтому этот вопрос слишком беспокоил меня, пока я не понял простое использование каждого из них.

Метод класса: Python в отличие от Java и C ++ не имеет перегрузки конструктора. Итак, чтобы достичь этого, вы можете использовать classmethod. следующий пример объяснит это

. Рассмотрим, что у нас есть класс Person, который принимает два аргумента first_name и last_name и создает экземпляр Person.

class Person(object):

    def __init__(self, first_name, last_name):
        self.first_name = first_name
        self.last_name = last_name

Теперь, если требование возникает, когда вам нужно создать класс, используя только одно имя, просто first_name. вы не можете сделать что-то подобное в python.

Это приведет к ошибке при попытке создать объект (экземпляр).

class Person(object):

    def __init__(self, first_name, last_name):
        self.first_name = first_name
        self.last_name = last_name

    def __init__(self, first_name):
        self.first_name = first_name

Однако вы можете добиться того же, используя @classmethod, как указано ниже

class Person(object):

    def __init__(self, first_name, last_name):
        self.first_name = first_name
        self.last_name = last_name

    @classmethod
    def get_person(cls, first_name):
        return cls(first_name, "")

Статический метод :: Это довольно просто, он не связан с экземпляром или классом, и вы можете просто вызвать это, используя имя класса.

Итак, скажем, в приведенном выше примере вам нужна проверка того, что first_name не должно превышать 20 символов, вы можете просто сделать это.

@staticmethod  
def validate_name(name):
    return len(name) <= 20

, и вы можете просто вызвать с помощью Class Name

Person.validate_name("Gaurang Shah")
0
задан Mikey 9 March 2013 в 02:30
поделиться

1 ответ

Вам нужно будет преобразовать имя пользователя \nароль как PSCredential и передать его в Start-Process

. Вот пример фрагмента powershell (вы можете сделать это менее подробным, вставив переменные, если хотите) .

$password= convertto-securestring $passwordTextBox.Text -asplaintext –force
$credential = new-object -typename System.Management.Automation.PSCredential -argumentlist $userTextBox.Text,$password
$script = "c:\temp\Scripts\MapCopyTuner.bat"
Start-Process powershell -Credential $credential -ArgumentList "-noprofile -command &{Start-Process $script -verb runas}"
7
ответ дан Srikanth Venugopalan 23 August 2018 в 23:33
поделиться