web-dev-qa-db-fra.com

Comment répertorier les autorisations de dossier situées sur un autre serveur

Je suis assez nouveau dans PowerShell et je rencontre un problème.

Je veux faire ce qui suit:

Obtenir la liste des autorisations/utilisateurs sur un seul dossier sur un serveur différent de celui sur lequel j'exécute ma fenêtre PowerShell.

Echec de la commande en cours:

Get-acl -path "\\servername\folder" 

Message d'erreur:

Get-acl: le chemin '\\ nomserveur\dossier' est introuvable, car il n'existe pas

Cette commande ne fonctionne-t-elle que sur la machine locale?

4
CoffeeCoder

En fin de compte, la façon dont les autorisations/authentifications sont configurées dans mon environnement a empêché mon code de fonctionner.

Voici les étapes que j'ai suivies pour vérifier si je pouvais me connecter au serveur:

Test-Path \\server\folder

Cela a renvoyé "False", raison pour laquelle mon code était en panne. Le travail que j'ai utilisé était le suivant:

#Step 1: remotely connect to server
Enter-PSSession -ComputerName servernamegoeshere

#Step 2: get list of permissions on folder and save to csv
get-acl E:\foldernamehere | 
select -expand access |
export-csv C:\Users\usernamegoeshere\Documents\listofperms.csv |
#Step 3: close remote connection
Exit-PSSession

Je devais toujours installer à distance le serveur et copier le fichier csv à l'emplacement de mon choix car, encore une fois, toute commande de copie sur un autre serveur/partage de PowerShell ne fonctionnerait pas en raison de problèmes d'autorisation/d'authentification.

Cet article explique l'authentification/les autorisations un peu mieux que je ne le peux:

http://blogs.technet.com/b/heyscriptingguy/archive/2012/11/14/enable-powershell-quot-second-hop-quot-functionality-with-credssp.aspx


Deuxième moyen de faire cela avec moins de code et de ne pas créer de session à distance grâce à l'utilisateur Ansgar Wiechers:

Invoke-Command -Computer server -ScriptBlock {get-acl E:\folder | 
select -expand access } |
export-csv \\server\folder\accesslist.csv 

Avec PowerShell, il existe de nombreuses façons de faire une chose ... Je pense que cette façon de faire est la meilleure/la plus simple! Merci!

5
CoffeeCoder

La commande fonctionne également sur les chemins UNC, mais les chemins UNC sont légèrement différents des chemins locaux. Vous avez besoin d’un point d’accès pour entrer dans le système de fichiers d’un hôte distant. Pour l'accès SMB/CIFS (via des chemins UNC), ce point d'accès est un dossier partagé. Vous avez donc besoin d'un chemin \\server\share ou \\server\share\path\to\subfolder.

Avec un compte administrateur, vous pouvez utiliser les partages administratifs (par exemple, \\server\C$\Users\Administrator), sinon vous devez d'abord créer un partage.

2
Ansgar Wiechers

Le chemin du message d'erreur en sortie semble manquer de barre oblique inversée . Votre code d'origine en manque-t-il aussi? Get-acl fonctionne pour moi sur un système distant.

0
Eric Longstreet