

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

# Asignación de unidades de red de Server Message Block (SMB)
<a name="map-smb-network-drives"></a>

Puede utilizar cualquier máquina que se encuentre en la red de destino del SMBs. Si prefiere realizar la configuración mediante scripts de sesión, primero debe crear un script que se invoque cuando el usuario inicie sesión, ya que el script de sesión se configura por imagen.

Para asignar las unidades de red de Server Message Block (SMB), realice los pasos siguientes.

## Paso 1: comprobación de que los servicios están en ejecución
<a name="smb-start"></a>

En el menú Inicio, abra **services.msc** y compruebe que todos los servicios siguientes se están ejecutando:
+ Cliente DNS
+ Publicación de recursos de detección de funciones
+ Detección de SSDP
+ UPnHost del dispositivo P

## Paso 2: creación de una carpeta SMB
<a name="create-smb-server-manager"></a>

Puede crear un SMB con el Explorador de archivos.

**Para usar el Explorador de archivos para configurar sus carpetas compartidas de SMB**

1. Haga clic con el botón secundario en la carpeta SMB y elija **Propiedades**, **Uso compartido**.

1. Seleccione **Uso compartido avanzado**.

1. En **Uso compartido avanzado**, marque **Compartir esta carpeta** y, a continuación, seleccione **Permisos**.

1. Si desea proporcionar permisos a todos sus usuarios, conserve la configuración predeterminada.

   Si desea añadir usuarios específicos, en **Permisos de uso compartido**, seleccione **Todos** y **Eliminar**. A continuación, seleccione **Agregar** e introduzca los usuarios o grupos que desea que puedan acceder al recurso compartido de archivos.

   Para cada usuario o grupo que agregue, seleccione **Permitir** para asignar permisos de **Control total**, **Cambio** o **Lectura**.

1. Seleccione **Aplicar** y luego **Aceptar**, **Aceptar** y **Cerrar**.

## Paso 3: verificación de que el SMB está accesible en el dominio
<a name="verify-smb"></a>

Abra el explorador de archivos desde otro servidor que utilice el mismo grupo de seguridad y se una al mismo dominio. Acceda al recurso compartido de red a través de la ruta de red proporcionada navegando hasta la carpeta de ruta de red. Seleccione **Propiedades**, **Uso compartido** y **Ruta de red**.

## Paso 4: Permitir a los usuarios crear enlaces simbólicos desde la política de local/domain grupo
<a name="enable-smlink-smb"></a>

Habilite la creación de enlaces simbólicos a partir de la política de local/domain grupo para que sus usuarios garanticen el script de sesión o el script de inicio de sesión definido en la política de grupo. Esto le permite crear un script en el paso 5 con permisos de usuario.

**Para permitir a los usuarios crear enlaces simbólicos a partir de la política de local/domain grupo**

1. En el GPO, que se utilizará para definir esta política, elija **Configuración del equipo**, **Configuración de Windows**, **Configuración de seguridad**, **Asignación de derechos de usuario**, **Política** y **Crear enlaces simbólicos**. A continuación, actualice el permiso con los usuarios que desea incluir. Para obtener más información acerca de cómo crear enlaces simbólicos, consulte [Creación de enlaces simbólicos](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-10/security/threat-protection/security-policy-settings/create-symbolic-links).

1. De forma predeterminada, los remote-to-remote accesos (por ejemplo, un mapeo de enlace simbólico a un recurso compartido de red dentro de otro enlace simbólico similar) y remote-to-local (por ejemplo, un mapeo de enlace simbólico a un recurso compartido local dentro de un enlace simbólico a un recurso compartido de red) están deshabilitados. Si se requiere una asignación de enlaces simbólicos, ejecute los siguientes comandos:
   + Para habilitar el acceso - remote-to-remote `fsutil behavior set SymlinkEvaluation R2R:1`
   + Para habilitar el remote-to-local acceso - `fsutil behavior set SymlinkEvaluation R2L:1 `

## Paso 5: creación de un script que se invoque cuando el usuario inicie sesión
<a name="create-script-smb"></a>

Cree un script que se invoque cuando el usuario inicie sesión mediante un script de sesión de WorkSpaces Applications o un script de inicio de sesión de GPO. Si decide utilizar el script de sesión de WorkSpaces Aplicaciones, el script de sesión solo se aplicará a esa imagen de WorkSpaces aplicación específica. Si utiliza el script de inicio de sesión de GPO, se GPOs aplicará al dominio o la unidad organizativa, que se puede configurar en sus flotas. De esta forma, no necesitará configurar scripts para cada imagen que posea.

### Opción 1: uso de un script de sesión para montar la carpeta compartida SMB en Mis archivos (mediante Powershell)
<a name="powershell-smb"></a>

**Para utilizar un script de sesión para montar la carpeta compartida SMB en Mis archivos (mediante Powershell)**

