Diskpart en script CMD

Colapsar
X
 
  • Filtrar
  • Tiempo
  • Mostrar
Limpiar Todo
nuevos mensajes
  • macoga
    Junior Member
    • Oct
    • 6

    Diskpart en script CMD

    Hola jmtella, estuve viendo el codigo que se puede colocar en un script y este le da permiso de administrador al script, pero no se si funcionara con el comando Diskpart que abre otra ventana. Yo quisiera que al abrir el script que contiene la llamada a diskpart este se mantuviera en la misma ventana para poder dar mas instrucciones a diskpart en el script.

    Esto es lo mas cercano que he encontrado para este problema, se agradece mucho.

    Probe el script jmtella y me da permiso de administrador, le agregé comando Diskpart.exe y lo abre, pero no puedo agregar mas comandos de diskpart en el script, alguna idea?
  • noSign
    Super Moderator
    • Dec
    • 4344

    #2
    Originalmente publicado por macoga Ver Mensaje
    Hola jmtella, estuve viendo el codigo que se puede colocar en un script y este le da permiso de administrador al script, pero no se si funcionara con el comando Diskpart que abre otra ventana. Yo quisiera que al abrir el script que contiene la llamada a diskpart este se mantuviera en la misma ventana para poder dar mas instrucciones a diskpart en el script.

    Esto es lo mas cercano que he encontrado para este problema, se agradece mucho.

    Probe el script jmtella y me da permiso de administrador, le agregé comando Diskpart.exe y lo abre, pero no puedo agregar mas comandos de diskpart en el script, alguna idea?
    No pones ningún ejemplo de tu scipt.
    Échale un vistazo.:

    Artículo de referencia para scripts y ejemplos de diskpart sobre cómo automatizar tareas relacionadas con el disco, como la creación de volúmenes o la conversión de discos en discos dinámicos.

    Comentario

    • macoga
      Junior Member
      • Oct
      • 6

      #3
      noSign, Aqui esta el comienzo del Script, hay que tener una unidad USB conectada para que detecte esta, no se porqué el script se carga 2 veces, pero lo hace en una sola ventana por contar con permiso de administrador. Pero no puedo agregar más comandos?

      Code:
      @echo off
      color 0A
      CLS
      :MENU
      ECHO MACOGA VER 1.0
      ECHO.
      ECHO USB 1: - E
      ECHO USB 2: - F
      ECHO USB 3: - G
      ECHO USB 4: - H
      ECHO USB 5: - I
      ECHO 6: -EOF
      ECHO.
      wmic logicaldisk where drivetype=2 get deviceid, volumename, description
      set drive=
      set /p drive= EN QUE NUMERO ESTA LA LETRA DEL PENDRIVE?
      ECHO.
      if "%drive%"=="1" (cd E:"
      )else if "%drive%"=="2" (cd F:"
      )else if "%drive%"=="3" (cd G:"
      )else if "%drive%"=="4" (cd H:"
      )else if "%drive%"=="5" (cd I:"
      )else if "%drive%"=="6" (goto :eof
      )else goto :menu

      REM .bat con permisos de administrador
      :-------------------------------------
      REM --> Analizando los permisos
      IF "%PROCESSOR_ARCHITECTURE%" EQU "amd64" (
      >nul 2>&1 "%SYSTEMROOT%\SysWOW64\cacls.exe" "%SYSTEMROOT%\SysWOW64\config\system"
      ) ELSE (
      >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
      )

      REM --> Si hay error es que no hay permisos de administrador.
      if '%errorlevel%' NEQ '0' (
      echo Solicitando permisos de administrador
      goto UACPrompt
      ) else ( goto gotAdmin )

      :UACPrompt
      echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
      set params = %*:"=""
      echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"

      "%temp%\getadmin.vbs"
      del "%temp%\getadmin.vbs"
      exit /B

      :gotAdmin
      pushd "%CD%"
      CD /D "%~dp0"
      diskpart.exe
      pause

      Comentario

      • macoga
        Junior Member
        • Oct
        • 6

        #4
        y gracias noSign por los ejemplos, los estudiaré!!!!!!!

        Comentario

        • noSign
          Super Moderator
          • Dec
          • 4344

          #5
          Originalmente publicado por macoga Ver Mensaje
          noSign, Aqui esta el comienzo del Script, hay que tener una unidad USB conectada para que detecte esta, no se porqué el script se carga 2 veces, pero lo hace en una sola ventana por contar con permiso de administrador. Pero no puedo agregar más comandos?

          Code:
          @echo off
          color 0A
          CLS
          :MENU
          ECHO MACOGA VER 1.0
          ECHO.
          ECHO USB 1: - E
          ECHO USB 2: - F
          ECHO USB 3: - G
          ECHO USB 4: - H
          ECHO USB 5: - I
          ECHO 6: -EOF
          ECHO.
          wmic logicaldisk where drivetype=2 get deviceid, volumename, description
          set drive=
          set /p drive= EN QUE NUMERO ESTA LA LETRA DEL PENDRIVE?
          ECHO.
          if "%drive%"=="1" (cd E:"
          )else if "%drive%"=="2" (cd F:"
          )else if "%drive%"=="3" (cd G:"
          )else if "%drive%"=="4" (cd H:"
          )else if "%drive%"=="5" (cd I:"
          )else if "%drive%"=="6" (goto :eof
          )else goto :menu

          REM .bat con permisos de administrador
          :-------------------------------------
          REM --> Analizando los permisos
          IF "%PROCESSOR_ARCHITECTURE%" EQU "amd64" (
          >nul 2>&1 "%SYSTEMROOT%\SysWOW64\cacls.exe" "%SYSTEMROOT%\SysWOW64\config\system"
          ) ELSE (
          >nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
          )

          REM --> Si hay error es que no hay permisos de administrador.
          if '%errorlevel%' NEQ '0' (
          echo Solicitando permisos de administrador
          goto UACPrompt
          ) else ( goto gotAdmin )

          :UACPrompt
          echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
          set params = %*:"=""
          echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"

          "%temp%\getadmin.vbs"
          del "%temp%\getadmin.vbs"
          exit /B

          :gotAdmin
          pushd "%CD%"
          CD /D "%~dp0"
          diskpart.exe
          pause
          Sale dos veces la ventana al ejecutar el script para administrador.
          Pero no entiendo la finalidad de tu script Diskpart es independiente donde se encuentre el USB, siempre se lanzara desde C:\

          Y el list disk te detectara los discos conectados como números.

          Comentario

          • jmtella
            Administrator
            • Nov
            • 20470

            #6
            A tu pregunta inicial, si elevas los privilegios, todos los comandos que lances desde ese privilegio elevado, heredan los privilegios, por tanto heredan los privilegios de Administrador.

            Comentario

            • macoga
              Junior Member
              • Oct
              • 6

              #7
              Si jmtella, lo puse en mi comentario que la ventana se abre 2 veces, no se porqué. Puedo acortar al script para que detecte 1 USB, pero la idea era automatizar el diskpart en un script.
              Al correr el script en la segunda pasada me quedo con una ventana de diskpart, pero si le agrego list disk en el script no lo reconoce aunque esta con privilegios.

              Comentario

              • jmtella
                Administrator
                • Nov
                • 20470

                #8
                Originalmente publicado por macoga Ver Mensaje
                Si jmtella, lo puse en mi comentario que la ventana se abre 2 veces, no se porqué. Puedo acortar al script para que detecte 1 USB, pero la idea era automatizar el diskpart en un script.
                Al correr el script en la segunda pasada me quedo con una ventana de diskpart, pero si le agrego list disk en el script no lo reconoce aunque esta con privilegios.
                No he respondido más...porque de verdad que me parece una salvajada el automatizar un script con diskpart... esa herramienta es lo suficientemente peligrosa para que se use de forma manual por un experto...

                Comentario

                • macoga
                  Junior Member
                  • Oct
                  • 6

                  #9
                  Exactamente ese es el punto, diskpart puede ser peligroso si no se sabe usar, ya que tiene que ver con particiones. Es por eso que quiero automatizarlo específicamente para reparar discos externos o USB, para que no cometan errores y formateen el disco duro.
                  Hay alguien que me comprenda mi motivo???????

                  Comentario

                  • jmtella
                    Administrator
                    • Nov
                    • 20470

                    #10
                    Originalmente publicado por macoga Ver Mensaje
                    Exactamente ese es el punto, diskpart puede ser peligroso si no se sabe usar, ya que tiene que ver con particiones. Es por eso que quiero automatizarlo específicamente para reparar discos externos o USB, para que no cometan errores y formateen el disco duro.
                    Hay alguien que me comprenda mi motivo???????
                    No uses diskpart... puede dar muchos problemas. Usa powershell.

                    Comentario

                    Trabajando...
                    X