Cara mendapatkan NTFS di NETAPP

Adakah yang tahu cara mencantumkan izin NTFS pada semua share di vfiler NETAPP menggunakan C#?

Saya mencoba menggunakan NETAPP API tetapi hanya mendapatkan izin berbagi, tidak dapat menemukan cara untuk mendapatkan izin NTFS.

EDIT

Terima kasih Sobrique, inilah sintaks C#:

        var api = new NaElement("system-cli");
        var args = new NaElement("args");
        args.AddNewChild("arg", "fsecurity");
        args.AddNewChild("arg", "show");
        args.AddNewChild("arg", path);
        api.AddChildElement(args);
        s.InvokeElem(api)

person kooshka    schedule 03.07.2015    source sumber


Jawaban (1)


Untuk melakukan ini, saya cenderung menggunakan:

vfiler run vfilername fsecurity show /path/to/file/here

Ini akan mencetak berbagai atribut ACL (NTFS dan Unix) untuk file tersebut. Anda harus terlebih dahulu menghitung jalur berbagi Anda untuk melakukan ini. (cifs shares adalah titik awal).

Ada cara untuk melakukannya melalui API - Anda perlu menggunakan fungsi 'system-cli' tidak berdokumen yang memungkinkan Anda menjalankan perintah dari jarak jauh dan menangkap keluaran.

Sayangnya melakukan ini, hasilnya ... setara dengan hanya menjalankan perintah ssh.

Namun - buat XML Anda:

<!DOCTYPE netapp SYSTEM "/na_admin/netapp_filer.dtd">
<netapp version="1.7" xmlns="http://www.netapp.com/filer/admin">
  <system-cli>
    <args>
      <arg>fsecurity</arg>
      <arg>show</arg>
      <arg>/vol/volname/qtreename/sharename/filename</arg>
    </args>
  </system-cli>
</netapp>

Ini akan berhasil, meskipun ini akan mengembalikan elemen cli-output teks biasa.

use strict;
use warnings;

use XML::Twig;
use LWP;

my $twig = XML::Twig->new( 'pretty_print' => 'indented' );
$twig->set_root(
    XML::Twig::Elt->new(
        'netapp',
        {   version => 1.7,
            vfiler  => "somevfiler",
            xmlns   => "http://www.netapp.com/filer/admin",
        },
    )
);
my $api_req = $twig->root->insert_new_elt('system-cli');
my $args    = $api_req->insert_new_elt('args');
$args->insert_new_elt( 'last_child', 'arg', 'fsecurity' );
$args->insert_new_elt( 'last_child', 'arg', 'show' );
$args->insert_new_elt( 'last_child', 'arg', '/vol/volname/qtree/filename' );

$twig->set_doctype('netapp SYSTEM "file:/etc/netapp_filer.dtd"');
$twig->set_xml_version("1.0");
$twig->set_encoding('utf-8');

$twig->print;

exit;

my $user_agent = LWP::UserAgent->new(
    'ssl_opts' => {
        'verify_hostname' => 0,
        'SSL_version'     => 'SSLv3',
    }
);

my $request =
    HTTP::Request->new( 'POST' =>
        'https://myfilername/servlets/netapp.servlets.admin.XMLrequest_filer'
    );
$request->authorization_basic( 'username_here', 'password_here' );
$request->content( $twig->sprint );

my $results = $user_agent->request($request);
if ( not $results->is_success ) {
    print "Error: ", $results->status_line;
    exit;
}

my $results_xml = XML::Twig->new( 'pretty_print' => 'indented_a' );
$results_xml->parse( $results->content );
$results_xml->print;
person Sobrique    schedule 03.07.2015