1. Una vez que haya definido correctamente los permisos de usuario, configure el siguiente script de ejemplo utilizando el contexto de usuario o el contexto del sistema.

   A continuación se muestra un ejemplo del script config.json que usa el contexto del usuario.

   ```
   "SessionStart": {
       "executables": [
       {
           "context": "system",
           "filename": "",
           "arguments": "",
           "s3LogEnabled": true
       },
       {
           "context": "user",
           "filename": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
           "arguments": "-File \"C:\\AppStream\\SessionScripts\\userStart.ps1\"",
           "s3LogEnabled": true
       }
    ],
   "waitingTime": 30
   ```

   A continuación se muestra un ejemplo del script que usa el contexto del sistema.

   ```
   "SessionStart": {
       "executables": [
       {
           "context": "system",
           "filename": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
           "arguments": "-File \"C:\\AppStream\\SessionScripts\\systemStart.ps1\"",
           "s3LogEnabled": true
       },
       {
           "context": "user",
           "filename": "",
           "arguments": "",
           "s3LogEnabled": true
       }
    ],
   "waitingTime": 30
   ```

1. Si utiliza flotas multisesión, puede utilizar la variable de entorno del sistema `$env:AppStream_Session_UserName` para ir a la carpeta Mis archivos del usuario. Esto permite la asignación de `Admin` en lugar del nombre de usuario cuando se utiliza el contexto del sistema `$env:USERNAME`.

   ```
   # Define the target application path
   $targetPathes = "<SMB-PATH>"
   
   # Define the shortcut location
   $symlinkLocation = "C:\Users\$Env:AppStream_Session_UserName\My Files\Custom Folder"
   
   # Create the junction for Custom Home Folder under MyFiles
   New-Item -ItemType SymbolicLink -Path $symlinkLocation -Target $targetPaths
   ```

### Opción 2: uso del script de inicio de sesión de GPO para montar las carpetas compartidas SMB y colocarlas en Mis archivos
<a name="powershell-gpo-logon"></a>

1. Monte carpetas compartidas SMB creando un enlace simbólico a un archivo o carpeta. Para obtener más información, consulte [Example 7: Create a symbolic link to a file or folder](https://learn.microsoft.com/en-us/powershell/module/microsoft.powershell.                                         management/new-item?view=powershell-7.4#example-7-create-a-symbolic-link-to-a-file-or-folder).

1. [Assign user logon scripts.](https://learn.microsoft.com/en-us/previous-versions/windows/it-pro/windows-server-                                 2012-r2-and-2012/dn789196(v=ws.11)#how-to-assign-user-logon-scripts)

1. Agregue el siguiente script para crear una unión para las carpetas de inicio personalizadas en Mis archivos.

   ```
   # Define the target application path
   $targetPathes = "<SMB-PATH>"
   
   # Define the shortcut location
   $symlinkLocation = "C:\Users\$env:Username\My Files\Custom Folder"
   
   # Create the junction for Custom Home Folder under MyFiles
   New-Item -ItemType SymbolicLink -Path $symlinkLocation -Target $targetPaths
   ```

   Si utiliza imágenes de Windows Server 2022, es posible que se produzca un problema consistente en que la carpeta Mis archivos no se crea hasta que el script de inicio de sesión se complete correctamente. Esto puede hacer que se agote el tiempo de espera si la operación de montaje de SMB se realiza mediante un script de inicio de sesión. Para resolver este problema y, al mismo tiempo, montar su SMB, inicie un proceso independiente (`Start-Process`) utilizando el script de inicio de sesión de la siguiente manera:

   1. Cree un script de inicio de sesión.

      ```
      # Define the log file path
      $logFilePath = "<This-is-where-your-log-files-are-saved>"
      
      # Function to write log messages
      function Write-Log {
          param (
              [string]$message
          )
          $timestamp = get-date -format "yyyy-MM-dd HH:mm:ss"
          $logMessage = "$timestamp - $message"
          $logMessage | Out-File -FilePath $logFilePath -Append -Encoding UTF8
      }
      
      try {
          Write-Log "Setting execution policy..."
          Set-ExecutionPolicy -ExecutionPolicy Bypass -Scope Process -Force
          Write-Log "Unblocking logon script file..."
          $filePath = "<This-is-where-your-actual-logon-script-is-linked>"
          Unblock-File -Path $filePath
          Write-Log "Running actual logon script..."
          Start-Process -FilePath 'Powershell.exe' -ArgumentList "-File `"$filePath`""
      } catch {
          Write-Log "An error occurred: $_" "ERROR"
      }
      ```

   1. Actualice esta configuración de retraso del script de inicio de sesión mediante la política de grupo, si procede. Para obtener más información, consulte [Configurar retraso de script de inicio de sesión](https://admx.help/?Category=Windows_8.1_2012R2&Policy=Microsoft.Policies.GroupPolicy::LogonScriptDelay). El retraso del script de inicio de sesión será el tiempo que tardará en activarse el script de inicio de sesión asíncrono. El retraso predeterminado es 5 minutos.

   1. Reinicie su flota para aplicar el retraso del script de inicio de sesión.