วิธีรับ NTFS บน NETAPP

ไม่มีใครรู้วิธีแสดงรายการสิทธิ์ NTFS สำหรับการแชร์ทั้งหมดใน NETAPP vfiler โดยใช้ C#

ฉันพยายามใช้ NETAPP API แต่ได้รับสิทธิ์การแชร์เท่านั้น ไม่สามารถหาวิธีรับ NTFS ได้

แก้ไข

ขอบคุณ Sobrique นี่คือไวยากรณ์ 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 แหล่งที่มา


คำตอบ (1)


สำหรับการทำเช่นนี้ ฉันมักจะใช้:

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

ซึ่งจะพิมพ์แอตทริบิวต์ ACL ต่างๆ (NTFS และ Unix) สำหรับไฟล์ที่ต้องการ คุณจะต้องระบุเส้นทางการแชร์ของคุณก่อนจึงจะทำเช่นนี้ได้ (cifs shares คือจุดเริ่มต้น)

มีวิธีดำเนินการผ่าน API - คุณต้องใช้ฟังก์ชัน 'system-cli' ที่ไม่มีเอกสารซึ่งช่วยให้คุณสามารถรันคำสั่งจากระยะไกลและบันทึกเอาต์พุตได้

น่าเสียดายที่การทำเช่นนี้ผลลัพธ์คือ ... ใกล้เคียงกับการรันคำสั่ง ssh

อย่างไรก็ตาม - สร้าง XML ของคุณ:

<!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>

วิธีนี้จะช่วยได้แม้ว่าจะส่งคืนองค์ประกอบข้อความธรรมดา cli-output ก็ตาม

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